* fix(lbug): guard read queries against runaway native memory (#3696)
A single impact query was reported to allocate ~184 GB of native heap on a
66k-symbol index. That memory is outside the buffer pool and V8, so neither
bufferManagerSize nor --max-old-space-size bounds it, and the Node binding
cannot interrupt a running query.
- Add a process-wide memory guard around every pooled read query. While a
query runs it samples RSS every 200 ms and, on macOS, the physical
footprint for queries running over 1 s (RSS excludes compressed and
swapped pages there). Past the budget it names the running queries on
stderr and exits with code 70 instead of letting the host run out of
memory. GITNEXUS_QUERY_MAX_RSS_MB sets the limit (0 disables); the
default is max(8 GiB, 25% of RAM).
- Add GITNEXUS_QUERY_TRACE=1: one stderr line per query with duration,
rows and memory, so a reporter can identify the query that blows up.
- Cap the impact BFS frontier query at 100k rows per depth level. A capped
level stops the walk, marks the result partial, and cannot report a
LOW/MEDIUM risk.
* fix(ci): initialize shards after fork approval
GitHub approval increments the attempt number without running any jobs. Allow initial timing snapshot creation on attempt 2 only when the first attempt required approval and had zero jobs. Keep real retries fail-closed on missing frozen input.
* fix(impact): qualify both capped risk scores
Apply the same conservative cap policy to risk and riskSharedAxes, retain proven high warnings, and strengthen frontier-limit regression assertions. Correct the memory-budget test description.
* fix: skip query phases after deadline
---------
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
* feat(ci): rebalance test shards from recorded timings
* fix(ci): preserve artifact retries for shard timings
Find shard-plan generation by its stable step ID and clarify the native runner cohort count (#3748).
Note: pre-existing reference-oracle parser type failures in two test_oracle_assets cases remain outside this change.
* fix(ci): keep retry timing snapshots immutable
Require the existing snapshot on reruns so a failed download cannot refresh history and change shard assignments. Cover the workflow contract and document recovery when the artifact is unavailable.
* docs(ci): document shard timing profile selection
* fix(ci): balance cold shard estimates consistently
---------
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
* docs: align resolution architecture and roadmap
* docs: add language ingestion gap inventories
* test: audit receiver gap targets and coverage
Check exact declaration IDs, expose the Dart await wrong-owner edge, and execute previously excluded C++, Rust, PHP, Dart and Vue shapes. Refresh the baseline and all language inventories from fresh measurements; call-drop counts remain unchanged.
* docs: focus roadmap and shorten project README
Keep the resolution roadmap limited to future work and acceptance criteria. Move detailed editor, CLI, MCP, deployment and wiki instructions into linked guides, preserve their command examples, and correct stale onboarding claims.
* docs: correct setup and audit descriptions
---------
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>