Control handoff auto-resume after compaction#3
Conversation
|
Summary: The PR implements the requested handoff wait/proceed behavior and settings UI, but the raw settings merge can treat prototype/meta JSON keys as real Reviewed groups sequentially: settings resolver/UI, handoff integration, then tests/docs. Business / Product AssessmentVerdict: REQUEST CHANGES Strengths
In Scope Issues
Out of Scope Issues
Technical AssessmentVerdict: REQUEST CHANGES Input Boundary Shape Risk AssessmentStatus: Triggered Strengths
In Scope Issues
Out of Scope Issues
Reusability
review generated with CURe v. 0.7.3 · single-stage · sha bf278cb · model gpt-5.5/high · tok 602k/8k/610k · session agenticoding-pi-agenticoding-pr3-20260524-190841-2c39 · 4m5s |
|
Summary: The PR largely implements the requested wait-by-default handoff behavior and settings surface, but configuration failure handling still has fail-open paths that can produce unexpected auto-resume or silent save failures. Business / Product AssessmentVerdict: REQUEST CHANGES Strengths
In Scope Issues
Out of Scope Issues
Technical AssessmentVerdict: REQUEST CHANGES Input Boundary Shape Risk AssessmentStatus: Triggered Strengths
In Scope Issues
Out of Scope Issues
Reusability
review generated with CURe v. 0.7.3 · single-stage · sha 85879c3 · model gpt-5.5/high · tok 594k/9k/603k · session agenticoding-pi-agenticoding-pr3-20260524-193138-4af8 · 5m14s |
…ave failures FB-002: readSettingsSource now distinguishes ENOENT (file genuinely missing -> exists:false) from other read errors like EACCES/EISDIR (exists:true, invalid:true). The resolveHandoffResumeBehavior function already handles invalid sources with warnings and fallback to wait. FB-003: The async IIFE in createAgenticodingSettingsComponent's SettingsList change callback now wraps the save/rebuild sequence in try/catch. On failure it calls notify() with an error-level message instead of silently dropping the rejection as an unhandled promise. Regression tests: - non-ENOENT read error test (FB-002): makes global settings file unreadable via chmod 000, asserts invalid:true + warning + wait - write failure test (FB-003): blocks the .pi/agent directory with a file, asserts writeGlobalHandoffResumeBehavior rejects with EEXIST
|
Summary: This PR changes handoff to wait by default, adds opt-in auto-proceed plus Business / Product AssessmentVerdict: APPROVE Strengths
In Scope Issues
Out of Scope Issues
Technical AssessmentVerdict: APPROVE Input Boundary Shape Risk AssessmentStatus: Triggered Strengths
In Scope Issues
Out of Scope Issues
Reusability
review generated with CURe v. 0.7.3 · single-stage · sha a9a3959 · model gpt-5.5/high · tok 938k/8k/946k · session agenticoding-pi-agenticoding-pr3-20260525-082158-f9e7 · 8m11s |
|
First review LGTM. Waiting for merge with main. |
…me-control # Conflicts: # README.md # agenticoding.test.ts # handoff/tool.ts
|
Merged latest |
Summary
This PR lets pi-agenticoding users control whether
/handoffwaits after compaction or resumes automatically, with the safe default changed to wait and a dedicated/agenticoding-settingsTUI for configuring the behavior without hand-editing JSON.Requirements
Acceptance criteria
handoff.resumeBehaviorresolves towait.waitmode completes compaction without sending an automatic continuation message.proceedmode sends exactly one automaticProceed.message after compaction.waitand emit warning diagnostics./handoffinitiation and direct handoff tool usage share the same resolved resume behavior./agenticoding-settingsopens a dedicated agenticoding settings surface;/handoff <direction>remains only a handoff initiation command.handoff.resumeBehaviorvalue while preserving unrelated settings content; project settings continue to override global settings at runtime.Contract changes
handoff.resumeBehaviorwith supported valueswaitandproceed.waitwhen the setting is absent or invalid.~/.pi/agent/settings.jsonplus project<cwd>/.pi/settings.json, with project settings overriding global settings./agenticoding-settingsslash command for agenticoding configuration.handoff.resumeBehaviorunder the nestedhandoffobject.handoff.resumeBehaviortoproceedmanually or via/agenticoding-settings.Out of scope
/handoffflags such as--waitor--proceed, or direct tool-call override parameters.How to verify
/handoffwith nohandoff.resumeBehaviorconfigured and confirm the next compacted context waits for explicit user input.handoff.resumeBehaviortoproceedand confirm handoff sends one automaticProceed.after compaction./agenticoding-settingsand confirm it shows the current value, supported values, default, and global/project override state./workspaces/chunkhound_workspace/pi-agenticoding:node --loader /tmp/pi-agenticoding-test-loader.mjs --test \ --test-name-pattern 'handoff resume|handoff auto-resume|handoff setting|agenticoding settings' \ agenticoding.test.ts node --loader /tmp/pi-agenticoding-test-loader.mjs --test agenticoding.test.ts