31 Commits

Author SHA1 Message Date
renovate[bot] 10ac80e6f2 fix(deps): update module golang.org/x/text to v0.42.0 (#1111)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/text](https://pkg.go.dev/golang.org/x/text) | [`v0.41.0`
→
`v0.42.0`](https://cs.opensource.google/go/x/text/+/refs/tags/v0.41.0...refs/tags/v0.42.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftext/v0.42.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftext/v0.41.0/v0.42.0?slim=true)
|

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNjkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-08 20:06:23 +00:00
renovate[bot] 3cb39ab1b1 chore(deps): update go toolchain directive to v1.27.1 (#1094)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | patch |
`1.27.0` → `1.27.1` |

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-01 20:18:55 +00:00
renovate[bot] d8accec7f9 chore(deps): update go toolchain directive to v1.27.0 (#1074)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | minor |
`1.26.6` → `1.27.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/955) for more information.

---

### Release Notes

<details>
<summary>golang/go (go)</summary>

###
[`v1.27.0`](https://redirect.github.com/golang/go/compare/go1.26.7...go1.27rc3)

###
[`v1.26.7`](https://redirect.github.com/golang/go/compare/go1.26.6...go1.26.7)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMy4yIiwidXBkYXRlZEluVmVyIjoiNDQuMzMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bo <boden.fuller@gmail.com>
2026-08-23 00:45:55 +00:00
renovate[bot] 5c86802c52 chore(deps): update go toolchain directive to v1.26.6 (#1059)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | patch |
`1.26.5` → `1.26.6` |

---

### Release Notes

<details>
<summary>golang/go (go)</summary>

###
[`v1.26.6`](https://redirect.github.com/golang/go/compare/go1.26.5...go1.26.6)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-13 19:43:45 +00:00
renovate[bot] e24009ec93 fix(deps): update module golang.org/x/text to v0.41.0 (#1058)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/text](https://pkg.go.dev/golang.org/x/text) | [`v0.40.0`
→
`v0.41.0`](https://cs.opensource.google/go/x/text/+/refs/tags/v0.40.0...refs/tags/v0.41.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftext/v0.41.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftext/v0.40.0/v0.41.0?slim=true)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/955) for more information.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-11 22:20:24 +00:00
renovate[bot] fa52533db0 fix(deps): update module github.com/santhosh-tekuri/jsonschema/v6 to v6.0.3 (#1048)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/santhosh-tekuri/jsonschema/v6](https://redirect.github.com/santhosh-tekuri/jsonschema)
| `v6.0.2` → `v6.0.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fsanthosh-tekuri%2fjsonschema%2fv6/v6.0.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fsanthosh-tekuri%2fjsonschema%2fv6/v6.0.2/v6.0.3?slim=true)
|

---

### Release Notes

<details>
<summary>santhosh-tekuri/jsonschema
(github.com/santhosh-tekuri/jsonschema/v6)</summary>

###
[`v6.0.3`](https://redirect.github.com/santhosh-tekuri/jsonschema/compare/v6.0.2...v6.0.3)

[Compare
Source](https://redirect.github.com/santhosh-tekuri/jsonschema/compare/v6.0.2...v6.0.3)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/boshu2/agentops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-06 15:47:05 +00:00
Bo 83e1dd0cb5 feat(gc): pre-seed Codex trust for materialized Gas City homes (#1031)
## Defect

Gas City materializes Codex session homes with project-local hooks. The
first
Codex process in an untrusted home can stop at the interactive
workspace/hook
trust dialog, leaving the agent pane alive but unable to take dispatched
work.

Codex persists two independent decisions in `$CODEX_HOME/config.toml`:

1. workspace trust under `[projects."<dir>"]`
2. one content hash per hook under `[hooks.state."<hook-key>"]`

Trusting a parent directory does not trust a session home, and the hook
digest
input is intentionally owned by Codex rather than reimplemented here.

## Change

`ao gc prepare` now discovers the Gas City directories that exist when
it runs
(city and rig roots, materialized agent homes, and materialized rig
worktrees)
and pre-seeds both trust layers for those exact targets.

- Hook identities and current hashes come from Codex's `hooks/list`
app-server
  method.
- Returned hooks are restricted to the discovered targets; user- or
  plugin-level hooks are never granted trust by this command.
- Explicit operator decisions are preserved. An untrusted workspace,
modified
hook, disabled hook, unusable hash, malformed response, or malformed
TOML
  fails loudly rather than being rewritten or accepted as complete.
- The merged TOML is validated in memory and installed with the CLI's
durable
  atomic writer while preserving existing permissions.
- `ao gc check` verifies the same values from local files only. It
starts no
  Codex subprocess and writes nothing.

## Deliberate boundary

Discovery is filesystem-based. A home Gas City creates *after* `prepare`
is not
pre-seeded by an earlier invocation. `prepare` compares configured agent
identities with materialized homes and warns about missing homes,
including the
real dotted-name shape (`gastown.mayor` → `.gc/agents/mayor`). The
operational
rule is documented explicitly:

```text
prepare → start the city → prepare again → dispatch
```

This PR does not claim that one pre-start invocation covers future homes
or
that every future pane can never encounter a prompt.

## Evidence

Automated tests cover:

- value-based workspace and hook trust, including `enabled = false`
- malformed/unexpected `hooks/list` responses
- regular local `hooks.json` files that derive zero hook identities
(`{}`,
`{"hooks":null}`, and `{"hooks":{}}`), keeping `prepare` and `check`
aligned
- real TOML spellings, invalid merges, idempotence, and mode
preservation
- target filtering and derived hook-key fidelity
- subprocess-free `check`
- missing-home identity reporting for nested and dotted qualified names
- operation with no Codex binary
- package-wide HOME isolation

An isolated real-Codex smoke on a disposable Gas City home established
the
behavioral differential: with the home's trust entries removed, Codex
rendered
the trust dialog; after seeding the same home, it reached the composer
without
the prompt. This proves the existing-home mechanism, not future-home
timing.

Final recovery checks on commit
`a4b52b2354b9f96e5e10e07b2916339c87190bfc`:

```text
go test -count=1 ./internal/gcmaintainer
ok github.com/boshu2/agentops/cli/internal/gcmaintainer 11.943s

go test -race -shuffle=on -count=2 ./internal/gcmaintainer
PASS

go test -count=1 ./internal/testsupport
PASS

go vet ./internal/gcmaintainer ./internal/testsupport
PASS

scripts/check-test-home-isolation.sh
PASS

scripts/check-test-isolation.sh
PASS (raw os.Setenv remains at the 10/10 baseline)

GOCACHE=/private/tmp/agentops-gocache \
GOLANGCI_LINT_CACHE=/private/tmp/agentops-golangci-cache \
WORKTREE_DISPOSITION_CI_SKIP=1 \
./bin/ao gate check --full --workflow-coverage --require-workflow-parity
PASS (68/68 full/head checks)

GOCACHE=/private/tmp/agentops-gocache bash scripts/regen-all.sh --check
PASS

git diff --check
PASS
```

Recovery fixed the prior CI findings with `storage.AtomicWriteFile`,
package-wide
HOME isolation, and `json.Encoder.Encode`. The first repaired CI replay
exposed
one further ratchet: raw `os.Setenv` calls in the new `_test.go`
TestMain raised
the repository baseline from 10 to 12. The final commit moves that
one-time
setup into the existing shared test-support boundary, keeps environment
changes
outside `m.Run`, and teaches the HOME-isolation gate only the exact safe
helper
shape. CI will rerun on the exact pushed commit.
2026-08-03 09:51:53 -04:00
Bo 64e93c0428 refactor(cli): complete the post-Cathedral-Cut Go CLI cleanup (#919)
Completes the Go CLI migration: one composition model, no tombstones, no
dead packages, hermetic tests, and a cross-language verdict contract
corpus. Net −88k lines.

## What
- **Tombstones + prune deleted**: the 21 registered 'Removed in the
Cathedral Cut' stubs, `zzz_default_spine.go`'s runtime prune, and the
~30 registered-but-pruned legacy command families are gone. The
registered tree IS the production tree; retired verbs fail with exit 1 +
a data-driven replacement hint pointing at docs/MIGRATION.md (now
covering nested verbs). Non-runnable parents reject unknown subcommands
instead of printing help with exit 0.
- **~35 unreachable packages deleted** (cliapp, canon, pawl-era verdict
parser, pool, harvest, knowledge, wiki engine, vibecheck, cli/embedded,
…) after import analysis + script/CI consumer verification. Retained
with named consumers: archcheck (arch gate scripts), eval island (rubric
schema drift guards), drwitness/drrebuild (witness-crosscheck).
- **Composition decision recorded**: single cmd/ao root +
internal/commands/<family> modules + clicontract; the never-adopted
cliapp.BuildRoot is removed. New overview: docs/architecture/go-cli.md
(repairs two broken links).
- **Hermetic tests**: flag_matrix_test.go builds the exec'd binary from
package source — the stale cli/bin/ao failure class is closed;
TestHermeticBinaryMatchesSourceSurface pins source↔binary
correspondence.
- **Verdict contract consolidated**: verification extracted from
status.go into cli/internal/verdictcheck; 19-case golden corpus
(tests/fixtures/verdict-contract) runs through Go + Python + JSON schema
via blocking gate `contract.verdict-corpus`. One divergence closed
(empty-string context ids now rejected by all three).
- **Fossil guard chains retired**: embedded-sync (mirror had zero
importers), retired-family compat baselines, dead
go_cli_compatibility.bats, stale gate globs/grandfather entries.

## Evidence
- Full-tier deterministic gate: **66/66 PASS** on the rebased tip (fresh
source-built binary)
- cli suite 2,795 tests green; race suite green on touched packages; vet
+ pinned golangci-lint clean
- Cathedral Cut conformance PASS; CLI reference/surface projections
regenerated and checked
- Independent cross-family validation (fresh Codex context, frozen SHA):
5/6 claims CONFIRMED; 6th NOT_PROVEN only due to sandbox networking (its
cached rerun of the same suite passed)
- Test-count decrease is deliberate and carried by a Test-Removal-Reason
trailer
2026-07-18 16:55:24 -04:00
Bo fb8de61c03 feat(doctor): workspace subsystem — .agents/ hygiene detectors, fixers, retention convention (#918)
## What

New `workspace` subsystem for `ao doctor`: six `fm-ws-*` detectors +
three fixers that keep a repo's `.agents/` runtime workspace clean, plus
the retention convention doc (docs/agents-dir-hygiene.md).

- **Auto-fixable**: `fm-ws-stale-queue-dirs` (TTL GC of
`.stale-*`/`-retryN` debris), `fm-ws-empty-dirs`, `fm-ws-naming-drift`
(merges alias spellings into canonical dirs, collision-safe via
Skipped).
- **Report-only**: `fm-ws-dual-store`, `fm-ws-nested-tree`,
`fm-ws-oversize` — human calls by design.
- All mutation flows through one shared dir-rename chokepoint adapter
(`workspaceDirRename`): per-path locks, scope + op preconditions,
journaled receipts, undo. **No delete op exists** — removal = atomic
Rename into the run's quarantine.
- Capabilities: `.agents` added to write scopes; `workspace` subsystem
registered.

## Verification

- 186 package tests (incl. shuffle), golangci clean, bead-per-commit
(`age-agents-hygiene-doctor-fyjdk`).
- **Dogfooded on a 211MB copy of the real tree**: 54 fix actions, 28
dirs quarantined, undo restored 54/54 byte-identical; then run live
(142→114 top-level dirs, fully reversible, receipts kept).
- **Cross-family review (Codex), two adversarial rounds, 15 findings,
all resolved or dispositioned**: R1's 8 (symlink-root escape,
journal-undo blindness, walk-errors-as-empty, P4 off-contract, etc.) all
fixed; R2's new items fixed (symlinked canonical dest,
Lstat-error≠absent, kernel-atomic no-clobber file moves via link+remove,
env-cap overflow, docs overclaim). One pre-existing finding in untouched
code filed as bead `age-knowledge-symlink-root-inbpg`.

## Residual risk (disclosed by design)

- TOCTOU vs **external** writers (in-process advisory locks): windows
exist; bounded — content is moved to quarantine, journaled,
undo-restorable, never destroyed. Full closure needs FS transactions;
out of scope.
- Execute-before-journal ordering matches the existing `Mutate`
chokepoint (house parity); a crash in that window requires manual
recovery from quarantine — documented in the doc page.
- Dir renames carry no byte backup: the renamed tree IS the copy (undo
replays the rename).
2026-07-18 16:48:35 -04:00
dependabot[bot] e3bcd4f573 deps(go): bump golang.org/x/text from 0.38.0 to 0.40.0 in /cli in the go-minor-patch group (#904)
Bumps the go-minor-patch group in /cli with 1 update:
[golang.org/x/text](https://github.com/golang/text).

Updates `golang.org/x/text` from 0.38.0 to 0.40.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/724af9c35838492dcaacc1ac51a8a0187c994c54"><code>724af9c</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/text/commit/bf5b9d658a03d36bd3459b3babdb23a9f56038cb"><code>bf5b9d6</code></a>
internal/export/idna: always treat Punycode encoding pure ASCII as an
error</li>
<li><a
href="https://github.com/golang/text/commit/b326f3d3c814ab79b3c516f4ac03c2314d8df65f"><code>b326f3d</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/text/commit/5ae8e578e495731553eddba11b2d0e86c91a00ce"><code>5ae8e57</code></a>
unicode/norm: avoid infinite loop on invalid input</li>
<li><a
href="https://github.com/golang/text/commit/0dc94a239c8bc3b7ef3aa0d059e54af960f459f4"><code>0dc94a2</code></a>
all: fix some comments</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.38.0...v0.40.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/text&package-manager=go_modules&previous-version=0.38.0&new-version=0.40.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Test <test@test.com>
2026-07-16 10:33:04 -04:00
boshu f57b1df833 fix(deps): bump cli/go.mod toolchain go1.26.3 -> go1.26.5 to clear GO-2026-4970
GO-2026-4970 is an os.Root symlink-escape vuln; os.Root is this repo's
containment primitive. Bump the pinned toolchain to the patched release
and re-verify build + tests green (11971 passed, 109 packages).

Bead: age-toolchain-cve-2026-4970-9z12

Claude-Session: https://claude.ai/code/session_01BkgdP88SiccCSyYdi8GHNa
2026-07-09 22:26:08 -04:00
dependabot[bot] e5644db174 deps(go): bump golang.org/x/text from 0.37.0 to 0.38.0 in /cli in the go-minor-patch group across 1 directory (#859)
Bumps the go-minor-patch group with 1 update in the /cli directory:
[golang.org/x/text](https://github.com/golang/text).

Updates `golang.org/x/text` from 0.37.0 to 0.38.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/f4bb6328041b090f85b93014bd369edfcd24bdef"><code>f4bb632</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.37.0...v0.38.0">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-25 09:21:10 -04:00
Boden Fuller 225e6203e0 feat(codex): enforce task-packet and run-receipt JSON Schemas at runtime (ag-p273x.3)
Packet loading now validates raw packet JSON against the full
codex-task-packet schema (additionalProperties, auth constants
forbid_api_key/required_mode/login_status_must_contain, reject_env
minItems, role/sandbox/stdin/capture-mode/resume enums) before any
unmarshal-based checks, via santhosh-tekuri/jsonschema/v6 against
schemas embedded in the binary (cli/embedded/schemas/, parity-tested
byte-identical with schemas/). A new Go cross-check requires
dispatch.command to equal execution.argv. Receipts are validated
against the run-receipt schema before persisting; violations surface
as failed receipt validation. changed_files now always marshals as an
array (nil slice produced JSON null, violating the receipt schema).
Negative tests cover packets the old partial validation accepted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 15:35:57 -04:00
dependabot[bot] d242889478 deps(go): Bump golang.org/x/sys from 0.44.0 to 0.45.0 in /cli in the go-minor-patch group (#545)
Bumps the go-minor-patch group in /cli with 1 update:
[golang.org/x/sys](https://github.com/golang/sys).

Updates `golang.org/x/sys` from 0.44.0 to 0.45.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sys/commit/397d5f80920585bc27433d878aba498d062f81e1"><code>397d5f8</code></a>
unix: update to Linux kernel 7.0</li>
<li><a
href="https://github.com/golang/sys/commit/0a387f7a07d7a0e9811f00603c10b4e5a94ab79c"><code>0a387f7</code></a>
cpu: detect zbc extension on riscv64</li>
<li><a
href="https://github.com/golang/sys/commit/758f71cb839d131daf0ba4befa6a2c6ceb21a649"><code>758f71c</code></a>
cpu: add LLACQ_SCREL, SCQ, DBAR_HINTS detection for loong64</li>
<li><a
href="https://github.com/golang/sys/commit/99666ae32e07f6403182a79cb5df0c417cbbf25f"><code>99666ae</code></a>
unix: merge Linux readv/writev implementation with Darwin/OpenBSD</li>
<li><a
href="https://github.com/golang/sys/commit/e4444cbaaaf61cecff8e635874066fcd5c841575"><code>e4444cb</code></a>
windows: add NtSetEaFile, NtQueryEaFile and NtQueryInformationFile</li>
<li><a
href="https://github.com/golang/sys/commit/04396e85d470b7f990a9a1df5c1a44dc8e30c292"><code>04396e8</code></a>
unix: add Readv, Writev, Preadv, Pwritev for OpenBSD</li>
<li>See full diff in <a
href="https://github.com/golang/sys/compare/v0.44.0...v0.45.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/sys&package-manager=go_modules&previous-version=0.44.0&new-version=0.45.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Bo <boshu2@users.noreply.github.com>
2026-05-25 16:56:28 -04:00
dependabot[bot] dcdb016b14 deps(go): bump the go-minor-patch group in /cli with 2 updates (#268)
Bumps the go-minor-patch group in /cli with 2 updates: [golang.org/x/sys](https://github.com/golang/sys) and [golang.org/x/text](https://github.com/golang/text).


Updates `golang.org/x/sys` from 0.43.0 to 0.44.0
- [Commits](https://github.com/golang/sys/compare/v0.43.0...v0.44.0)

Updates `golang.org/x/text` from 0.36.0 to 0.37.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-version: 0.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-minor-patch
- dependency-name: golang.org/x/text
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 00:19:54 -04:00
Boden Fuller 81c2f3eca9 chore: sharpen go toolchain and hook skills 2026-05-09 22:42:27 -04:00
Boden Fuller b27e527f1c feat(cli): add ao session spawn command for template-driven session launch
Reads a TOML session template, expands variables (date, hostname,
session_name), runs init steps sequentially, and creates a tmux session
with configured panes. Supports --dry-run and --no-tmux modes.

Adds github.com/BurntSushi/toml dependency for template parsing.
Regenerates CLI docs for cobra conformance.

Phase 1 of soc-y8b.7 (session-template launcher).
2026-05-05 18:03:10 -04:00
dependabot[bot] da52a7d3b3 deps(go): bump pgregory.net/rapid in /cli in the go-minor-patch group
Bumps the go-minor-patch group in /cli with 1 update: [pgregory.net/rapid](https://github.com/flyingmutant/rapid).


Updates `pgregory.net/rapid` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/flyingmutant/rapid/releases)
- [Commits](https://github.com/flyingmutant/rapid/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: pgregory.net/rapid
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-04 12:18:43 +00:00
Boden Fuller 8cdfa85cda feat(eval): Day-2 substrate package — atomic writer, gates, snapshots
Wave 1 of the Day-2 deliverable per ~/.agents/evals/SCHEMA.md §9 row 2:

- evalsubstrate package separate from legacy cli/internal/eval (deterministic
  RunRecord) — distinct concept, no cross-pollination.
- §7 canonicalization: BOM strip, zero-width drop, NFC, YAML/JSON/MD
  per-format rules. Mac LF and bushido CRLF produce identical content_hashes.
- §4 atomic-write contract: temp + fsync(temp) + rename + fsync(parent_dir).
- Run lifecycle: pending->running->complete|failed|aborted|retracted with
  rc2-terminal retracted (no unretract).
- Harness snapshot: dir-walk + per-file canonical hash + aggregate
  content_hash + harness.lock.json. VerifyHarnessLock backs gate #8.
- ModelSpec capture with self-stable content_hash (zero-then-fill).
- §6 Refusal format: GATE FAILED / Why / Evidence / Fix — exact whitespace
  matches doctor-#11 expectations.
- Day-2 gates 1, 6, 7, 8, 9 (refusals only). Gates 2/3/4/5 deferred to
  Day 4 per §9 (need Judge + Suite history + Dolt burn ledger).
- 51 unit tests across canonicalization, atomic write, harness, manifest,
  modelspec, refusal, gates. All green.

Day-1 sealed (rc2 SCHEMA.md content_hash sha256:8cd3c9dd...d9a910d locked,
38 fixtures green). This commit is Wave 1 of Day 2; CLI wiring (eval task,
eval cleanup) lands in the next commit. Stop condition not yet hit.
2026-05-01 19:23:37 -04:00
Boden Fuller 68eecb82b6 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	cli/internal/daemon/projections.go
#	cli/internal/daemon/server.go
#	cli/internal/daemon/types.go
2026-05-01 19:12:26 -04:00
Boden Fuller ab56306184 feat(daemon): add RecurringJobTemplate type + Clock interface + cron parsing (soc-8inr.1) 2026-05-01 16:56:53 -04:00
Boden Fuller 8d51c2c10e feat(daemon): plans.projection executor + projection + 6 BDD subtests (atom-2, soc-acwf)
Second atom of soc-7ftl chain. Adds PlansProjectionExecutor implementing the
JobExecutor interface (cli/internal/daemon/supervisor.go:18) for the
plans.projection job-type registered in atom-1. Introduces:

- plans_jobs.go: PlansProjectionJobSpec round-tripper with idempotency-key
  collapse per foundation §1
- plans_projection.go: DaemonPlansProjection + Rebuild/Write/Validate triple
  mirroring DaemonRPIRegistryProjection (rpi_registry.go:9). Atomic snapshot
  via tmp + os.Rename
- plans_executor.go: executor + PlansBdSource interface + dbBdSource impl
  using database/sql against the shared bushido Dolt server (100.109.17.108)
- plans_executor_test.go: 2 L0 constructor-validation tests (F-PM-4 mirroring
  rpi_executor_test.go:29-40) + 6 BDD subtests covering all 6 pilot §b
  scenarios (Empty / Populated / Transient-fail / Cancellation /
  Replay-idempotent / Crash-recover) + 3 projection-helper subtests.

Wires plansExec into the fake + gascity supervisor policy slices when
opts.PlansBdSource is provided (test-friendly nil-disable; production callers
pass NewDbBdSource(dsn) loaded from .beads/metadata.json). Cli-fallback policy
intentionally omitted per pilot spec §c (G2 correction). Embeds the new Plans
field on ProjectionSet for atom-3+ HTTP exposure.

11 new tests pass; full daemon suite green; build+vet clean. Adds
github.com/go-sql-driver/mysql v1.10.0 (and filippo.io/edwards25519 v1.2.0
transitive) for the database/sql driver registration.

Plan: .agents/plans/2026-05-01-absorption-6-pilot-implementation.md (atom-2)
Closure proofs: .agents/proofs/atom-2/closure.yaml
2026-05-01 15:17:22 -04:00
Boden Fuller 66088ba7f1 perf(overnight): add darwin checkpoint clone fast path 2026-04-13 14:50:08 -04:00
Boden Fuller 55167eb778 Merge remote-tracking branch 'origin/codex/preserve-a752f190-golden-tests' 2026-03-07 11:46:01 -05:00
Boden Fuller 6ccabdeaeb test: preserve golden and error snapshot tests 2026-03-06 12:10:41 -05:00
Boden Fuller 79c1499fcb feat(cli+tests): Wave 2 — fuzz targets, property tests, pre-commit split (na-83w)
- 6 Go native fuzz targets: JSONL parsers (3), context parsers (2), ratchet chain (1)
- 9 property-based tests with pgregory.net/rapid: pool (3), maturity (6)
- Pre-commit hook split: fast vet+build (<5s), defer cmd/ao tests to pre-push
2026-03-04 14:40:12 -05:00
Boden Fuller e820e24f3a feat(cli+tests): Wave 1 — contracts, golden files, assertion audit, hook bats tests (na-83w)
Wave 1 of testing strategy implementation (4 parallel issues):

- na-83w.1: Hook stdin contract bats tests (93 tests for 13 hooks) + converted
  test-hooks.sh to bats framework (63 tests)
- na-83w.2: Golden-file tests for CLI commands (11 golden + 7 error snapshots)
  with -update-golden flag pattern, using google/go-cmp
- na-83w.3: CLI<->skill regex contract tests (15 table-driven test groups covering
  all major regex patterns), expanded skill_contract_test.go, added
  context-contract-check.sh to preflight checker
- na-83w.4: Assertion density audit script + fixed 6 hollow coverage test files
  (0/47 hollow, all ratios >= 1.5)

Source: .agents/plans/2026-03-04-testing-strategy.md
Council: .agents/council/2026-03-04-testing-strategy-report.md (6 judges, WARN)
2026-03-04 14:29:41 -05:00
Boden Fuller 7a783480f5 chore(evolve): cycle 7 — rpi test coverage, go.mod updates, docs sync
- rpi orchestration: 8 new e2e failure/retry state tests (council-validated)
- cli/go.mod + go.sum: dependency updates
- cli/docs/COMMANDS.md: regenerated CLI reference
- cmd/ao: minor lint/formatting pass across all command files
- cli/internal: goals history/snapshot, rpi/worktree, search/index updates
- GOALS.md: updated fitness spec
- .agents/learnings: parallel worktree test sprint notes updated
2026-02-28 19:56:10 -05:00
Boden Fuller 273e0bd9c3 fix: address all 6 post-mortem findings from TDD hardening
Post-mortem council flagged 6 items. All resolved:

1. Clean dead code in measure_test.go — removed longOutput variable,
   order variable, fixed byte-vs-rune assertion to use len([]rune())
2. Add goleak for goroutine leak detection — replaces fragile
   runtime.NumGoroutine + sleep heuristic with deterministic check
3. Assert AntiStars values in goals_init_test.go — not just count
4. Fix ci-local-release.sh invocation: ./scripts/ not bash scripts/
5. Add MigrateV1ToV2 and killAllChildren package-level tests —
   previously at 0% coverage in internal/goals
6. Fix goroutine leak in rpi_status.go — same signal.Stop-without-close
   pattern found by audit of all signal.Notify sites (1/3 leaking)
2026-02-24 11:46:47 -05:00
Boden Fuller 7f1c6919fb feat(cli): add rpi parallel command and in-progress phased improvements
- Add ao rpi parallel for concurrent multi-epic execution in isolated worktrees
- Enhance phased RPI processing with plan-file discovery and context improvements
- Update Go standards to modern idiom references
- Update CHANGELOG and README
2026-02-24 05:33:53 -05:00
Boden Fuller 37d4b5b2ae Merge branch 'codex/rpi-supervisor-cli' into main 2026-02-21 19:41:50 -05:00