Skip to content

Land runtime identity and shell safety repairs - #3850

Closed
trissim wants to merge 20 commits into
mainfrom
batch/runtime-shell-nov1
Closed

trissim wants to merge 20 commits into
mainfrom
batch/runtime-shell-nov1

Conversation

@trissim

@trissim trissim commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Runtime identity, shell safety and the merged export runtime

Four integration commits; 19 files, +1184/-99 versus main2b89. Preserves the original3825/46fc and3847/33c2 histories, carries3825's363b cache correction, and pins merged Toad1400/d47f216e plus Textual218/7c62867. No retention or submission overhaul is included.

Runtime identity

Before: commits could masquerade as complete runtime identity, the mutable process title could become the image filename, and compiled external-model conversion could fall into an opaque schema path.
After: byte/file artifacts and the actual mapped image own interpreter observations; recorded and absent evidence remain distinct; the compiled model decoder owns reference-scoped schema and conversion together. Functional candidate wheels stay distinct from production-cache eligibility and borrowed dependencies. No fabricated ancestry, donor mutation, title-removal workaround or dropped native tool.

The real45be rehearsal exposed a missed consumer: cache matching demanded a recorded observation from installed2b89's older metadata. InterpreterBuild now owns False for absent evidence and RecordedInterpreterBuild owns actual equality. Runtime/proof admission still refuses missing or changed evidence; ineligibility is not a fabricated certificate.

Shell safety

The existing lexer owns logical continuations, native quote characters, heredocs, descriptors, assignments and fail-closed inspection. Bounded ShellText cursor reads replace six whole-source snapshots. Native shlex state remains an external alphabet. The final typing correction preserves native int-or-None reads and an equivalent short circuit; parser test bodies remain unchanged.

Export and native contract activation

The generated lock advances Toad03f32f to merged1400/d47f216e and Textual9a0501 to merged218/7c62867. UI transfers inherit the application's existing preparation lifetime; the actual exporter observer owns cancellation. Shared native Bordered reads retain real CSS/slot writers and required frozen PaintStyles snapshots—no placebo setters or second style store. Original sidebar/editor and both author histories survive the clean integration.

Actual qualification epochs

-45be: 115 tests and293subtests passed, exit0. Combined shell/wait/refusal/root/installer selection plus actual-image and external-model-schema regressions; no full suite or local NRA gate.
-45be: genuine candidate completion succeeded; supported rehearsal failed on absent interpreter evidence. Failure retained.
-ae6468c7b4: inspected363b correction carried; two predicate/strict-admission regressions passed in1.85s, exit0, using the genuine candidate interpreter and actual RuntimeStack probe.
-ae6468c7b4: rehearsal refused an uncommitted generated Textual lock before copying. Integration error retained, not called a carry failure or a pass.
-e2ebacf524: generated native/export lock committed; supported preparation/rehearsal passed, exit0, from the installer's private source snapshot under the real host TestLease and INT300. Pending carries and target schema rewrites are empty, so ExistingBusInstall.rehearsed correctly reports uncopied with zero copied bytes. This is not relabeled as a copied-root carry test; that historical qualification scope remains separate from this no-migration delivery.

The exact1400/218 author pair separately passed affected UI cases and the two real indexed-writer Cancel/app-close cases. Those results are not phone, original-history-root or performance certificates. Earlier wheel/worker/carry results retain their actual revisions.

Assumed: original and uncertain inputs remain untouched; borrowed runtimes stay read-only; application/physical evidence remains separate from source and preparation. Runtime carry qualification is not replaced by passing selected tests. The source branch remains clean during the supported rehearsal.

Copilot AI balanced review requested due to automatic review settings November 2, 2026 02:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

debt-tools at 83e1c45, every finding:

+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-qz2xsjum --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/agent-comms
= 5.948s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-qz2xsjum --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/agent-comms (5.948s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ryrtwdyc --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/formbridge
= 0.301s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ryrtwdyc --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/formbridge (0.301s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-v2oic_8w --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/metaclass-registry
= 0.394s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-v2oic_8w --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/metaclass-registry (0.394s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-2ca6reb_ --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/textual
= 0.592s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-2ca6reb_ --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/textual (0.592s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ml40v9x6 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/toad
= 0.394s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ml40v9x6 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/toad (0.394s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-7yqzb4ma --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/ui-theme
= 0.266s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-7yqzb4ma --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/ui-theme (0.266s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-26s38zfs --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/agent-comms
= 3.946s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-26s38zfs --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/agent-comms (3.946s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-6qjfagbq --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/formbridge
= 0.290s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-6qjfagbq --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/formbridge (0.290s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ig13myjr --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/metaclass-registry
= 0.271s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-ig13myjr --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/metaclass-registry (0.271s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-lnyb150x --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/textual
= 0.556s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-lnyb150x --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/textual (0.556s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-8chpgne3 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/toad
= 0.374s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-8chpgne3 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/toad (0.374s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-s7mb0k2g --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/ui-theme
= 0.250s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-s7mb0k2g --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/ui-theme (0.250s elapsed)
grew StringIdentity:src/agent_comms/installer/probes/packages.py +2
grew StringIdentity:src/agent_comms_hooks/shell_commands.py +1

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

debt-src at 83e1c45, every finding:

+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-83d0yqka --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/agent-comms
= 6.181s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-83d0yqka --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/agent-comms (6.181s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-rqc4td50 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/formbridge
= 0.608s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-rqc4td50 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/formbridge (0.608s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-e3je3myp --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/metaclass-registry
= 0.773s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-e3je3myp --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/metaclass-registry (0.773s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-8v5kuhhx --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/textual
= 1.619s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-8v5kuhhx --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/textual (1.619s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-odhzd985 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/toad
= 0.930s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-odhzd985 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/toad (0.930s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-4yx2swdn --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/ui-theme
= 0.847s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-4yx2swdn --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/base/openhcsdev/ui-theme (0.847s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-u8bjazep --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/agent-comms
= 7.085s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-u8bjazep --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/agent-comms (7.085s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-dro3r1v7 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/formbridge
= 0.638s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-dro3r1v7 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/formbridge (0.638s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-1ld5pzim --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/metaclass-registry
= 0.646s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-1ld5pzim --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/metaclass-registry (0.646s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-3vj7okvt --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/textual
= 1.087s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-3vj7okvt --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/textual (1.087s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-s53vedrs --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/toad
= 0.895s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-s53vedrs --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/toad (0.895s elapsed)
+ CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-x7nmx7i5 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/ui-theme
= 0.534s CommandPhase: /home/runner/work/_temp/checker-venv/bin/uv build --wheel --out-dir /home/runner/work/_temp/paired-sources/metadata/metadata-x7nmx7i5 --python /home/runner/work/_temp/checker-venv/bin/python /home/runner/work/_temp/paired-sources/head/openhcsdev/ui-theme (0.534s elapsed)
grew BannedVocabulary:src/agent_comms/installer/runtime_resolution.py +1
grew BannedVocabulary:src/agent_comms/installer/runtime_stack.py +1
grew FamilyFlattened:src/agent_comms/installer/probes/packages.py +2
grew FamilyFlattened:src/agent_comms_hooks/shell_commands.py +6
grew FunctionLocalImport:src/agent_comms/installer/probes/packages.py +1
grew FunctionLocalImport:src/agent_comms/installer/runtime_resolution.py +1
::warning file=src/agent_comms/child_process.py::LintFindings +1 (warns, never blocks)
::warning file=src/agent_comms/installer/probes/interpreter.py::LintFindings +1 (warns, never blocks)
::warning file=src/agent_comms/installer/runtime_stack.py::LintFindings +2 (warns, never blocks)
::warning file=src/agent_comms_hooks/shell_commands.py::LintFindings +1 (warns, never blocks)
grew NoneAbsence:src/agent_comms/child_process.py +1
grew NoneAbsence:src/agent_comms_hooks/shell_commands.py +2
grew StringDispatch:src/agent_comms_hooks/shell_commands.py +1
grew StringDispatchArms:src/agent_comms_hooks/shell_commands.py +3
grew StringIdentity:src/agent_comms/installer/probes/packages.py +2
grew StringIdentity:src/agent_comms_hooks/shell_commands.py +1
grew StringSubscript +1
grew TypeErrors:src/agent_comms/build_artifact.py +1
grew TypeErrors:src/agent_comms/installer/probes/packages.py +3
grew TypeErrors:src/agent_comms/installer/runtime_stack.py +4
::warning file=src/agent_comms/cli_verbs/prepare_runtime.py::Unformatted +1 (warns, never blocks)
::warning file=src/agent_comms/installer/probes/interpreter.py::Unformatted +1 (warns, never blocks)
::warning file=src/agent_comms/installer/probes/packages.py::Unformatted +1 (warns, never blocks)
found BannedVocabulary:src/agent_comms/installer/runtime_resolution.py at src/agent_comms/installer/runtime_resolution.py:886
found BannedVocabulary:src/agent_comms/installer/runtime_stack.py at src/agent_comms/installer/runtime_stack.py:141
found FunctionLocalImport:src/agent_comms/installer/probes/packages.py at src/agent_comms/installer/probes/packages.py:194 src/agent_comms/installer/probes/packages.py:214 src/agent_comms/installer/probes/packages.py:241
found FunctionLocalImport:src/agent_comms/installer/runtime_resolution.py at src/agent_comms/installer/runtime_resolution.py:923
found LintFindings:src/agent_comms/child_process.py at src/agent_comms/child_process.py:1300 (E501 Line too long (104 > 100))
found LintFindings:src/agent_comms/installer/probes/interpreter.py at src/agent_comms/installer/probes/interpreter.py:3 (I001 [*] Import block is un-sorted or un-formatted)
found LintFindings:src/agent_comms/installer/runtime_stack.py at src/agent_comms/installer/runtime_stack.py:6 (I001 [*] Import block is un-sorted or un-formatted) src/agent_comms/installer/runtime_stack.py:251 (E501 Line too long (104 > 100))
found LintFindings:src/agent_comms_hooks/shell_commands.py at src/agent_comms_hooks/shell_commands.py:224 (SIM114 [*] Combine `if` branches using logical `or` operator)
found NoneAbsence:src/agent_comms/child_process.py at src/agent_comms/child_process.py:2351 src/agent_comms/child_process.py:2274 src/agent_comms/child_process.py:2154 src/agent_comms/child_process.py:2097 src/agent_comms/child_process.py:2096 src/agent_comms/child_process.py:2080 src/agent_comms/child_process.py:2000 src/agent_comms/child_process.py:1982 src/agent_comms/child_process.py:1977 src/agent_comms/child_process.py:1965 src/agent_comms/child_process.py:1947 src/agent_comms/child_process.py:1928 src/agent_comms/child_process.py:1928 src/agent_comms/child_process.py:1906 src/agent_comms/child_process.py:1846 src/agent_comms/child_process.py:1777 src/agent_comms/child_process.py:1766 src/agent_comms/child_process.py:1763 src/agent_comms/child_process.py:687 src/agent_comms/child_process.py:503 src/agent_comms/child_process.py:486
found NoneAbsence:src/agent_comms_hooks/shell_commands.py at src/agent_comms_hooks/shell_commands.py:288 src/agent_comms_hooks/shell_commands.py:293 src/agent_comms_hooks/shell_commands.py:276 src/agent_comms_hooks/shell_commands.py:275 src/agent_comms_hooks/shell_commands.py:234 src/agent_comms_hooks/shell_commands.py:230 src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:190 src/agent_comms_hooks/shell_commands.py:158 src/agent_comms_hooks/shell_commands.py:153 src/agent_comms_hooks/shell_commands.py:149 src/agent_comms_hooks/shell_commands.py:17
found StringDispatch:src/agent_comms_hooks/shell_commands.py at src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:234
found StringDispatchArms:src/agent_comms_hooks/shell_commands.py at src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:206 src/agent_comms_hooks/shell_commands.py:234 src/agent_comms_hooks/shell_commands.py:234 src/agent_comms_hooks/shell_commands.py:234 src/agent_comms_hooks/shell_commands.py:234
found StringSubscript at src/agent_comms/installer/probes/packages.py:86 src/agent_comms/installer/probes/packages.py:141 src/agent_comms/nominal/field_codec.py:1794 src/agent_comms/nominal/field_codec.py:734 src/agent_comms/nominal/field_codec.py:736 src/agent_comms/nominal/field_codec.py:738
found TypeErrors:src/agent_comms/build_artifact.py at src/agent_comms/build_artifact.py:40 (Argument 1 to "file_digest" has incompatible type "BinaryIO"; expected "_BytesIOLike | _FileDigestFileObj"  [arg-type])
found TypeErrors:src/agent_comms/installer/probes/packages.py at src/agent_comms/installer/probes/packages.py:131 ("SimplePath" has no attribute "resolve"  [attr-defined]) src/agent_comms/installer/probes/packages.py:135 (Argument 1 to "file_digest" has incompatible type "IO[bytes]"; expected "_BytesIOLike | _FileDigestFileObj"  [arg-type]) src/agent_comms/installer/probes/packages.py:200 (Incompatible return value type (got "dict[NormalizedName, Distribution]", expected "dict[str, Distribution]")  [return-value])
found TypeErrors:src/agent_comms/installer/runtime_stack.py at src/agent_comms/installer/runtime_stack.py:269 (Incompatible types in assignment (expression has type "Path", variable has type "set[str]")  [assignment]) src/agent_comms/installer/runtime_stack.py:270 (Value of type variable "_StrOrBytesPathT" of "copyfile" cannot be "set[str]"  [type-var]) src/agent_comms/installer/runtime_stack.py:271 ("set[str]" has no attribute "chmod"  [attr-defined]) src/agent_comms/installer/runtime_stack.py:272 (Argument 1 to "capture" of "BuildArtifact" has incompatible type "set[str]"; expected "Path"  [arg-type])
found Unformatted:src/agent_comms/cli_verbs/prepare_runtime.py at src/agent_comms/cli_verbs/prepare_runtime.py:1 (Black would reformat this file)
found Unformatted:src/agent_comms/installer/probes/interpreter.py at src/agent_comms/installer/probes/interpreter.py:1 (Black would reformat this file)
found Unformatted:src/agent_comms/installer/probes/packages.py at src/agent_comms/installer/probes/packages.py:1 (Black would reformat this file)
introduced BannedVocabulary:src/agent_comms/installer/runtime_resolution.py at lines [886]
introduced BannedVocabulary:src/agent_comms/installer/runtime_stack.py at lines [141]
introduced NoneAbsence:src/agent_comms/child_process.py at lines [687]
introduced NoneAbsence:src/agent_comms_hooks/shell_commands.py at lines [17, 206]

@trissim
trissim enabled auto-merge November 2, 2026 03:11

trissim commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #3825, merged as 0d5afb1. Closing as superseded with Tristan's approval. #3825 carries the runtime identity and exact-input repairs this batch wrapped.


Generated by Claude Code

@trissim trissim closed this Nov 2, 2026
auto-merge was automatically disabled November 2, 2026 16:19

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants