Skip to content

Enforce declared wording on fresh native orders before reservation - #2117

Closed
trissim wants to merge 3 commits into
mainfrom
fix/native-soft-order
Closed

trissim wants to merge 3 commits into
mainfrom
fix/native-soft-order

Conversation

@trissim

@trissim trissim commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Native soft-order refusal

Fixes the concrete row-10 mismatch from P298 without adding or changing a word list. OrderText already rejects the three texts; native order entry never invoked the declared DirectiveText family that includes it.

  • PendingProblemOrder.require_wording checks edit, prohibition, report and application-run prose through the existing family. Shell commands and source paths remain data.
  • Both problem-order goal actions inherit the pre-reservation check. Direct new Todo creation and changed-order assignment also invoke the same owner, so they cannot bypass it.
  • Stored-order decoding remains unchanged. An old soft-worded order is still readable, not retroactively invalidated.

Actual retained-state proof

Ran the real pushed P298 OrderWordingComparison.compare_messages against native source on this branch and the configured retained commander state. All three exact originals supplied by pi-toad-viewport (5071/46f9c545f560, 5069/d3136ab86138, 5050/3a6fbd6a619e) now produce current_refusals=3, native_refusals=3, mismatches=0, passed=true. The independently pinned 5084/79cf1033ccda case also passes with both refusals=1. Follow-up paired proof explicitly asserts passed=True, current_refusals=1, native_refusals=1 and mismatches=0, without selecting expectations from the result. It uses the frozen P298 checker blob from 63c189aa2 (blob 5c7e1ea6a59e9088e3ca87faeb856e951e5c92f8) because the peer reused its checkout; no peer checkout or assertion was changed. Receipt: native-soft-pinned-checker.log, exit0. These calls reach actual ProblemOrderGoalAction.request_ref before reservation; no order publication or provider call. Private message bodies are not copied into the PR.

Final head: 923c12eb6a990745c8a0e6a0de7fd9884f0c987a. First implementation pushed at23:38:05, within10 minutes; PR opened23:39:44, within20 minutes.

At this final head, the ordinary ambient OrderWordingComparison.read() also PASSES:5 currently retained texts, current_refusals=5, native_refusals=5, mismatches=0. This is in addition to the three exact supplied originals and the pinned fourth case, not a substitution for them.

Final local checks, existing shared Python, background/timeout300/faulthandler:

  • Regression partition: 94 passed,5 explicitly deselected in48.41s. Includes all8 new cases: fresh native refusal/no reservation, unchanged historical decoding, direct assignment across edit/banned/report/run prose, and direct creation's defect prose.
  • The excluded5 are disclosed, not claimed passing:3 need the unpopulated refactor-audit submodule in this reused checkout;2 fail on actual main too. Actual main ef4cc72da source control prints its loaded module path and gives 3 passed,2 failed for exactly these5 cases. The remaining failures are test_a_withdrawn_order_is_neither_open_nor_overdue_and_strikes_no_one and test_commander_reads_decode_only_open_todos. Sent the reproducer and owner request to claude-code; no unrelated closure/index patch.
  • tools/debt_ratchet.py --root src --base origin/main --head HEAD:exit0, no positive deltas or introduced nonzero findings.
  • Separate --root tools command:exit0, no positive deltas or introduced findings.
  • git diff --check:clean. No production install, settings publication, restart or provider call.

The prescribed resource-check launcher is missing; manual measurement before these bounded checks showed13GiB disk free and3.7GiB available RAM. No environment, worktree or full bus copy was created.

Ownership evidence

Before and after censuses use existing audit Package/Repository:396 src modules,47 tools,509 tests at each head; zero parse omissions. It enumerates declarations, imports, assignments, calls and decisions around OrderWords, OrderText, DirectiveText, OrderFile, ProblemOrderGoalAction, PendingProblemOrder and AssignTodo. Read the native entry, both reserve implementations, TodoStore.create/assign, AssignTodo.apply and current OrderFile.problems_found. Actual search rg -n -F 'could you|would you|can you' src returns only todos.py:1067, the existing OrderText.REFUSED. The sole soft-word regex remains OrderText. No new regex, alias, codec, historical reader or policy roster. Dynamic Python receiver resolution is not proven by AST; actual native calls confirm it.

Receipts: /home/ts/.cache/agent-scratch/pi-install-gate/native-soft-*. Merger still owes installation and installed readback. P298's owner retains its comparison/test changes; this branch does not weaken its known-defect assertions.

Assumed: fresh direct request5324 authorizes this separate repair while P296 remains held; no new problem ID was supplied.

@trissim
trissim marked this pull request as ready for review October 20, 2026 03:46
Copilot AI balanced review requested due to automatic review settings October 20, 2026 03:46

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 reached their quota limit.

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.

@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Landed on main through batch #2133.

@trissim trissim closed this Oct 20, 2026
trissim added a commit that referenced this pull request Oct 20, 2026
Batch mD-1: P233 fixture, native order wording (#2125 #2117)
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