Skip to content

P272: refuse storage operations without strikes (replaces #2037) - #2150

Merged
trissim merged 2 commits into
mainfrom
fix/p272-storage-refusal-2
Oct 20, 2026
Merged

trissim merged 2 commits into
mainfrom
fix/p272-storage-refusal-2

Conversation

@trissim

@trissim trissim commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

P272 — replaces #2037

Main still turned a refused native tool result into a storage strike. Its existing native-result reader now only explains the refusal and names its original tool-call ID. It never judges the call again or changes the problem.

Deleted StorageStrikeTodo and its pattern check. Kept main's StoryEvent and objective-strike deduplication; these newer classes still need the base repeats/prior_strikes hooks. Updated StorageRule's generated instructions to say refusal without a strike. The one-time carry rewrites old storage strike tags and voids those still counting, retaining their records; no old-kind reader remains in production.

Verification

  • One background timeout-300 batch: 135 passed in 25.34s, commander watcher, single storage judge, problem orders and storage rules. The watcher reads the typed native refusal frame three times, including after reload, with assignments/strikes unchanged and no repeated preflight.
  • Source/tools ratchets zero after correcting two style findings. Final source run includes the original call ID in the diagnostic; tools source is unchanged from its successful run.
  • AST before/after across production/tools roots, zero omissions (P272-relations.txt). Main's newer strike classes were preserved, not replaced by the old branch's versions. Full NRA semantic resolution is unavailable (missing tree_sitter).
  • Tried the updated copy-only application script against the actual root. Not a successful live proof: that board copy has no assigned orders, and this agent's last 4 MiB of saved history contains no typed storage-refusal result. Original stores and saved history were only read; no tool or provider input replayed. The passing watcher check is a controlled frame through the real parser, not a claim about installed native emission.
  • No installation or original-store conversion. The installer still owes running the carry against its backed-up board before removing the old storage-strike kind from a live runtime.

Evidence: /home/ts/.cache/agent-scratch/p35-main-show-once-20261017/P757/P272-*.

@trissim
trissim marked this pull request as ready for review October 20, 2026 05:42
Copilot AI balanced review requested due to automatic review settings October 20, 2026 05:42
@trissim
trissim merged commit 412d7fa into main Oct 20, 2026
0 of 3 checks passed

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.

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