Commit graph

5 commits

Author SHA1 Message Date
Andrei Kaznacheev
7d62c5afa3 feat(remote): three-phase dispatch — prepare once, project three ways, execute
The old shape was "look at the arguments, then run", so every guard that needed a
fact about the target fetched it itself, whenever it happened to need it. Three
failures follow at once: the same fact is computed repeatedly and may disagree
with itself; the guard is hard to reason about because its inputs arrive from
everywhere; and on a remote placement most of those fetches answer about the
wrong machine.

PREPARE reads the sealed placement ONCE and derives everything from that single
read — the fact door, the executor projection, and for an ssh placement the one
bundled prepare the target answers. A transitive AST test walks the pipeline and
requires every other placement read to be DECLARED with its reason; the earlier
scan read two function bodies and no further, so extracting the gate chain took
its reads out of view in the same commit that introduced them.

AUTHORIZE projects the final arguments into three NAMED views — handler, guard,
execution — bound immutably together, with every intentional difference declared
in a table. The guard projection used to be passed around as "the args", so the
authorized set and the executed set were two look-alike objects one rename apart.

EXECUTE hands the bound token to the target or continues on Home, and the
question that decides which is whether the operation ADDRESSES Home, not whether
the task is remote: by the ratified root matrix a remote task calling a
HOME-native root keeps its Home handler, and asking the placement instead sent
every guard keyed on the Home binding to its empty fallback.
2026-08-15 18:55:27 +04:00
Ouroboros
26e50c34e5 fix: preserve light and direct-call semantics
Keep generic runtime data and cross-target system writes guarded in light mode, retain actionable cwd/not-found errors, and align private-binding test handlers with the frozen dispatch contract.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-08-11 09:37:42 +03:00
Ouroboros
5570ffd59b Bind process consumers to workspace authority
Resolve command, script, service, and run-kind verification targets once and carry the selected binding through interpreter choice, guards, execution, and receipts while preserving task custody.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-08-11 09:37:42 +03:00
Anton Razzhigaev
543cc8376c fix(test): 3-OS portability for the v6.67.0 suites
Windows: the python-resolver tests built fake venvs in POSIX layout
(bin/python) while project_venv_python correctly looks for
Scripts\python.exe — the fixture is now platform-aware; the isolated-checkout
test repos pin core.autocrlf=false so the LF staged patch applies in the
detached worktree on autocrlf=true runners. ui-smoke: the desktop chat scroll
probe re-injects its bubbles after the viewport resize dance — a resize can
re-render the chat from the (empty) real history and silently drop injected
nodes, which made the post-resize assertion an environment-dependent flake.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 23:52:36 +00:00
Anton Razzhigaev
a776639fcb feat(v6.66.0): honest mutation attribution, attributed staging, environment-correct Python, auditable Skill Review history, and a drift-proof operator review wrapper
Operator phase 2 of the owner-approved 6.65-6.67 release cycle. The physical
mutation lease/holder subsystem was deliberately descoped by the owner:
attribution is evidence-only (root-task baseline, terminal candidate snapshot,
attributed commit staging, projection into acceptance/review evidence, no
structural outcome veto). Ships the surface-aware Python interpreter resolver,
auditable Skill Review rounds/history, the single task-tree disposition
authority with cancel-wins, the SSOT operator review wrapper with typed exit
codes, the parallel hermetic pytest preflight, and the chronic red-CI
light-model test fix.

Review: advisory=skipped (prompt-size cap, non-blocking), triad
fable-5/gpt-5.6-sol/gemini-3.5-flash all responded, scope fable-5 responded,
aggregate PASSED (run 20260716T221730Z, $16.38). Full non-serial+serial pytest
green; ruff -F clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 22:25:04 +00:00