GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — v0.0.15-beta.4 by Obed0101 · Pull Request #149 · MendCode/MendCode Conversation
|
|
MendCode: @Obed0101's MendCode worked on this pull request on one of its devices; released 2026-11-11 10:06 UTC. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
No findings · nothing in this change was confirmed as a problem
head e0f99448d3b5
Merge risk: 🟢 Low · The production change is confined to stdin error handling during hosted scans; scanner behavior, graph construction, cache formats, and fallback logic are untouched. A regression would primarily affect completion of graph builds using a failed helper.
Change: Bug fix · Review effort: 1/5, about 5 minutes
This change handles synchronous errors and promise rejections while sending requests to the code-graph scan helper, allowing the existing read-failure path to trigger in-process scanning when the helper exits early. No introduced defects were found in the supplied stacked diff; risk is low because the change is localized to helper request submission. Review was read-only, so tests were inspected but not executed.
Readers: 3 code files no reader could read went to the review pass whole (the diff is small: one reader call costs more than the readers' share of this review's cap, so the review pass reads it).
Stacked on #146: only this pull request's own commits since #146's head c300179.
The scan host now catches synchronous request-write errors and handles rejections from stdin write and end operations, preventing an early helper exit from producing an unhandled EPIPE. The existing stdout reader and indexer fallback remain unchanged: premature output termination rejects the read, and the indexer scans the remaining files locally. A regression test exercises a large request sent to an immediately exiting helper, and the changelog records the beta release fix.
Changes
| Layer / files | Summary |
|---|---|
Scan-helper error handling packages/codegraph/src/scan-host.ts |
Handles errors from submitting and ending the helper's stdin request without changing the scan protocol, helper selection, or existing indexer fallback. |
Regression coverage packages/codegraph/test/scan-host.test.ts |
Adds repeated large-request attempts against an immediately exiting helper, checking that reads reject without unhandled promise rejections. |
Release notes CHANGELOG.md |
Documents the v0.0.15-beta.4 broken-pipe fix and updates the stable release's code-equivalence note. |
| Check | Status | Explanation |
|---|---|---|
| Title | The title identifies the release version but does not describe the scan-helper error-handling fix. | |
| Description | The description explains the EPIPE failure, its CI context, and the intended fallback behavior, but does not state how the fix was tested or give test results. | |
| Out of scope | ✅ Passed | The implementation, regression test, and release notes all support the described scan-helper fix; no unrelated changes appear in this pull request's supplied diff. |
Performance (perf-attrib, base 8981456 against head e0f9944)
perf-attrib: igual: nothing above the measured noise
base 8981456b339cb6675c57fecf0580548e27c3a28e (8981456b) vs cand e0f99448d3b510bc0eaad8cdacb727e1df7974ff (e0f99448), median of 2 faux-engine session(s) per side; flagged = beyond the noise measured on 18 base-vs-base runs (x1.5).
| metric | base | cand | diff |
|---|---|---|---|
| tui.after.fp_mb | 56.7 | 56.6 | -0.1 |
| tui.after.peak_mb | 73.2 | 72.9 | -0.3 |
| tui.ready.fp_mb | 54.9 | 54.8 | -0.1 |
| tui.ready.peak_mb | 73.2 | 72.9 | -0.3 |
| tui.rest.fp_mb | 56.3 | 56.3 | 0 |
| tui.rest.peak_mb | 73.2 | 72.9 | -0.3 |
| tui.after.rss_mb | 136 | 135.5 | -0.5 |
| tui.ready.rss_mb | 114.1 | 113.9 | -0.2 |
| tui.rest.rss_mb | 136.3 | 135.8 | -0.5 |
| tui.after.heap.extra_b | 7397980 | 7078192 | -319788 |
| tui.after.heap.objects | 243020 | 242173 | -847 |
| tui.after.heap.protected | 20 | 20 | 0 |
| tui.after.heap.size_b | 25237868 | 24828384 | -409484 |
| tui.ready.heap.extra_b | 2894877 | 2894869 | -8 |
| tui.ready.heap.objects | 217222 | 217224 | +2 |
| tui.ready.heap.protected | 18 | 18 | 0 |
| tui.ready.heap.size_b | 19331261 | 19331461 | +200 |
| tui.rest.heap.extra_b | 4629302 | 4669632 | +40330 |
| tui.rest.heap.objects | 238457 | 238469 | +12 |
| tui.rest.heap.protected | 18 | 18 | 0 |
| tui.rest.heap.size_b | 22082230 | 22122882 | +40652 |
| tui.rest.js_code_b | 5845113 | 5885209 | +40096 |
| tui.rest.js_live_b | 19293190 | 19293327 | +137 |
| tui.cpu_ms.after | 5527 | 5521 | -6 |
| tui.cpu_ms.ready | 340 | 340 | 0 |
| tui.cpu_ms.rest | 478 | 484 | +6 |
| binary.bytes | 72306944 | 72306944 | 0 |
| disk.bytes | 4074 | 4087 | +13 |
| disk.bytes_per_session | 2037 | 2044 | +7 |
JS heap bytes by constructor that rose:
Modules loaded at start: 230 -> 230, 4633738 -> 4633738 bytes of chunks (chunk names are hashes: the list says which changed in size, not by what name)
Reference (skill, 2026-11-03, real model): footprint 64 ready / 66 after / peak 80 MB, 2.6 KB per session. This run (faux engine, whole process tree): 54.8 / 56.6 / peak 72.9 MB, 2044 B per session.
CHANGELOG.mdpackages/codegraph/src/scan-host.tspackages/codegraph/test/scan-host.test.tsComment @mendcode review to review again · @mendcode pause / resume · reply to a finding with explain, fix or learn · settings in .mendcode/review.yaml
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.