Repository navigation
fix: keep activity reporting alive for the provider turn - #839
AlexanderZ-Band merged 7 commits into
Conversation
AlexanderZ-Band
left a comment
There was a problem hiding this comment.
Cycle 1: no verified findings in the independently reviewed provider-turn lifetime delta. Combined-feature findings are recorded on the producer PR.
6e4277a to
8bfeac0
Compare
bandzalkin
left a comment
There was a problem hiding this comment.
Scope
Approval is limited to #839's reviewed delta at a397d8cb905d5316a87f62da23c8c5af1895e78e against a96fb54d0c9e496b22fb80353eea48656294b0cb, as requested. This supersedes the earlier stack-level hold only for this individual PR's code review.
Constraints
Originating-turn ownership, settled ACK preservation, STOP fencing, and terminal-clear ordering remain the applicable invariants.
Decisions
The scope-owned reporter and existing task cancellation owners fit the project. No design correction was established in this delta.
Findings and proof
No new findings. Head/base and all review discussions were rechecked and are unchanged since the detailed review. The completed combined-tip verification was 1,466 passed / 69 skipped in the core contract suites and 1,372 passed / 10 skipped in coding-adapter, ACP and turn-admission suites. No additional tests were rerun for this unchanged-head approval; live platform/model acceptance and the full repository gate were not run. GitHub still reports a merge conflict with main, which must be resolved and the resulting changes verified before integration.
Architectural / review verdict
APPROVED for the reviewed #839 delta. This does not approve #841 or clear the stack's five outstanding findings, and it does not assert that the merge conflict has been resolved.
…t-activity-detail-to-the-platform-INT-1744 Keep main's BackendTurns ownership of OpenCode cancellation and register the watcher as a turn worker so activity reporting outlives the handler. Reporter unit tests move to tests/runtime/workingreporter; main's workingstate package keeps the execution-level tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AgnNR4uiqD787Bg3yKdZpL
…t-activity-detail-to-the-platform-INT-1744
band-ai#839/band-ai#840 rewrite message_lifecycle from current main; the carried band-ai#857 only adds the paginated get_actionable_messages method, whose insertion anchor survives that rewrite. Order the stack first so each diff lands on the tree its branch was built against.
band-ai#839 merged into main as ce2e2c3; band-ai#840's content arrives through band-ai#841's combined delta, so the selection names only the open tip PRs of the activity stack. An earlier amend intended this trim silently no-op'd on the string replace — verified against the branch blob this time.
prs.txt gains band-ai#839, band-ai#840 after band-ai#839, band-ai#841 after band-ai#840 and our gate band-ai#874 after band-ai#841, per the owner's decision to align with the upstream INT-1744 stack instead of writing a parallel reporter. band-ai#857 was rebased onto current main so the run stops depending on the pre-reorg test layout.
band-ai#839/band-ai#840 rewrite message_lifecycle from current main; the carried band-ai#857 only adds the paginated get_actionable_messages method, whose insertion anchor survives that rewrite. Order the stack first so each diff lands on the tree its branch was built against.
band-ai#839 merged into main as ce2e2c3; band-ai#840's content arrives through band-ai#841's combined delta, so the selection names only the open tip PRs of the activity stack. An earlier amend intended this trim silently no-op'd on the string replace — verified against the branch blob this time.
Select band-ai#841 (which inherits the merged band-ai#839 and band-ai#840) and our gate band-ai#874 after it, restack band-ai#763 after band-ai#874 so its omp_acp.py removal composes once against band-ai#841's edit, and select band-ai#880 (native OMP activity hooks) after band-ai#763. The band-ai#857 source branch was rebased onto current main after the test reorg.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
Why
Detached approval waits return their delivery handler while provider work is still running, so the working indicator stops too early.
What
Keep reporting owned by the originating turn scope through its registered workers, fence echoed STOP responses, and bind OpenCode cancellation and remote abort to the same worker owner.
Scope
Boolean lifetime and control ownership only. Delivery/ACK disposition, the reporting cap and adapter residency cleanup are unchanged. First layer of INT-1744; next layer is #840.