@lannguyensi/harness 0.23.2 → 0.24.1
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.
- package/CHANGELOG.md +25 -0
- package/dist/cli/add/index.js +2 -2
- package/dist/cli/add/index.js.map +1 -1
- package/dist/cli/adopt/index.js +2 -2
- package/dist/cli/adopt/index.js.map +1 -1
- package/dist/cli/apply/apply.d.ts +19 -0
- package/dist/cli/apply/apply.js +117 -19
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/apply/generate-codex-config.d.ts +7 -0
- package/dist/cli/apply/generate-codex-config.js +51 -37
- package/dist/cli/apply/generate-codex-config.js.map +1 -1
- package/dist/cli/apply/index.d.ts +2 -1
- package/dist/cli/apply/index.js +1 -0
- package/dist/cli/apply/index.js.map +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +28 -0
- package/dist/cli/apply/install-codex-config.js +171 -0
- package/dist/cli/apply/install-codex-config.js.map +1 -0
- package/dist/cli/approve/understanding.d.ts +1 -1
- package/dist/cli/approve/understanding.js +55 -30
- package/dist/cli/approve/understanding.js.map +1 -1
- package/dist/cli/diff/since-apply.js +2 -2
- package/dist/cli/diff/since-apply.js.map +1 -1
- package/dist/cli/index.js +69 -36
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.js +1 -1
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/index.js +2 -2
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/interactive.js +15 -5
- package/dist/cli/init/interactive.js.map +1 -1
- package/dist/cli/init/profiles.d.ts +2 -2
- package/dist/cli/init/profiles.js +5 -5
- package/dist/cli/init/profiles.js.map +1 -1
- package/dist/cli/init/templates.d.ts +2 -2
- package/dist/cli/init/templates.js +3 -3
- package/dist/cli/loader.js +12 -8
- package/dist/cli/loader.js.map +1 -1
- package/dist/cli/main.js +4 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migrate-home/index.d.ts +39 -0
- package/dist/cli/migrate-home/index.js +194 -0
- package/dist/cli/migrate-home/index.js.map +1 -0
- package/dist/cli/pack/add.js +2 -2
- package/dist/cli/pack/add.js.map +1 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js +16 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
- package/dist/cli/pack/remove.js +2 -2
- package/dist/cli/pack/remove.js.map +1 -1
- package/dist/cli/remove/index.js +2 -2
- package/dist/cli/remove/index.js.map +1 -1
- package/dist/policy-packs/builtin/understanding-before-execution.js +23 -13
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +1 -1
- package/dist/runtime/home-dir.d.ts +39 -0
- package/dist/runtime/home-dir.js +105 -0
- package/dist/runtime/home-dir.js.map +1 -0
- package/dist/runtime/intercept.js +10 -6
- package/dist/runtime/intercept.js.map +1 -1
- package/dist/runtime/tool-name-aliases.d.ts +7 -0
- package/dist/runtime/tool-name-aliases.js +74 -0
- package/dist/runtime/tool-name-aliases.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.24.1] - 2026-05-19
|
|
11
|
+
|
|
12
|
+
**Headline: post-migration Codex apply fix.** v0.24.0 dogfood found that `harness apply --runtime codex --install` refused on drift after a default claude-code apply had rewritten `.last-apply` without the prior `codex/config.toml` entry. Two helpers close the gap: forward-merge of orphan `.last-apply` entries across runtimes, and banner-prefix recovery of an on-disk harness-generated Codex artifact when the entry is missing. The `CODEX_GENERATED_HEADER_LINE` literal is now exported from `generate-codex-config.ts` (single source of truth) and pinned via a regression test so a future banner re-word can't silently disable recovery. **Operator action**: none. The next `harness apply --runtime codex --install` after upgrading to v0.24.1 auto-recovers; subsequent applies are idempotent no-ops. Operators still on v0.24.0 who hit drift-refuse can either upgrade to v0.24.1 or run `harness apply --runtime codex --install --overwrite-drift` once.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **`harness apply --runtime codex` no longer refuses on post-migration drift when `.last-apply` was Claude-only** (agent-tasks/f3e09849, PR #216). Surfaced 2026-05-19 right after the v0.24.0 home-dir migration: an operator who ran `harness apply` (default claude-code) after `harness migrate-home` ended up with a `.last-apply` that listed only the claude-code expected files. The prior codex entry for `codex/config.toml` was dropped wholesale because each apply rewrote `.last-apply` from scratch with the current runtime's expected set only. A subsequent `harness apply --runtime codex --install` then hit drift-refuse against the existing harness-generated `codex/config.toml` on disk (which still embedded the legacy `~/.claude/.understanding-gate/reports` paths), because the three-state-compare saw `lastApplied=null + onDiskCurrent=<stale> + manifestExpected=<new>` and treated the stale file as operator hand-edits. Two complementary fixes in `src/cli/apply/apply.ts`: (1) `buildMergedLastApplyRecord` now preserves orphan-from-other-runtime entries from the previous `.last-apply` when writing a new one, so a default claude-code apply no longer drops the codex baseline; (2) `recoverMissingLastApplyContent` accepts an on-disk `codex/config.toml` whose first line matches `CODEX_GENERATED_HEADER_LINE` (the literal banner the Codex generator emits) as a recoverable baseline when `.last-apply` has no entry for it, unsticking operators who upgraded mid-flight without the merged record. The recovery branch is also wired into the no-changes path so a recovered baseline persists for the next apply. The `CODEX_GENERATED_HEADER_LINE` constant is exported from `generate-codex-config.ts` (single source of truth) and pinned via a regression test that asserts the generator's first line matches the recovery branch's expected literal, so a future banner re-word fails the test loud instead of silently disabling recovery. Two new regression tests cover (a) codex apply → claude-code apply → codex apply with no drift-refuse, (b) stale-codex-artefact recovery with full path-regeneration through `--install`.
|
|
17
|
+
|
|
18
|
+
## [0.24.0] - 2026-05-19
|
|
19
|
+
|
|
20
|
+
**Headline: Codex parity and runtime-neutral state root.** Four PRs all merged 2026-05-19. PR #211 fixes the Codex hook config schema to match Codex 0.131.0 (PascalCase event keys, nested command-hook arrays, `timeout` in seconds), closing a silent gap where `harness apply --runtime codex` emitted a TOML that current Codex no longer loads. PR #212 follows up with `harness apply --runtime codex --install`, which merges the generated hook block into a marked harness-managed region of `~/.codex/config.toml` so operators no longer copy-paste by hand. PR #213 makes `harness approve understanding` runtime-neutral: the Codex pre-tool-use blocker now stages `.pending-approval` (mirror of the Claude blocker since 33abc147), the session-id resolver gains `$CODEX_SESSION_ID` env and a fifth tier that reads the freshest persisted report's `sessionId` JSON field, and the no-session-id error text drops the Claude-only transcript-grep advice. PR #214 (this release's anchor) moves the harness state root from `~/.claude/` to runtime-neutral `~/.harness/` and adds `harness migrate-home` for one-shot migration; the legacy fallback survives the v0.24.x line and is targeted for deletion in v0.25.0. **Operator action**: run `harness apply --runtime codex --install` if you use Codex; run `harness migrate-home --apply` then `harness apply` to move your state into the new root.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- **Harness operator-state moved from `~/.claude/` to runtime-neutral `~/.harness/`** (agent-tasks/e65decef, PR #214). v0.24.0's headline change. The harness's entire state root was historically hardcoded to `~/.claude/` (default manifest, generated artefacts, persisted reports, lockfile), a holdover from when Claude Code was the only first-class runtime. With Codex parity shipping in v0.23.x and v0.24.0, that naming was misleading for Codex-only operators and surface-area-breaking on a clean system with no Claude Code installed. The new resolver `resolveHomeDir()` (`src/runtime/home-dir.ts`) picks the state root from this precedence chain: explicit `--home` flag, `$HARNESS_HOME` env, existing `~/.harness/`, legacy `~/.claude/` (with a one-line stderr deprecation warning per process when harness state is detected there), create-on-first-use `~/.harness/`. A bare `~/.claude/` directory that contains only Claude Code's own `settings.json` does NOT trigger the legacy fallback: only the presence of `harness.yaml` or `harness.generated/` counts as evidence that harness state lives there, so we never accidentally write into Claude Code's runtime config dir. A new command `harness migrate-home` (dry-run by default, `--apply` to commit) atomically moves `harness.yaml` / `harness.generated/` / `.understanding-gate/` / `harness.lock` from the legacy root to the new root and drops a breadcrumb at `~/.claude/MOVED_TO_~_DOT_HARNESS.txt`. Re-running on already-migrated state is a clean no-op. The migration command refuses to overwrite an existing item at the new path. Subdirectory names inside the new root are unchanged from v0.23.x so the move is a plain `mv` per item, no schema or filename rewrites. The deprecation warning fires at most once per process. **Operator action**: run `harness migrate-home --apply` then `harness apply` to regenerate embedded paths (e.g. `UNDERSTANDING_GATE_REPORT_DIR` in `settings.json` hook commands). The legacy fallback is supported through the v0.24.x line; deletion is targeted for v0.25.0. Operator-facing sweeps in this release: `--config <path>` default-text now reads `~/.harness/harness.yaml; legacy fallback ~/.claude/harness.yaml` across all 33 subcommands; init template comments (`MINIMAL_TEMPLATE`, `FULL_TEMPLATE`, `SOLO_TEMPLATE`, `TEAM_TEMPLATE`) now lead with `~/.harness/harness.yaml`. Tests: 9 in `tests/runtime/home-dir.test.ts` cover full precedence + once-per-process warning + bare-`~/.claude/` non-claim, 7 in `tests/cli/migrate-home.test.ts` cover dry-run, apply, byte-for-byte preservation, idempotent re-run, target-conflict refuse, no-op on fresh install, and partial-migration recovery. New operator guide at `docs/migration/v0.24.0-home-dir.md`. The `resolvePaths` isolation guard from PR #199 is preserved symmetrically against both new and legacy paths; tests still need `homeDir` injection or `HARNESS_ALLOW_REAL_GENERATED_DIR=1` to fall back.
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **`harness approve understanding` resolves Codex sessions cleanly without `--session`** (agent-tasks/f608b4ee, PR #213). Two complementary fixes close the Codex approval-UX gap surfaced during the 2026-05-19 dogfood: (1) the Codex pre-tool-use blocker (`src/cli/pack/hook-codex-pre-tool-use.ts`) now calls `writePendingApproval(generatedDir, sessionId)` on the block path, mirroring the symmetric staging the Claude blocker has carried since task 33abc147, so arg-less `harness approve understanding` after a Codex PreToolUse block resolves via `.pending-approval` the same way it does in a Claude session; (2) session-id resolution in `src/cli/approve/understanding.ts` gains two new tiers: `$CODEX_SESSION_ID` env (peer of `$CLAUDE_SESSION_ID`, symmetric with the Codex hook's own fallback) and a fifth tier that reads the freshest persisted Understanding Report under `<reportsDir>` and pulls its JSON `sessionId` field. That fifth tier covers the post-Understanding-Report-pre-block window an operator hits when the agent has produced a report but no tool call has yet tripped the gate to stage `.pending-approval`: runtime-neutral, no env-var dependency, no log scraping. The no-session-id error text is rewritten: it now names both env vars, points the operator at the freshest report under the actual `<reportsDir>` as the canonical runtime-neutral recovery path, and drops the Claude-only `ls -t ~/.claude/projects/*/[0-9a-f]*.jsonl` advice that misled Codex operators. `sessionSource` discriminates `env-claude` / `env-codex` so the CLI annotation prints exactly which env var won (e.g. `session: <id> (from $CODEX_SESSION_ID)`). 6 new tests cover the $CODEX_SESSION_ID env tier, the Claude-over-Codex env precedence, the tier-5 newest-report fallback (including legacy reports without a sessionId field), tier-4 beating tier-5, and the rewritten error message; 4 new tests in `tests/cli/pack-hook-codex-pre-tool-use.test.ts` cover the staging-on-block / no-staging-on-allow / no-generatedDir / staging-write-throws contract. Note: the deeper `~/.claude/` to `~/.harness/` home-dir migration that prompted this task is tracked as a separate release vehicle (agent-tasks/e65decef, v0.24.0); this PR is the symptom-level fix the operator sees today.
|
|
29
|
+
- **`harness apply --runtime codex --install` merges the generated hook block into `~/.codex/config.toml`** (agent-tasks/6167f326, PR #212). Codex applies previously stopped at writing `harness.generated/codex/config.toml`; the operator then had to copy/paste the harness-managed block into their active Codex config by hand. After PR #211 fixed the hook schema, that manual step also became the only way to actually take the fix live, which surfaced as dogfood friction on 2026-05-19. The installer closes that gap: a marked block (`# Harness Codex hook wiring.` source-prefix line + `# BEGIN harness-managed codex hooks` / `# END harness-managed codex hooks` fence) is replaced in-place, every byte outside the fence is preserved verbatim, and a timestamped backup (`<config>.harness-backup-<ISO8601>`) is written before any change. First install (no prior block) appends with a separating blank line, legacy paste-style blocks (`[[hooks.pre_tool_use]]` + `timeout_ms` + `blocking`) and an existing current managed block both upgrade in-place via `findManagedRange()` which keys off the source-prefix, the BEGIN/END fence, or the generated-banner header. Re-running with unchanged content is a true no-op (`changed: false`, no backup written, exit no-changes). `validateCodexManagedConfig()` runs before any write and refuses to install a payload that still carries legacy fields (`match =`, `timeout_ms =`, `blocking =`, lower-snake hook tables) or a current-shaped hook table missing the nested `hooks = [{ type = "command", command, timeout }]` array, so a generator regression cannot silently break the operator's config. `--install` is rejected without `--runtime codex` and a new `--codex-config <path>` overrides the default `~/.codex/config.toml` for non-default installs. The `init --interactive` wizard's codex wire-now path now uses the installer instead of printing copy-paste instructions; the wizard's recovery hint also updates to the new command. 11 tests in `tests/cli/apply/apply-codex-runtime.test.ts` cover install / legacy-upgrade / current-block-update / idempotency / backup / no-install-without-codex-runtime, plus updated `tests/cli/init-interactive.test.ts` assertions for the wizard's new wiring. **Operator action**: re-run `harness apply --runtime codex --install` once to lift the harness-managed block off the manual copy-paste workflow; subsequent applies of the same manifest are no-ops.
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **Codex hook config generation matches the Codex 0.131.0 schema** (agent-tasks/4b2b43a0, PR #211). `harness apply --runtime codex` previously emitted the legacy flat shape (`[[hooks.pre_tool_use]]` with `name`, `match`, `timeout_ms`, `blocking`, `description`) that Codex 0.131.0 no longer loads. After applying that config into `~/.codex/config.toml` and restarting Codex, gates did not fire: a real `exec_command` reached the shell with no `hook/started` / `hook/completed` evidence in `codex-tui.log`. Verified against the current OpenAI/Codex source (`codex-rs/config/src/hook_config.rs`): hook table keys must be PascalCase event names (`[[hooks.PreToolUse]]`, `[[hooks.UserPromptSubmit]]`, `[[hooks.Stop]]`, `[[hooks.SessionStart]]`, `[[hooks.PostToolUse]]`), the matcher field is `matcher` (not `match`), and each group carries a nested `hooks = [{ type = "command", command = "...", timeout = N }]` array with `timeout` in seconds (upstream `timeout_sec` is serde-renamed to `timeout`). Generator now converts `budget_ms` to seconds via `Math.max(1, Math.ceil(budget_ms / 1000))` (rounds up, never tightens an operator's declared budget) and drops the Harness-internal `name` / `blocking` / `description` fields entirely since Codex has no slot for them. `expandCodexHookMatchPattern()` is preserved unchanged, so the `apply_patch|Bash|shell|exec_command|functions.exec_command` matcher still intercepts unified-exec on `Bash`. Banner comments and `docs/policy-packs/understanding-before-execution.md` updated to describe the new shape. Doctor (`src/cli/doctor/codex.ts`) was already shape-agnostic (validates banner + binary on PATH, not field names) and required no change. Schema acceptance confirmed via `codex --strict-config -c 'hooks.PreToolUse=[{matcher="Bash",hooks=[{type="command",command="/bin/true",timeout=5}]}]' doctor --json` on Codex 0.131.0. **Operator action**: re-run `harness apply --runtime codex` to regenerate `harness.generated/codex/config.toml`, then merge the new stanzas into `~/.codex/config.toml` and restart Codex; the prior generated file produced silent hook drops.
|
|
34
|
+
|
|
10
35
|
## [0.23.2] - 2026-05-18
|
|
11
36
|
|
|
12
37
|
**Headline: policy-gate hint clarification + smoke flake.** Three PRs all merged today. PR #206 + PR #207 close the silent-fail trap on ledger_add hints in policy `ux.run` and `producers[].example`: the prior form named the required content tag but NOT the `sessionId` parameter, so an operator binding `sessionId` to the tag UUID (the natural assumption since the tag literally contains the task / PR number / branch) saw the same opaque rejection repeated. The two PRs sweep both rendering surfaces plus the operator-facing doc-prose. PR #208 bumps a flaky smoke-test wall-clock assertion (4500ms to 7000ms) that under CI load caused `npm test` to occasionally fail and confused downstream `preflight run .` into a false `npm-test: fail` blocker. **Operator action**: re-run `harness apply` (or `harness init --force`) to regenerate `settings.json` with the updated policy hints.
|
package/dist/cli/add/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
|
-
import * as os from "node:os";
|
|
3
2
|
import * as path from "node:path";
|
|
4
3
|
import { parse as parseYaml } from "yaml";
|
|
5
4
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
5
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
6
6
|
import { withFileLock } from "../../io/lock.js";
|
|
7
7
|
import { unifiedDiff } from "../../io/patch.js";
|
|
8
8
|
import { formatValidationErrors, validateBeforeWrite, } from "../../io/validate-before-write.js";
|
|
@@ -16,7 +16,7 @@ const LOCK_BASENAME = ".harness.lock";
|
|
|
16
16
|
function resolveTargetPath(opts) {
|
|
17
17
|
if (opts.configPath)
|
|
18
18
|
return path.resolve(opts.configPath);
|
|
19
|
-
return path.join(opts.homeDir
|
|
19
|
+
return path.join(resolveHomeDir({ ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) }).path, DEFAULT_BASENAME);
|
|
20
20
|
}
|
|
21
21
|
function entryName(action) {
|
|
22
22
|
return action.type === "skill" ? action.entry : action.entry.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/add/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/add/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/adopt/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
|
-
import * as os from "node:os";
|
|
3
2
|
import * as path from "node:path";
|
|
4
3
|
import * as readline from "node:readline/promises";
|
|
5
4
|
import { parse as parseYaml } from "yaml";
|
|
6
5
|
import { atomicWriteFile } from "../../io/atomic-write.js";
|
|
6
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
7
7
|
import { withFileLock } from "../../io/lock.js";
|
|
8
8
|
import { unifiedDiff } from "../../io/patch.js";
|
|
9
9
|
import { formatValidationErrors, validateBeforeWrite, } from "../../io/validate-before-write.js";
|
|
@@ -16,7 +16,7 @@ const LOCK_BASENAME = ".harness.lock";
|
|
|
16
16
|
function resolveManifestPath(opts) {
|
|
17
17
|
if (opts.configPath)
|
|
18
18
|
return path.resolve(opts.configPath);
|
|
19
|
-
return path.join(opts.homeDir
|
|
19
|
+
return path.join(resolveHomeDir({ ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) }).path, DEFAULT_BASENAME);
|
|
20
20
|
}
|
|
21
21
|
async function defaultPrompt(message) {
|
|
22
22
|
const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/adopt/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/adopt/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,16 @@ export interface ApplyOptions {
|
|
|
54
54
|
* future enhancement.
|
|
55
55
|
*/
|
|
56
56
|
runtime?: Runtime;
|
|
57
|
+
/**
|
|
58
|
+
* `--install` with `--runtime codex`: merge the generated Codex hook
|
|
59
|
+
* stanzas into the active Codex config as a marked harness-managed
|
|
60
|
+
* block. The installer preserves every byte outside that block.
|
|
61
|
+
*/
|
|
62
|
+
installCodex?: boolean;
|
|
63
|
+
/** Override the active Codex config path for --runtime codex --install. */
|
|
64
|
+
codexConfigPath?: string;
|
|
65
|
+
/** Test-injectable clock for timestamped Codex config backups. */
|
|
66
|
+
now?: Date;
|
|
57
67
|
/** Test-injectable confirmation prompt; defaults to a stdin readline. */
|
|
58
68
|
prompt?: (message: string) => Promise<string>;
|
|
59
69
|
}
|
|
@@ -67,6 +77,13 @@ export interface FileApplyOutcome {
|
|
|
67
77
|
/** True when `expected !== onDiskCurrent` (whether or not we wrote). */
|
|
68
78
|
changed: boolean;
|
|
69
79
|
}
|
|
80
|
+
export interface CodexConfigInstallOutcome {
|
|
81
|
+
configPath: string;
|
|
82
|
+
changed: boolean;
|
|
83
|
+
written: boolean;
|
|
84
|
+
summary: string;
|
|
85
|
+
backupPath?: string;
|
|
86
|
+
}
|
|
70
87
|
export interface ApplyResult {
|
|
71
88
|
manifestPath: string;
|
|
72
89
|
generatedDir: string;
|
|
@@ -101,6 +118,8 @@ export interface ApplyResult {
|
|
|
101
118
|
* Present when --merge succeeded against an existing target.
|
|
102
119
|
*/
|
|
103
120
|
targetMergeSummary?: string;
|
|
121
|
+
/** Present when --runtime codex --install was requested. */
|
|
122
|
+
codexConfigInstall?: CodexConfigInstallOutcome;
|
|
104
123
|
}
|
|
105
124
|
declare const DRIFT_HINT_MESSAGE = "run \"harness adopt <file>\" to capture changes, or re-run with --overwrite-drift to discard them";
|
|
106
125
|
export declare function apply(opts?: ApplyOptions): Promise<ApplyResult>;
|
package/dist/cli/apply/apply.js
CHANGED
|
@@ -42,19 +42,28 @@ import { parseManifest } from "../../schema/index.js";
|
|
|
42
42
|
import { EX_NOINPUT, HarnessExitError } from "../exit-codes.js";
|
|
43
43
|
import { loadManifest } from "../loader.js";
|
|
44
44
|
import { GENERATED_DIRNAME, resolveGeneratedDir } from "../../io/generated-dir.js";
|
|
45
|
-
import {
|
|
45
|
+
import { resolveHomeDir } from "../../runtime/home-dir.js";
|
|
46
|
+
import { CODEX_GENERATED_HEADER_LINE, generateCodexConfig, } from "./generate-codex-config.js";
|
|
46
47
|
import { generateMemoryIndex } from "./generate-memory-index.js";
|
|
47
48
|
import { generateSettingsWithWarnings } from "./generate-settings.js";
|
|
49
|
+
import { planCodexConfigInstall, writeCodexConfigInstall, } from "./install-codex-config.js";
|
|
48
50
|
export { GENERATED_DIRNAME };
|
|
49
51
|
export const SETTINGS_BASENAME = "settings.json";
|
|
50
52
|
export const MEMORY_BASENAME = "MEMORY.md";
|
|
51
53
|
export const MANIFEST_BASENAME = "harness.yaml";
|
|
52
54
|
export const CODEX_CONFIG_BASENAME = "codex/config.toml";
|
|
53
55
|
const DRIFT_HINT_MESSAGE = 'run "harness adopt <file>" to capture changes, or re-run with --overwrite-drift to discard them';
|
|
56
|
+
// Pinned to the same literal the Codex generator emits as line 1.
|
|
57
|
+
// Single source of truth lives in generate-codex-config.ts so a future
|
|
58
|
+
// banner re-word can't silently disable last-apply baseline recovery.
|
|
59
|
+
const CODEX_GENERATED_HEADER = CODEX_GENERATED_HEADER_LINE;
|
|
54
60
|
function resolveManifestPath(opts) {
|
|
55
61
|
if (opts.configPath)
|
|
56
62
|
return path.resolve(opts.configPath);
|
|
57
|
-
|
|
63
|
+
const home = resolveHomeDir({
|
|
64
|
+
...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}),
|
|
65
|
+
}).path;
|
|
66
|
+
return path.join(home, MANIFEST_BASENAME);
|
|
58
67
|
}
|
|
59
68
|
function resolveTargetPath(target, homeDir) {
|
|
60
69
|
let p = target;
|
|
@@ -93,6 +102,17 @@ function readTargetJson(targetPath) {
|
|
|
93
102
|
function serializeJson(obj) {
|
|
94
103
|
return `${JSON.stringify(obj, null, 2)}\n`;
|
|
95
104
|
}
|
|
105
|
+
function codexInstallOutcome(result) {
|
|
106
|
+
return {
|
|
107
|
+
configPath: result.configPath,
|
|
108
|
+
changed: result.changed,
|
|
109
|
+
written: "written" in result ? result.written : false,
|
|
110
|
+
summary: result.summary,
|
|
111
|
+
...("backupPath" in result && result.backupPath !== undefined
|
|
112
|
+
? { backupPath: result.backupPath }
|
|
113
|
+
: {}),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
96
116
|
// Prompts must survive `harness apply | tee log` (the user still needs to
|
|
97
117
|
// see the question even when stdout is piped), so we write to stderr and
|
|
98
118
|
// read from stdin. Don't "fix" this back to stdout.
|
|
@@ -209,7 +229,37 @@ function buildPrevManifestForHints(record) {
|
|
|
209
229
|
return null;
|
|
210
230
|
}
|
|
211
231
|
}
|
|
232
|
+
function recoverMissingLastApplyContent(basename, onDisk) {
|
|
233
|
+
// Runtime-specific applies share one harness.generated/.last-apply file.
|
|
234
|
+
// A default claude-code apply from older versions can leave an existing
|
|
235
|
+
// harness-generated Codex artefact on disk while dropping its last-apply
|
|
236
|
+
// entry. Treat only the Codex generator's own DO-NOT-EDIT artefact as a
|
|
237
|
+
// recoverable baseline; arbitrary files without a last-apply record still
|
|
238
|
+
// refuse as operator-owned drift.
|
|
239
|
+
if (basename !== CODEX_CONFIG_BASENAME || onDisk === null)
|
|
240
|
+
return null;
|
|
241
|
+
return onDisk.startsWith(CODEX_GENERATED_HEADER) ? onDisk : null;
|
|
242
|
+
}
|
|
243
|
+
function buildMergedLastApplyRecord(expected, previous, manifest, memoryDirSnapshots) {
|
|
244
|
+
const next = buildLastApply(Object.fromEntries(expected.map((f) => [f.basename, f.content])));
|
|
245
|
+
if (previous !== null) {
|
|
246
|
+
for (const [relPath, entry] of Object.entries(previous.files)) {
|
|
247
|
+
if (next.files[relPath] === undefined)
|
|
248
|
+
next.files[relPath] = entry;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const manifestSnapshotJson = JSON.stringify(manifest);
|
|
252
|
+
next.manifest = {
|
|
253
|
+
sha256: sha256Hex(manifestSnapshotJson),
|
|
254
|
+
content: manifestSnapshotJson,
|
|
255
|
+
};
|
|
256
|
+
if (Object.keys(memoryDirSnapshots).length > 0) {
|
|
257
|
+
next.memoryDirs = memoryDirSnapshots;
|
|
258
|
+
}
|
|
259
|
+
return next;
|
|
260
|
+
}
|
|
212
261
|
export async function apply(opts = {}) {
|
|
262
|
+
const runtime = opts.runtime ?? DEFAULT_RUNTIME;
|
|
213
263
|
const manifestPath = resolveManifestPath(opts);
|
|
214
264
|
if (!fs.existsSync(manifestPath)) {
|
|
215
265
|
throw new HarnessExitError(`harness manifest not found at ${manifestPath}; run \`harness init\` first`, EX_NOINPUT);
|
|
@@ -226,6 +276,9 @@ export async function apply(opts = {}) {
|
|
|
226
276
|
const { manifest } = loadManifest(loaderOpts);
|
|
227
277
|
const { files: expected, warnings } = buildExpectedFiles(manifest, opts, manifestPath);
|
|
228
278
|
const lastApply = readLastApply(generatedDir);
|
|
279
|
+
if (opts.installCodex && runtime !== "codex") {
|
|
280
|
+
throw new HarnessExitError("--install requires --runtime codex", EX_NOINPUT);
|
|
281
|
+
}
|
|
229
282
|
// Asset-content drift detection (Phase 3 #6): if a previous apply wrote
|
|
230
283
|
// harness.lock, re-hash every locked asset / memory-dir Merkle and report
|
|
231
284
|
// mismatches. Warn-only: apply still proceeds and the lock is rewritten
|
|
@@ -338,13 +391,39 @@ export async function apply(opts = {}) {
|
|
|
338
391
|
targetChanged = currentTargetContent !== targetContent;
|
|
339
392
|
}
|
|
340
393
|
}
|
|
394
|
+
let codexInstallPlan;
|
|
395
|
+
let codexInstallChanged = false;
|
|
396
|
+
if (opts.installCodex) {
|
|
397
|
+
const codexExpected = expected.find((f) => f.basename === CODEX_CONFIG_BASENAME);
|
|
398
|
+
if (!codexExpected) {
|
|
399
|
+
throw new HarnessExitError("internal: codex/config.toml missing from expected files", EX_NOINPUT);
|
|
400
|
+
}
|
|
401
|
+
codexInstallPlan = planCodexConfigInstall({
|
|
402
|
+
...(opts.codexConfigPath !== undefined
|
|
403
|
+
? { configPath: resolveTargetPath(opts.codexConfigPath) }
|
|
404
|
+
: {}),
|
|
405
|
+
...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}),
|
|
406
|
+
generatedPath: path.join(generatedDir, CODEX_CONFIG_BASENAME),
|
|
407
|
+
generatedContent: codexExpected.content,
|
|
408
|
+
...(opts.now !== undefined ? { now: opts.now } : {}),
|
|
409
|
+
});
|
|
410
|
+
codexInstallChanged = codexInstallPlan.changed;
|
|
411
|
+
}
|
|
341
412
|
const fileOutcomes = [];
|
|
342
413
|
let anyDriftRefuse = false;
|
|
343
414
|
let anyChanged = false;
|
|
415
|
+
let recoveredMissingLastApply = false;
|
|
344
416
|
for (const f of expected) {
|
|
345
417
|
const target = path.join(generatedDir, f.basename);
|
|
346
418
|
const onDisk = readOnDisk(target);
|
|
347
|
-
|
|
419
|
+
let lastAppliedContent = lastApply?.files[f.basename]?.content ?? null;
|
|
420
|
+
if (lastAppliedContent === null) {
|
|
421
|
+
const recovered = recoverMissingLastApplyContent(f.basename, onDisk);
|
|
422
|
+
if (recovered !== null) {
|
|
423
|
+
lastAppliedContent = recovered;
|
|
424
|
+
recoveredMissingLastApply = true;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
348
427
|
const verdict = compare({
|
|
349
428
|
manifestExpected: f.content,
|
|
350
429
|
lastApplied: lastAppliedContent,
|
|
@@ -371,7 +450,7 @@ export async function apply(opts = {}) {
|
|
|
371
450
|
fileOutcomes.push(outcome);
|
|
372
451
|
}
|
|
373
452
|
if (anyDriftRefuse && !opts.overwriteDrift) {
|
|
374
|
-
|
|
453
|
+
const result = {
|
|
375
454
|
manifestPath,
|
|
376
455
|
generatedDir,
|
|
377
456
|
files: fileOutcomes,
|
|
@@ -383,6 +462,9 @@ export async function apply(opts = {}) {
|
|
|
383
462
|
dryRun: opts.dryRun ?? false,
|
|
384
463
|
lockPath,
|
|
385
464
|
};
|
|
465
|
+
if (codexInstallPlan)
|
|
466
|
+
result.codexConfigInstall = codexInstallOutcome(codexInstallPlan);
|
|
467
|
+
return result;
|
|
386
468
|
}
|
|
387
469
|
if (anyDriftRefuse && opts.overwriteDrift) {
|
|
388
470
|
const promptFn = opts.prompt ?? readlinePrompt;
|
|
@@ -390,7 +472,7 @@ export async function apply(opts = {}) {
|
|
|
390
472
|
// Case-insensitive comparison: a user typing `YES` or `Yes` is clearly
|
|
391
473
|
// confirming. We still reject `y` per spec ("literal yes, not y").
|
|
392
474
|
if (answer.trim().toLowerCase() !== "yes") {
|
|
393
|
-
|
|
475
|
+
const result = {
|
|
394
476
|
manifestPath,
|
|
395
477
|
generatedDir,
|
|
396
478
|
files: fileOutcomes,
|
|
@@ -402,6 +484,9 @@ export async function apply(opts = {}) {
|
|
|
402
484
|
dryRun: opts.dryRun ?? false,
|
|
403
485
|
lockPath,
|
|
404
486
|
};
|
|
487
|
+
if (codexInstallPlan)
|
|
488
|
+
result.codexConfigInstall = codexInstallOutcome(codexInstallPlan);
|
|
489
|
+
return result;
|
|
405
490
|
}
|
|
406
491
|
// Confirmed: continue to the write phase. The per-file `verdict` field
|
|
407
492
|
// remains `drift-refuse` so callers can still see which files would
|
|
@@ -418,7 +503,7 @@ export async function apply(opts = {}) {
|
|
|
418
503
|
files: fileOutcomes,
|
|
419
504
|
warnings,
|
|
420
505
|
restartHints,
|
|
421
|
-
outcome: anyChanged || targetChanged ? "would-apply" : "no-changes",
|
|
506
|
+
outcome: anyChanged || targetChanged || codexInstallChanged ? "would-apply" : "no-changes",
|
|
422
507
|
lockDrift,
|
|
423
508
|
written: false,
|
|
424
509
|
dryRun: true,
|
|
@@ -430,9 +515,11 @@ export async function apply(opts = {}) {
|
|
|
430
515
|
if (targetMergeSummary !== undefined)
|
|
431
516
|
result.targetMergeSummary = targetMergeSummary;
|
|
432
517
|
}
|
|
518
|
+
if (codexInstallPlan)
|
|
519
|
+
result.codexConfigInstall = codexInstallOutcome(codexInstallPlan);
|
|
433
520
|
return result;
|
|
434
521
|
}
|
|
435
|
-
if (!anyChanged && !targetChanged && lastApply !== null) {
|
|
522
|
+
if (!anyChanged && !targetChanged && !codexInstallChanged && lastApply !== null) {
|
|
436
523
|
// Idempotent no-op for generated files. If asset-content drift was
|
|
437
524
|
// detected against harness.lock, rewrite the lock now with current
|
|
438
525
|
// SHAs so the drift is not "sticky": the user sees the drift line
|
|
@@ -447,6 +534,13 @@ export async function apply(opts = {}) {
|
|
|
447
534
|
const refreshedWithTarget = appendTargetEntry(refreshed, targetPath, targetContent, previousLock);
|
|
448
535
|
writeLock(lockPath, refreshedWithTarget);
|
|
449
536
|
}
|
|
537
|
+
if (recoveredMissingLastApply) {
|
|
538
|
+
const refreshedMemoryDirs = collectMemoryDirSnapshots(buildLockEntries(manifest, {
|
|
539
|
+
...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}),
|
|
540
|
+
...(opts.project !== undefined ? { projectName: opts.project } : {}),
|
|
541
|
+
}));
|
|
542
|
+
writeLastApply(generatedDir, buildMergedLastApplyRecord(expected, lastApply, manifest, refreshedMemoryDirs));
|
|
543
|
+
}
|
|
450
544
|
const result = {
|
|
451
545
|
manifestPath,
|
|
452
546
|
generatedDir,
|
|
@@ -463,6 +557,8 @@ export async function apply(opts = {}) {
|
|
|
463
557
|
result.targetPath = targetPath;
|
|
464
558
|
result.targetWritten = false;
|
|
465
559
|
}
|
|
560
|
+
if (codexInstallPlan)
|
|
561
|
+
result.codexConfigInstall = codexInstallOutcome(codexInstallPlan);
|
|
466
562
|
return result;
|
|
467
563
|
}
|
|
468
564
|
// Only write generated files if anything in harness.generated/ actually
|
|
@@ -498,19 +594,19 @@ export async function apply(opts = {}) {
|
|
|
498
594
|
atomicWriteFile(targetPath, targetContent);
|
|
499
595
|
targetWritten = true;
|
|
500
596
|
}
|
|
597
|
+
let codexInstallResult;
|
|
598
|
+
if (codexInstallPlan && codexInstallPlan.changed) {
|
|
599
|
+
codexInstallResult = writeCodexConfigInstall(codexInstallPlan, {
|
|
600
|
+
...(opts.now !== undefined ? { now: opts.now } : {}),
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
else if (codexInstallPlan) {
|
|
604
|
+
codexInstallResult = { ...codexInstallPlan, written: false };
|
|
605
|
+
}
|
|
501
606
|
const lockEntriesWithTarget = appendTargetEntry(lockEntries, targetPath, targetContent, previousLock);
|
|
502
|
-
if (anyChanged) {
|
|
503
|
-
const newRecord = buildLastApply(Object.fromEntries(expected.map((f) => [f.basename, f.content])));
|
|
504
|
-
const manifestSnapshotJson = JSON.stringify(manifest);
|
|
505
|
-
newRecord.manifest = {
|
|
506
|
-
sha256: sha256Hex(manifestSnapshotJson),
|
|
507
|
-
content: manifestSnapshotJson,
|
|
508
|
-
};
|
|
607
|
+
if (anyChanged || recoveredMissingLastApply) {
|
|
509
608
|
const memoryDirSnapshots = collectMemoryDirSnapshots(lockEntries);
|
|
510
|
-
|
|
511
|
-
newRecord.memoryDirs = memoryDirSnapshots;
|
|
512
|
-
}
|
|
513
|
-
writeLastApply(generatedDir, newRecord);
|
|
609
|
+
writeLastApply(generatedDir, buildMergedLastApplyRecord(expected, lastApply, manifest, memoryDirSnapshots));
|
|
514
610
|
}
|
|
515
611
|
writeLock(lockPath, lockEntriesWithTarget);
|
|
516
612
|
const result = {
|
|
@@ -521,10 +617,12 @@ export async function apply(opts = {}) {
|
|
|
521
617
|
restartHints,
|
|
522
618
|
outcome: "applied",
|
|
523
619
|
lockDrift,
|
|
524
|
-
written: anyChanged,
|
|
620
|
+
written: anyChanged || codexInstallResult?.written === true,
|
|
525
621
|
dryRun: false,
|
|
526
622
|
lockPath,
|
|
527
623
|
};
|
|
624
|
+
if (codexInstallResult)
|
|
625
|
+
result.codexConfigInstall = codexInstallOutcome(codexInstallResult);
|
|
528
626
|
if (targetPath) {
|
|
529
627
|
result.targetPath = targetPath;
|
|
530
628
|
result.targetWritten = targetWritten;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/apply/apply.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/apply/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,11 @@ export interface CodexConfigResult {
|
|
|
3
3
|
content: string;
|
|
4
4
|
warnings: string[];
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* First line of the generated Codex `config.toml`. Exported so callers
|
|
8
|
+
* that need to detect a harness-generated artifact (e.g. apply.ts's
|
|
9
|
+
* last-apply baseline recovery) can pin against the same literal as
|
|
10
|
+
* the emitter, instead of duplicating the string.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CODEX_GENERATED_HEADER_LINE = "# Generated by harness apply --runtime codex.";
|
|
6
13
|
export declare function generateCodexConfig(manifest: Manifest): CodexConfigResult;
|