Finalize safe session rollover without nested lock deadlock
Hop-State: A_06FN5XPBA1JMJNPS2MAR0D0 Hop-Proposal: R_06FN5XN2CX7XBZ4KF1JZZ2G Hop-Task: T_06FN3MBF98GWD4NA5PA1RWG Hop-Attempt: AT_06FN5TMC0J7DXV2JGF15T20
This commit is contained in:
+7
-4
@@ -29,9 +29,11 @@ only the shell-added final newline. Never copy the credential anywhere else.
|
||||
`hop begin` performs the Desktop bootstrap:
|
||||
|
||||
- Initialize Hop automatically when the project has not used it before.
|
||||
- Use `CODEX_THREAD_ID` to bind this Codex task to one Hop attempt.
|
||||
- Use `CODEX_THREAD_ID` to bind this Codex task to its unfinished Hop work.
|
||||
- Create a prompt state and isolated workspace on the first turn.
|
||||
- Checkpoint prior workspace effects and append a prompt state on follow-ups.
|
||||
- Checkpoint prior workspace effects and append follow-ups until that work lands.
|
||||
- Follow a reconciliation into its fresh attempt, then start the first prompt
|
||||
after landing from the latest accepted state instead of reopening old work.
|
||||
- Redact detected API keys, tokens, passwords, private keys, authorization
|
||||
headers, and credential-bearing connection strings before persistence.
|
||||
|
||||
@@ -114,8 +116,9 @@ For a read-only or informational turn, the prompt state is sufficient; do not
|
||||
invent a proposal when the workspace tree is unchanged.
|
||||
|
||||
Do not edit a frozen proposal. A user follow-up triggers this skill again;
|
||||
run `hop begin` again before acting. Session binding selects the existing
|
||||
attempt automatically, so the user never needs to carry state IDs.
|
||||
run `hop begin` again before acting. Session binding selects unfinished work
|
||||
automatically and rolls completed work onto the latest accepted state, so the
|
||||
user never needs to carry state IDs.
|
||||
|
||||
## Auto-accept by default
|
||||
|
||||
|
||||
@@ -37,7 +37,9 @@ Prompt, checkpoint, and proposal states may reference identical Git trees while
|
||||
|
||||
Interactive agents may begin without these variables. `hop begin` returns the
|
||||
equivalent IDs and workspace, while `CODEX_THREAD_ID` binds later messages in
|
||||
the same Codex task to the existing attempt.
|
||||
the same Codex task to unfinished work. Follow-ups before acceptance continue
|
||||
the attempt; the first prompt after acceptance starts a fresh task and attempt
|
||||
at the latest accepted state.
|
||||
|
||||
## Command contract
|
||||
|
||||
@@ -111,8 +113,10 @@ accepted state, including projects created with older Hop builds.
|
||||
`hop begin` is the Codex Desktop entry point. It initializes Hop when necessary,
|
||||
captures the current message before the agent performs project work, and uses
|
||||
`CODEX_THREAD_ID` as the default session key. A later `hop begin` in the same
|
||||
Codex task checkpoints the prior workspace before appending the follow-up
|
||||
prompt state.
|
||||
Codex task checkpoints the prior workspace before appending a follow-up while
|
||||
that work remains unfinished. Reconciliation transfers the session to its fresh
|
||||
attempt. After a proposal is accepted, the next `hop begin` starts from the
|
||||
latest accepted state and never reopens the completed workspace.
|
||||
|
||||
Pass the original message to `hop begin` without model-side redaction. Hop's
|
||||
sanitizer replaces detected credential values before any durable write and
|
||||
|
||||
Reference in New Issue
Block a user