ultracode-for-codex 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  # Provenance Audit
2
2
 
3
- Date: 2026-06-22
3
+ Date: 2026-06-23
4
4
 
5
5
  ## Scope
6
6
 
7
7
  This audit checked:
8
8
 
9
9
  - tracked repository files;
10
- - generated npm package contents for `ultracode-for-codex@0.3.3`;
10
+ - generated npm package contents for `ultracode-for-codex@0.3.4`;
11
11
  - the locally installed companion Codex skill.
12
12
 
13
13
  Generated build output and package tarballs were checked as projections of the
@@ -23,7 +23,7 @@ License transition completed:
23
23
 
24
24
  - Apache-2.0 `LICENSE` file is present;
25
25
  - `package.json` and `package-lock.json` declare `Apache-2.0`;
26
- - audited package metadata version is `0.3.3`;
26
+ - audited package metadata version is `0.3.4`;
27
27
  - npm publish state is verified separately during release preparation.
28
28
 
29
29
  ## Evidence
@@ -1,17 +1,34 @@
1
1
  # Ultracode Resume Cache Contract
2
2
 
3
- This is the current same-session resume/cache contract. It builds on
4
- `docs/ultracode-p3a-journal-design.md`.
3
+ This is the current local resume/cache contract. It builds on
4
+ `docs/ultracode-p3a-journal-design.md` and the durable local workflow state
5
+ under `${ULTRACODE_FOR_CODEX_HOME:-~/.ultracode-for-codex}`.
5
6
 
6
7
  ## Scope
7
8
 
8
- Resume/cache is runtime-internal and same-session. User-facing recovery uses
9
- same-run retry or explicit CLI reruns.
9
+ Resume/cache is local and command-owned. Same-process runtime calls may pass
10
+ `resumeFromRunId` directly, and CLI users may pass `--resume-from-run-id` to
11
+ resume a completed run from preserved script, result, and journal state.
10
12
 
11
13
  ## Rules
12
14
 
13
- - `resumeFromRunId` accepts only workflow `runId` values already known by the
14
- current `WorkflowTaskRegistry`.
15
+ - `resumeFromRunId` accepts workflow `runId` values known by the current
16
+ `WorkflowTaskRegistry` or completed run ids with durable result and journal
17
+ state under the same workflow state directory.
18
+ - CLI `--resume-from-run-id` reuses the original persisted runtime script and
19
+ rejects any additional workflow source selector. Without `--args`, it also
20
+ reuses the original args.
21
+ - Durable result records store the minimal runtime-owned retry input needed for
22
+ resume. Journal paths and contents remain local state and are not printed in
23
+ ordinary CLI output.
24
+ - Durable resume requires a matching terminal `workflow.run.completed` journal
25
+ entry for the selected run id.
26
+ - Durable resume binds the result record's script path and persisted script
27
+ metadata back to the journal's `workflow.run.started` script path and source
28
+ identity.
29
+ - Inherited resume args come from the source journal's `workflow.run.started`
30
+ entry. If the durable result record also stores args, they must match the
31
+ journal args.
15
32
  - Running source runs fail with `workflow_resume_running`.
16
33
  - Completed agent prefixes are reused only when the current `agentCallKey`
17
34
  matches the source journal prefix.
@@ -31,10 +48,12 @@ values such as label and phase stay outside the cache identity.
31
48
 
32
49
  ## Verification
33
50
 
34
- - `test/workflow-runtime.test.mjs` covers exact cache hits and retry/cancel
35
- interactions.
51
+ - `test/workflow-runtime.test.mjs` covers exact cache hits, retry/cancel
52
+ interactions, and cross-registry completed-run resume.
36
53
  - `test/workflow-journal.test.mjs` validates the journal reader used to derive
37
54
  cache entries.
55
+ - `scripts/e2e-installed-ultracode-for-codex.mjs` covers packaged
56
+ `code-review` resume with cached agent completions.
38
57
 
39
58
  Realization:
40
59
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultracode-for-codex",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Run Codex-native Ultracode orchestration with an optional local CLI runtime.",
5
5
  "keywords": [
6
6
  "codex",
package/settings.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "retryLimit": 0,
7
7
  "timeoutMs": 0,
8
8
  "background": {
9
- "runDir": ".ultracode-for-codex/background/{jobId}",
9
+ "runDir": "{stateRoot}/background/{jobId}",
10
10
  "resultFile": "result.json",
11
11
  "progressFile": "progress.jsonl",
12
12
  "metadataFile": "metadata.json",
@@ -56,6 +56,10 @@ CLI behavior:
56
56
  deletion with `archive` or `export`;
57
57
  - `wait --result`, `cancel --wait`, `logs --event <event>`, and `--plain`
58
58
  provide focused foreground checks;
59
+ - `--resume-from-run-id <runId>` resumes a completed local workflow from
60
+ preserved runtime state, rejects additional workflow source selectors, and
61
+ reuses completed agent results only when the runtime-owned call keys still
62
+ match;
59
63
  - attached execution is available with `--execution attached` when the caller
60
64
  should stay connected until completion;
61
65
  - attached progress prints to stderr as JSONL by default;
@@ -101,9 +105,12 @@ CLI behavior:
101
105
  background execution so long runs can keep waiting while Codex does other
102
106
  work.
103
107
  - Keep `journalPath`, `journal.jsonl`, and journal contents out of CLI output.
104
- - Treat `.ultracode-for-codex` workflow state as sensitive local data.
105
- - Keep `resumeFromRunId` runtime-internal unless cross-process resume gets an
106
- explicit durable design.
108
+ - Treat workflow state under `${ULTRACODE_FOR_CODEX_HOME:-~/.ultracode-for-codex}`
109
+ as sensitive local data. Project-local `.ultracode-for-codex/` is legacy
110
+ state and should stay ignored if present.
111
+ - `--resume-from-run-id` reads preserved script, result, and completed journal
112
+ state from the global workflow state root; script path, script source
113
+ identity, and inherited args must match the completed journal.
107
114
  - Use `isolation: "worktree"` only inside a git repo with at least one commit;
108
115
  isolated worktrees are intentionally preserved for review, including clean
109
116
  worktrees.