You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Runner treats porcelain writes as reads and varies classification by plan shape #60
On main d3d3b35, tools/agent_run.py::build_index omits porcelain operations from writer classification. An argv-only plan uses the registry; adding a use step switches to the catalogue. Neither path treats session-end --commit-message fixture --push as a writer.
In synthetic fixture regressions, the production runner adapter dispatched mocked session-end commit/push after a simulated lost gateway response under on_error: continue. The observed sequence was seal, session-end, inspect; expected was seal, inspect. Sessionless argv, prefixed argv and operation-id forms were admitted. No actual commit/push or live learner mutation was performed. Environment: Python 3.14, macOS, isolated checkout.
Repair on codex/runner-write-classification-20261027: use one executing parser/registry rule for both paths. Keep established query/tool reads; treat commands, porcelain, absent registrations and unknown kinds as write barriers. Preserve sessionless descriptions.
Acceptance:
Writer sets match across task-resolution paths, including missing and unknown registry kinds.
Refuse sessionless effectful steps before any dispatch, including mixed plans, prefixed argv and write: false.
Block porcelain after an uncertain write while allowing independent reads.
Descriptions of effectful operations remain sessionless reads.
Reproduce the unsafe behavior by applying the new tests to the base runner:
.venv/bin/python -m pytest -q tests/test_agent_run.py -k 'classification_is_conservative or session_end_commit_push or uncertain_write_blocks_porcelain or describing_porcelain'
Thirteen initial regression cases failed against the base, one passed. Dispatch and the lost subprocess response are mocked; the runner admission/scheduler and plan compilation use the production route, without an injected executor. The current focused runner/read-session/readiness/consolidation/task suites pass: 127 tests. Hosted CI will be recorded on the draft PR.
The update at 17ce3db adds explicit per-operation effects and closes the partial-porcelain uncertainty gap. Both argv/use production-path fixtures now perform a real local Git commit, fail push because no remote exists, retain committed_unpushed, report uncertainty, skip the next log, and allow an independent inspect. Escaped exceptions, generic porcelain commit: none, output lacking commit evidence, genuine gateway refusals, and receipt precedence are covered.
Activity
Aram164 commentedon Oct 27, 2026
The update at
17ce3dbadds explicit per-operation effects and closes the partial-porcelain uncertainty gap. Both argv/use production-path fixtures now perform a real local Git commit, fail push because no remote exists, retaincommitted_unpushed, report uncertainty, skip the next log, and allow an independent inspect. Escaped exceptions, generic porcelaincommit: none, output lacking commit evidence, genuine gateway refusals, and receipt precedence are covered.PR #61 has 32 added regression cases and 491 passing focused tests. Exact hosted validation of Core
17ce3db/ UI5a6bbeeis running: https://github.com/Aram164/LearningOS/actions/runs/40501648043