Skip to content

feat(handoff): show read-only single-request status details - #329

Open
abruption wants to merge 2 commits into
mainfrom
feat/296-handoff-status-view
Open

abruption wants to merge 2 commits into
mainfrom
feat/296-handoff-status-view

Conversation

@abruption

Copy link
Copy Markdown
Owner

Summary

handoff status previously printed only the aggregate state and rewrote the ledger while querying it. It now shows a single request's submission, injection observation, receipt assurance/lateness, latest stored wait, and permitted next actions, using a read-only ledger projection.

  • Status reads one ledger snapshot without saving retention, creating waits, submitting messages, or starting a collector. Its optional collector-clock query is also read-only; an older collector can refuse it, in which case no legacy query is retried and keep_waiting is omitted.
  • Expired or quarantined receipt/observation details are shown as unavailable. Expired wait detail is not described as a request that never happened. Receipt lateness is relative to the first wait; the separately displayed latest wait retains its outcome.
  • Fix an existing public-status validation failure after a failed/history_unavailable wait and recovered collector clock: keep the known submission and failed wait without advertising keep_waiting.
  • Preserve JSON field schemas and exit-code meanings. Document the behavior in English, Korean, Japanese, and Simplified Chinese; regenerate the standalone CLI.

Refs #296. This is its first single-request presentation slice; bounded continuous watch remains open. No new CLI flags or receipt support are introduced.

Validation

  • Python 3.9.6: 24 new status tests and 93 combined status/runtime/lifecycle tests pass.
  • Python 3.13.7 with optional extras, development mode and ResourceWarning-as-error: 1,343 tests pass (19 skipped). Standalone generator, documentation manifest and diff checks pass.
  • Real temporary Unix-socket query plus offline ledger fixtures verify byte/inode/mtime preservation, no submission or collector launch, legacy rejection without fallback, late ACK versus latest wait, retention/quarantine, malformed clock frames, missing/corrupt history and interruption.
  • The recovered-clock regression fails against the original base handoff_public function and passes with this change.
  • Two parallel independent CLI review rounds completed before PR creation; findings were checked against the source and addressed with regression tests and documentation limits.

Remaining limits

  • Existing feat(handoff): expose explicit ACK, deadline, and unknown outcome for unanswered requests #181 lifecycle issue: explicit restore quarantine removes ACK detail but retains a satisfied wait. The frozen public schema rejects that combination with invalid_handoff/exit 1. This PR preserves that refusal and history, documents it, and tests it rather than altering the receipt contract.
  • Ledger and collector-clock observations are separate. Existing filesystem/locking costs remain; no hard real-time filesystem guarantee is added.
  • Legacy-collector compatibility is checked through pinned control flow and a handler fixture, not a deployed old-collector end-to-end test. No native-agent consumption or live remote test is claimed.
  • Windows handoff and Codex receipt observation remain unsupported. No continuous watch, remote monitoring, package version change or deployment is included.

@abruption abruption added this to the v1.3.0 milestone Oct 22, 2026
@abruption abruption added enhancement New feature or request priority:P2 Planned reliability, acceptance or feature work; priority does not authorize implementation. labels Oct 22, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T09:53:30.856270Z bc7ec8c PR opened
🔒 Security Review ✅ Completed 2026-10-22T09:53:57.011579Z bc7ec8c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority:P2 Planned reliability, acceptance or feature work; priority does not authorize implementation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant