Skip to content

Runner treats porcelain writes as reads and varies classification by plan shape #60

Closed

Description

@Aram164

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.

Retained evidence: work/complaints/2026-10-27-agent-run-write-classification.md.

Activity

  1. Aram164 commented on Oct 27, 2026

    @Aram164
    OwnerAuthor

    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.

    PR #61 has 32 added regression cases and 491 passing focused tests. Exact hosted validation of Core 17ce3db / UI 5a6bbee is running: https://github.com/Aram164/LearningOS/actions/runs/40501648043

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions