Files
reverse-engineering-anything/docs/specs/native/call-source-locations/verification.md
T
3e8a5f76d0 feat(native): retain LLDB source coordinates and verify Pascal calls (#2800)
* feat(native): retain LLDB source coordinates and verify Pascal call entries

Preserve partial line-table attribution for native locations and historical
evidence compatibility. Verify owned Free Pascal call entries through CLI/MCP.

Refs #2382, #2372, #2397

Co-Authored-By: Codex <noreply@openai.com>

* docs: namespace native specifications by domain and feature

Use stable descriptive paths instead of numeric prefixes to avoid parallel contribution collisions.

Co-Authored-By: Codex <noreply@openai.com>

* fix(native): bound Pascal verification and compare caller coordinates

Address review findings at their producing boundaries and preserve directly affected consumers. Source inspection and git diff --check completed. Tests and automated checks were not run at the user’s explicit request.

* fix(native): bound compiler shutdown and source-coordinate fixtures

* docs: clarify historical native source verification

* fix(native): preserve source attribution and compiler ownership

* docs(native): qualify retained source attribution

* fix(ci): clean up native Pascal verifier processes

* test(native): type the Pascal verifier helper import after merging main

Main now typechecks this boundary test, which imports the untyped
canonical-temporary-directory helper and reads an unknown catch value.
Add the helper's declaration file and narrow the caught error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(native): verify partial source attribution caveat

* fix(native): retain verifier compiler cleanup ownership

* fix(native): forward verifier cancellation and measure path bytes

CLI and MCP artifact runs observe the verifier abort signal, and a
failed Pascal verifier test stops the compiler group before deleting
its directory. Repeated source locations grow by measured UTF-8 JSON
bytes; workflow tokens, CPU and peak memory stay unmeasured.

---------

Co-authored-by: Matheus Breguêz <matbrgz@gmail.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-11-07 23:25:20 +08:00

2.6 KiB
Raw Blame History

Historical verification

The records below describe earlier revisions, before the final caller-frame assertions, marker-derived line expectations, forced compiler timeout termination, and large Unicode source-location budget coverage. They do not validate the current revision. Those final changes were reviewed from source only; tests and automated checks were not run at the user’s explicit request.

Host: macOS ARM64. Compiler: caller-installed Free Pascal 3.2.2, Darwin AArch64. Debugger: LLDB 2103.0.34.103 from Command Line Tools.

  • Python producer/budget/output tests: 10 passed.
  • Focused native provider, retained-journal and MCP tests: 18 passed.
  • Real Pascal CLI and stdio MCP: three expected calls, integer register values 0/1/2, source path and positive line attribution, successful target exit.
  • Repository static checks: six tasks and architecture guards passed.
  • Test discovery: all 982 test files discovered exactly once.

The complete native-call verifier did not pass. One run reported exited instead of event-limit for capped overlapping breakpoints. Another reported unavailable launch start identity in a later capped scenario. Investigation: https://github.com/morluto/rea/issues/2397. These results have not yet been isolated on unchanged upstream. The source-coordinate PR was draft at that historical checkpoint.

The first real native scenario and CLI/MCP source-coordinate comparisons completed before those broader failures. The Pascal lane verifies bounded native call observation; it does not establish typed Pascal local values, source breakpoints, interactive stepping, Delphi compatibility or a GDB provider.

Unmeasured costs and outstanding execution

Repeated source paths expand event, caller-frame and breakpoint-location payloads. nativeCallObservation.test.ts measures that growth as UTF-8 JSON bytes: three copies of one location grow by three times the difference between the source_location object and null. That byte delta is not a token count. Equivalent before/after completed workflows have not been measured for agent tokens, elapsed time, CPU time or peak process-family memory, for either cold or warm runs. The first compiler probe is only fpc -iV with a 30s deadline. Darwin ownership-helper compilation uses REA_SWIFTC_COMPILE_TIMEOUT_MS, default 120s, inside the later 180s observe-native-calls run.

The current caller-frame equality checks, marker-derived source lines, forced compiler timeout termination and Unicode source-path budget case remain unverified by execution. Earlier Pascal CLI/MCP observations establish only the historical coverage described above.