Skip to content

P271/P283: repository identity and lasting problem progress (replaces #2031, #2055) - #2153

Merged
trissim merged 3 commits into
mainfrom
fix/p271-p283-progress-2
Oct 20, 2026
Merged

trissim merged 3 commits into
mainfrom
fix/p271-p283-progress-2

Conversation

@trissim

@trissim trissim commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

P271 / P283 — replaces #2031 and #2055

Fresh branch from main 412d7fa09; combined because both old PRs replace the same Todo/PR progress decisions. No merge/rebase of an old branch or force-push.

Owners and deletions

  • RepositoryName owns owner/name validation and case-insensitive equality/hash. The wire and SQL form stays owner/name TEXT. Repo, goal actions, Todo storage, dispatch tasks, GitHub arguments and Python callers take that value. Deleted _repo, repository string splitting and caller-side lowercasing.
  • Todo owns previous checked orders; current order remains its single active order. order_history derives the complete list. Replacement/linking preserve it; no parallel store.
  • PullRequests owns exact problem/order membership and batches both current and previous references. ProgressSource uses actual Git refs from owned/reused checkouts or its explicit check directory. Non-Git home directories stay MissingCheckout, not broken Git repositories. Storage ownership takes the existing ThreadIncarnation rather than replacing it with a name string.
  • ProblemOrder.closed_by_merge dispatches by declared capability, removing the type filter. Checked orders use main's observed_merges implementation, including its merged-order override. Repo.contains retains main's revision argument and Git failure behavior. Main's objective strikes, story, wording checks and event clocks are preserved.
  • The actual CLI revealed a remaining timestamp filter after membership was already established: a later order hid an older linked merge. Deleted that second decision from PullRequest.merged_commits and its consumer.
  • Adapted WorkDispatch to the current StorageProjection API, instead of retaining a second storage admission path.

Verification (exact limits)

  • One background timeout-300 batch, 12 files: 200 passed / 21 failed in 53.09s at initial head 9875bc4f2. No repeat, skips, xfails or reduced assertions.
  • Pushed fixes afterward: explicit repository-value callers, non-Git directory classification, current storage admission call, the renamed context field, and preservation of linked older merges. No claim that the original batch passed on the final head.
  • Unchanged main clock/stall policy disagrees with several old assertions in test_order_progress; those assertions were not relaxed. A result-reader recursion also remains: FieldCodec.record_schema(FoldedProblemOrder) fails without Todo or the new prior_orders field. core-native-runtime was sent that reproducer and the reply round-trip check; field_codec.py is untouched here.
  • Actual CLI works on a fresh private root with real GitHub reads: create P294, replace its order, match mixed-case repository identity, find real merged PR P294: commander edit guards on main (replaces #2078) #2149, close its replacement order through order board, and retain the previous order. The CLI queries actual GitHub data and actual Git ancestry. It sends no provider input, creates no PR, changes no Git checkout and writes no original bus. Evidence: P757/P271-P283-application-finish.log and P271-P283-application/fleet.md.
  • AST before/after enumerates production/tools declarations, writes, checks and consumers, zero parse omissions (P271-P283-relations.txt). Full NRA semantic binding unavailable: tree_sitter is absent. Dynamic resolution is not claimed proven by the AST inventory.
  • Final source/tools ratchets: 0/0, both exit 0 at head bc7de0e3d against 412d7fa09. Initial source run found two style issues and a prohibited word; corrected in the semantic merge-history fix, not suppressed.

No installed-build claim. The installer owes the TodoOrderHistory carry against its backed-up board before installing the new prior_orders column. Original stores, saved sessions and unknown inputs are unchanged.

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

@trissim
trissim marked this pull request as ready for review October 20, 2026 05:56
Copilot AI balanced review requested due to automatic review settings October 20, 2026 05:57
@trissim
trissim merged commit 78cf8d9 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