Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
fc20c4f
feat: restore TraceDecay V2 review head
ScriptedAlchemy Aug 24, 2026
a23f86a
fix(code-index): preserve in-flight generation work
ScriptedAlchemy Aug 24, 2026
8b9d07f
fix: install Linux runtime, scope delivery, and refresh remotes
ScriptedAlchemy Aug 24, 2026
24f549e
fix(domain): accept anonymous extracted nodes
ScriptedAlchemy Aug 24, 2026
5370a45
ci(sdk): cancel superseded conformance runs
ScriptedAlchemy Aug 24, 2026
040ba51
test(global-db): exercise legacy attach admission
ScriptedAlchemy Aug 24, 2026
1e43391
test(global-db): align runtime retirement fixtures
ScriptedAlchemy Aug 24, 2026
4c661fa
fix(cli): isolate wipe and hotpath startup
ScriptedAlchemy Aug 24, 2026
cf5de56
build(release): ship hotpath facilities
ScriptedAlchemy Aug 24, 2026
0adf839
fix(temporal): migrate released receipt schema
ScriptedAlchemy Aug 24, 2026
7bdaf42
fix(daemon): mount canonical profile authorities
ScriptedAlchemy Aug 24, 2026
f19fff6
fix(cli): make complete wipe schema independent
ScriptedAlchemy Aug 24, 2026
4431b5e
fix(session): mount profile message search authority
ScriptedAlchemy Aug 24, 2026
e2430e6
fix(sdk): regenerate configuration worker contracts
ScriptedAlchemy Aug 24, 2026
428f776
fix(sessions): satisfy strict clippy warnings
ScriptedAlchemy Aug 24, 2026
54ffebb
ci(hawk): track the shipped CLI package
ScriptedAlchemy Aug 24, 2026
42b6071
test(dashboard): refresh worker configuration fixtures
ScriptedAlchemy Aug 24, 2026
966317b
test(mcp): await code generation before smoke assertions
ScriptedAlchemy Aug 24, 2026
096fd3e
test(mcp): await impact graph admission
ScriptedAlchemy Aug 24, 2026
40b0d54
fix(daemon): retire idle projects under graph pressure
ScriptedAlchemy Aug 24, 2026
709406b
refactor(sessions): remove orphaned discovery metric
ScriptedAlchemy Aug 24, 2026
177d858
fix(hotpath): bound ephemeral database lock telemetry
ScriptedAlchemy Aug 24, 2026
768360f
test(tools): await retryable graph fixture warming
ScriptedAlchemy Aug 24, 2026
07fbada
fix(automation): honor terminal skip cadence
ScriptedAlchemy Aug 24, 2026
47781de
fix(index): seat graphs before bounded text projection
ScriptedAlchemy Aug 24, 2026
54171cb
fix(session): repair missing relation receipts
ScriptedAlchemy Aug 24, 2026
1ecc9b0
fix(index): keep text activation helper test-only
ScriptedAlchemy Aug 24, 2026
c244811
fix(graph): resume publication after durable staging
ScriptedAlchemy Aug 24, 2026
b46f5db
fix(graph): refuse unbounded native activation
ScriptedAlchemy Aug 24, 2026
0809d63
fix(release): keep hotpath opt-in
ScriptedAlchemy Aug 24, 2026
837d0ae
fix(graph): restore persistent activation availability
ScriptedAlchemy Aug 24, 2026
fac184d
fix(mcp): preserve typed graph warming retries
ScriptedAlchemy Aug 24, 2026
469c12f
fix(clippy): clear workspace lint failures in crates
ScriptedAlchemy Aug 24, 2026
e16e8c5
test(index): stabilize worker panic containment
ScriptedAlchemy Aug 24, 2026
5129e11
perf(index): stream sealed generation publication
ScriptedAlchemy Aug 24, 2026
322ad53
fix(clippy): clear root crate lint failures
ScriptedAlchemy Aug 24, 2026
5ebfabb
style: apply rustfmt to the clippy fixes
ScriptedAlchemy Aug 24, 2026
b60ea60
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 24, 2026
4cd043b
fix(clippy): heap-allocate the 64 KiB generation IO buffers
ScriptedAlchemy Aug 24, 2026
9cff579
perf(index): share semantic generation ownership
ScriptedAlchemy Aug 24, 2026
afd5ef3
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 24, 2026
29d8866
Merge pull request #719 from ScriptedAlchemy/claude/fix-ci-clippy
ScriptedAlchemy Aug 24, 2026
c6fe3eb
fix(ci): unbreak Hawk and match its documented advisory intent
ScriptedAlchemy Aug 24, 2026
727a6d6
fix(ci): compile hawk dashboard test and Windows hook helper
ScriptedAlchemy Aug 24, 2026
ff9129c
fix(dashboard): ignore empty analytics hint-count queries
ScriptedAlchemy Aug 24, 2026
1dd212a
fix(config): reject extra keys on automatic worker mode
ScriptedAlchemy Aug 24, 2026
cdc9aed
docs(perf): design text catch-up pipeline
ScriptedAlchemy Aug 24, 2026
018b5ff
docs(perf): plan text catch-up implementation
ScriptedAlchemy Aug 24, 2026
207ffcc
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 24, 2026
7afbd13
chore: drop the duplicate gated Value import
ScriptedAlchemy Aug 24, 2026
890ad94
docs(perf): tighten catch-up safety contracts
ScriptedAlchemy Aug 24, 2026
9a526da
Merge pull request #720 from ScriptedAlchemy/claude/fix-ci-hawk
ScriptedAlchemy Aug 24, 2026
4d20381
chore(perf): configure hotpath mcp for repository
ScriptedAlchemy Aug 24, 2026
976ca2e
perf(index): batch verified lexical source pages
ScriptedAlchemy Aug 24, 2026
aad7637
perf(index): bulk commit lexical artifact pages
ScriptedAlchemy Aug 25, 2026
7ba7239
docs(architecture): design root package relocation
ScriptedAlchemy Aug 25, 2026
a99adf0
docs(architecture): plan root package relocation
ScriptedAlchemy Aug 25, 2026
6a6253b
fix(ci): validate hotpath repository setup
ScriptedAlchemy Aug 25, 2026
61de80d
refactor(version): move product version to workspace
ScriptedAlchemy Aug 25, 2026
993210a
refactor(jsonrpc): use canonical daemon wire types
ScriptedAlchemy Aug 25, 2026
f245016
fix(benchmark): install the authorities the observation path needs
ScriptedAlchemy Aug 25, 2026
858a38a
chore(dashboard): remove accessibility testing and its CI job
ScriptedAlchemy Aug 25, 2026
1ee0d6c
refactor(workspace): relocate composition library
ScriptedAlchemy Aug 25, 2026
40cfe22
Merge pull request #724 from ScriptedAlchemy/claude/remove-dashboard-…
ScriptedAlchemy Aug 25, 2026
1592e28
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 25, 2026
a10e46d
Merge pull request #723 from ScriptedAlchemy/claude/fix-test-linux-be…
ScriptedAlchemy Aug 25, 2026
eb51a8a
ci(windows): raise build timeout for cold cache
ScriptedAlchemy Aug 25, 2026
749fc7b
feat(index): publish durable catch-up progress
ScriptedAlchemy Aug 25, 2026
7bc1746
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 25, 2026
b6d5471
refactor(cycle): name jsonrpc and hook types at their crates
ScriptedAlchemy Aug 25, 2026
27efc1b
docs(extraction): map the root crate's real cycle
ScriptedAlchemy Aug 25, 2026
71323ce
refactor(workspace): relocate the integration test tree
ScriptedAlchemy Aug 25, 2026
6ba1a76
fix(dashboard): retain current catch-up progress
ScriptedAlchemy Aug 25, 2026
5e04e30
refactor(test): move shared test support into the package
ScriptedAlchemy Aug 25, 2026
9f36b91
fix(dashboard): order code index progress by incarnation
ScriptedAlchemy Aug 25, 2026
5a87150
fix(index): order progress by daemon incarnation
ScriptedAlchemy Aug 25, 2026
bfd750a
fix(dashboard): order remounted index progress
ScriptedAlchemy Aug 25, 2026
dc71489
perf(index): admit durable lexical page prefixes
ScriptedAlchemy Aug 25, 2026
f9c8700
perf(index): borrow admitted sealed decode bytes
ScriptedAlchemy Aug 25, 2026
ae93e99
Merge remote-tracking branch 'origin/codex/code-index-catchup-pipelin…
ScriptedAlchemy Aug 25, 2026
f9232b5
fix(index): adopt the accepted-prefix batch callback
ScriptedAlchemy Aug 25, 2026
e6f43a8
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 25, 2026
a6ba193
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 25, 2026
ac6b60d
perf(query): defer lexical serving indexes
ScriptedAlchemy Aug 25, 2026
aeae244
fix(query): share repeated union bind values
ScriptedAlchemy Aug 25, 2026
d40e9be
perf(index): preserve immutable text catch-up
ScriptedAlchemy Aug 25, 2026
add3b50
perf(index): accelerate sealed layout scanning
ScriptedAlchemy Aug 25, 2026
3f8e905
perf(query): checkpoint setwise finalization
ScriptedAlchemy Aug 25, 2026
6dfc37d
feat(dashboard): publish ordered catch-up progress
ScriptedAlchemy Aug 25, 2026
5bac377
Merge pull request #725 from ScriptedAlchemy/claude/fix-build-windows
ScriptedAlchemy Aug 25, 2026
022fcfa
test(dashboard): align catch-up progress fixture
ScriptedAlchemy Aug 25, 2026
5d142e1
fix(query): bound catch-up batch admission
ScriptedAlchemy Aug 25, 2026
1af4fd6
perf(hotpath): instrument sealed decode and artifact publish
ScriptedAlchemy Aug 25, 2026
bacb990
Merge pull request #726 from ScriptedAlchemy/claude/daemon-mcp-cycle-…
ScriptedAlchemy Aug 25, 2026
a60403b
build(distribution): point package checks at the relocated manifest
ScriptedAlchemy Aug 25, 2026
b764985
fix(query): select exact prepared page prefix
ScriptedAlchemy Aug 25, 2026
2d2b90f
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 25, 2026
78901da
Merge remote-tracking branch 'origin/codex/code-index-catchup-pipelin…
ScriptedAlchemy Aug 25, 2026
cec6d23
feat(index): stream authenticated text metadata
ScriptedAlchemy Aug 25, 2026
7459022
perf(index): coalesce sealed generation writes
ScriptedAlchemy Aug 25, 2026
d8083a9
perf(hotpath): label code-index admission and extraction phases
ScriptedAlchemy Aug 25, 2026
9810e20
perf(privacy): batch credential keyword gates
ScriptedAlchemy Aug 25, 2026
272f40d
perf(graph): amortize bounded replay serialization
ScriptedAlchemy Aug 25, 2026
e78a806
test(index): share lexical fixture capture bytes
ScriptedAlchemy Aug 25, 2026
86af4a4
perf(index): share captured snapshot bytes
ScriptedAlchemy Aug 25, 2026
7b68427
perf(index): serve retained text before graph activation
ScriptedAlchemy Aug 25, 2026
7670a8b
perf(index): share physical generation artifacts
ScriptedAlchemy Aug 25, 2026
5bf8838
refactor(index): remove obsolete snapshot adjustment error
ScriptedAlchemy Aug 25, 2026
056750e
perf(hotpath): add bounded capture progress gauges
ScriptedAlchemy Aug 25, 2026
f9ce680
fix(index): bind text catch-up to active seal
ScriptedAlchemy Aug 25, 2026
73dc94b
perf(hotpath): instrument authoritative snapshot capture
ScriptedAlchemy Aug 25, 2026
72833e2
perf(hotpath): remove unused capture wrapper
ScriptedAlchemy Aug 25, 2026
12ea2c6
perf(hotpath): trace artifact publish and reconcile ttfq
ScriptedAlchemy Aug 25, 2026
595ef9f
perf(hotpath): trace sealed generation publication
ScriptedAlchemy Aug 25, 2026
9750d83
perf(hotpath): sample code-index file spans
ScriptedAlchemy Aug 25, 2026
41a66a4
fix(hotpath): name build queryability latency truthfully
ScriptedAlchemy Aug 25, 2026
4d77799
fix(hotpath): sample extraction digest phases
ScriptedAlchemy Aug 25, 2026
f2381b8
test(host-admission): gate integration fixture surface
ScriptedAlchemy Aug 25, 2026
8bf20b2
Merge remote-tracking branch 'origin/codex/code-index-catchup-pipelin…
ScriptedAlchemy Aug 25, 2026
363c9d3
build(distribution): stage relocated product package
ScriptedAlchemy Aug 25, 2026
1fcc4f6
test(index): await incremental text serving
ScriptedAlchemy Aug 25, 2026
7c5f242
docs(agents): describe the relocated workspace layout
ScriptedAlchemy Aug 25, 2026
65d10b4
fix(scheduler): gate resident-memory constructor to its callers
ScriptedAlchemy Aug 25, 2026
65a7e9a
perf(hotpath): bound capture progress cadence
ScriptedAlchemy Aug 25, 2026
b9c826c
build(release): resolve release metadata from the product package
ScriptedAlchemy Aug 25, 2026
1e10198
style(scheduler): apply rustfmt to merged catch-up code
ScriptedAlchemy Aug 25, 2026
8e44f77
build(distribution): give extracted packages their workspace names
ScriptedAlchemy Aug 25, 2026
3b2b837
build(release): read release identity from the virtual workspace root
ScriptedAlchemy Aug 25, 2026
fe431fe
fix(ci): restore test transport compilation
ScriptedAlchemy Aug 25, 2026
31d0c68
perf(query): localize ngram catch-up writes
ScriptedAlchemy Aug 25, 2026
f2aae13
fix(index): preserve graph-off text catch-up
ScriptedAlchemy Aug 25, 2026
24b59ee
fix(index): advance graph-off serving after source changes
ScriptedAlchemy Aug 25, 2026
fbc77c8
fix(index): preserve graph-off rebuild admission
ScriptedAlchemy Aug 25, 2026
07c8e4b
perf(query): parallelize SQLite index sorting
ScriptedAlchemy Aug 25, 2026
bbf3259
fix(index): serve graph-off queries from text artifacts
ScriptedAlchemy Aug 25, 2026
c731629
perf(query): widen bounded lexical catch-up
ScriptedAlchemy Aug 25, 2026
4445b5a
perf(query): shard lexical ngram postings
ScriptedAlchemy Aug 25, 2026
f76ec8d
fix(dashboard): keep polling until index freshness settles
ScriptedAlchemy Aug 25, 2026
636fd46
fix(index): satisfy callable query lint
ScriptedAlchemy Aug 25, 2026
229e827
perf(query): adopt page receipts for artifact verification
ScriptedAlchemy Aug 25, 2026
b981b2f
perf(query): widen lexical build reservation
ScriptedAlchemy Aug 25, 2026
7d36c38
test(query): cover net lexical build reservation
ScriptedAlchemy Aug 25, 2026
cdd591f
perf(query): order lexical term batch inserts
ScriptedAlchemy Aug 25, 2026
e6a5f5f
fix(semantic): build activation candidate in daemon
ScriptedAlchemy Aug 25, 2026
ae2d65b
fix(query): bound lexical term sort cancellation
ScriptedAlchemy Aug 25, 2026
f436f71
Merge remote-tracking branch 'origin/codex/code-index-catchup-pipelin…
ScriptedAlchemy Aug 25, 2026
4fa5edc
test(daemon): restore the evaluated semantic profile restart wait
ScriptedAlchemy Aug 25, 2026
1c881cf
refactor(usecases): remove root diagnostic shims
ScriptedAlchemy Aug 25, 2026
01f9f74
fix(index): report graph-off text freshness
ScriptedAlchemy Aug 25, 2026
fac59b1
refactor(usecases): remove root context and graph shims
ScriptedAlchemy Aug 25, 2026
4686559
feat(index): persist text result display identity
ScriptedAlchemy Aug 25, 2026
10b783d
refactor(usecases): remove the remaining root re-export shims
ScriptedAlchemy Aug 25, 2026
6ba7b5a
perf(index): hydrate active text results from artifact
ScriptedAlchemy Aug 25, 2026
30128f3
perf(semantic): abstain before generation decode
ScriptedAlchemy Aug 25, 2026
fcc14f2
fix(index): decouple reconcile telemetry persistence
ScriptedAlchemy Aug 25, 2026
8601dc2
fix(git): resolve human PR branch refs
ScriptedAlchemy Aug 25, 2026
d78346d
style(lint): clear the all-features clippy gate for the product library
ScriptedAlchemy Aug 25, 2026
e09665a
fix(daemon): restore the evaluated semantic profile restart wait
ScriptedAlchemy Aug 25, 2026
8b1afa2
Merge pull request #721 from ScriptedAlchemy/codex/code-index-catchup…
ScriptedAlchemy Aug 25, 2026
8f7300a
fix(test): compile the Work route conformance suite on Windows
ScriptedAlchemy Aug 25, 2026
c0bb8f5
style(lint): clear the all-features clippy gate in test targets
ScriptedAlchemy Aug 25, 2026
8720f7a
fix(test): compile the Work route conformance suite on Windows
ScriptedAlchemy Aug 25, 2026
27670ca
Merge remote-tracking branch 'origin/codex/code-index-catchup-pipelin…
ScriptedAlchemy Aug 25, 2026
5fc3a69
Merge remote-tracking branch 'origin/codex/tracedecay-total-redesign-…
ScriptedAlchemy Aug 26, 2026
8ebf065
style(lint): name the method instead of wrapping it in a closure
ScriptedAlchemy Aug 26, 2026
f3fcf0d
fix(relocation): anchor workspace-level paths above the product package
ScriptedAlchemy Aug 26, 2026
1e69ac1
Merge pull request #722 from ScriptedAlchemy/codex/relocate-tracedeca…
ScriptedAlchemy Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
29 changes: 25 additions & 4 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,33 @@ TRACEDECAY_DISABLE_GLOBAL_DB = { value = "1", force = false }
# in-process. Installed binaries run outside cargo and are unaffected, but the
# profile does apply to `cargo run` — use the installed binary (or set
# TRACEDECAY_DATA_DIR yourself) for real `daemon install-service` runs.
# Enforced by tests/test_profile_isolation_test.rs.
# Enforced by crates/tracedecay-cli/tests/core_cli_suite/test_profile_isolation_test.rs.
TRACEDECAY_DATA_DIR = { value = "target/test-profile/.tracedecay", force = false, relative = true }

# Cheaper Linux debuginfo handling, scoped to the gnu triples so Windows
# (MSVC supports only packed split-debuginfo) and macOS (already defaults to
# unpacked) keep their platform defaults. `split-debuginfo=unpacked` leaves
# debuginfo in the object files instead of linking it into every binary; it
# is linker-agnostic and a no-op for profiles that build without debuginfo.
# Deliberately no linker flags here: rustc already links
# x86_64-unknown-linux-gnu with its bundled rust-lld, CI symlinks ld -> mold
# (see .github/actions/setup-linux-mold; `-fuse-ld=mold` needs GCC >= 12),
# and driver-only flags such as `-B` would land on the raw linker command
# line — and fail — for anyone who sets `target.<triple>.linker` or
# CARGO_TARGET_<TRIPLE>_LINKER to a linker executable directly. Developers
# who want mold locally opt in through their own linker config or RUSTFLAGS
# (a user-set RUSTFLAGS env var replaces these flags entirely).
[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "split-debuginfo=unpacked"]

[target.aarch64-unknown-linux-gnu]
rustflags = ["-C", "split-debuginfo=unpacked"]

[alias]
# Local default for the full Rust test suite. Requires cargo-nextest:
# https://nexte.st/docs/installation/pre-built-binaries/
test-all = "nextest run --workspace --no-fail-fast"
test-ci = "nextest run --workspace --no-fail-fast"
dogfood = "run --quiet --release --bin tracedecay -- dogfood"
# The perf cargo profile keeps the critical-path kernels (code index, graph,
# sha2, …) optimized for the generation-scale suites in the full run; see
# [profile.perf] in the root Cargo.toml.
test-all = "nextest run --workspace --all-features --no-fail-fast --cargo-profile perf"
test-ci = "nextest run --workspace --all-features --no-fail-fast --cargo-profile perf"
5 changes: 0 additions & 5 deletions .changeset/derived-branch-corruption-recovery.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/hermes-projectless-routing.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/personal-codex-plugin.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/runtime-routing-ci-hardening.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/session-catchup-hook-trust.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/session-worktree-discovery.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/user-message-search-scope.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/v2-foundation-crates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"tracedecay": patch
---

Land the stacked V2 foundation: ten workspace crates (api, application, host-integration, hooks, policy, private-fs, rusqlite-runtime, store, temporal-query, tool-catalog) and the V2 domain contracts, with protobuf node kinds now unconditional graph vocabulary. Hook spool roots are refused unless private to the current owner (and gain a private ACL on Windows), and Windows lock contention in the hook admission ledger and storage sidecar locks is typed as busy/contended instead of surfacing as I/O errors.
5 changes: 0 additions & 5 deletions .changeset/windows-lifecycle-handoff.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/worktree-store-resolution.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"files": {
"SKILL.md": "sha256:ce428b37c4067c28a8bfa803e31e5647f023aa6996be5997e065b6e9d75c1ebb"
"SKILL.md": "sha256:72250a902f26620d2bb6c5aea1a1ae198aba382f061ae365d58cea71416d3d78"
},
"managed_by": "tracedecay-automation",
"package_hash": "sha256:070f5045d0af6f415c30166b75ecc0b3f4b2c9aaf61a23eaf8bb42a6900a390e",
"package_hash": "sha256:62c256a24e756b8b9270ed092477e24daa7d80aa721328de3d7749b8c232aa9d",
"skill_id": "automation-run-review"
}
21 changes: 18 additions & 3 deletions .claude/skills/automation-run-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
---
name: automation-run-review
description: "Use when Review self-improvement automation runs and activation policy."
description: "Use when reviewing self-improvement automation run status, validation evidence, automatic skill activation, or memory-curation outcomes."
managed-by: tracedecay-automation
skill-id: "automation-run-review"
content-hash: sha256:070f5045d0af6f415c30166b75ecc0b3f4b2c9aaf61a23eaf8bb42a6900a390e
content-hash: sha256:62c256a24e756b8b9270ed092477e24daa7d80aa721328de3d7749b8c232aa9d
skill-version: 1783629450
---

Check the run ledger, activation policy, and approval state before applying changes.
# Automation run review

Review automation without mutating it:

1. Use `tracedecay_automation_run_list` to find the exact run id.
2. Use `tracedecay_automation_run_view` to inspect terminal status, counts,
validation report, effects, and advertised artifact kinds.
3. Use `tracedecay_automation_run_artifact_view` only for an artifact kind
advertised by that run; verify the returned hash-backed payload against the
terminal record.
4. For skill-writer runs, verify automatic validation, activation, and
materialization against `tracedecay_skill_list` and
`tracedecay_skill_view`. For memory-curator runs, verify committed effects
with read-only fact queries.
5. Report failures after committed effects as reconciliation work. Never rerun
blindly or manufacture a manual settlement step.
52 changes: 0 additions & 52 deletions .claude/skills/dogfooding-tracedecay/SKILL.md

This file was deleted.

4 changes: 2 additions & 2 deletions .claude/skills/evaluating-hook-hints/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Use this skill for TraceDecay repo development only. These are repo-local dev in

## Workflow

1. Start with TraceDecay context for `src/hooks/tool_hints.rs`, `src/hooks/tool_hints/classifiers.rs`, `src/hooks/tool_hints/evals.rs`, host adapters in `src/hooks/{codex,claude,cursor}.rs`, and recent transcript evidence.
1. Start with TraceDecay context for `src/hooks/tool_hints.rs`, `src/hooks/tool_hints/classifiers.rs`, the `src/hooks/tool_hints/evals/` module (`mod.rs` plus `host_cases.rs`), host adapters in `src/hooks/{codex,claude,cursor}.rs`, and recent transcript evidence.
2. Render model-visible hook input when judging verbosity:
`scripts/render-codex-hook-inputs.py --glob '/home/zack/.codex/sessions/**/*.jsonl' --all --limit 5 --max-chars 800`.
3. Run deterministic evals before behavior edits:
Expand All @@ -22,7 +22,7 @@ Use this skill for TraceDecay repo development only. These are repo-local dev in
## Acceptance Rules

- Hints should be contextual and short; avoid generic TraceDecay availability boilerplate.
- Real-world transcript cases and synthetic cases should both be represented in `src/hooks/tool_hints/evals.rs`.
- Real-world transcript cases and synthetic cases should both be represented in `src/hooks/tool_hints/evals/` (`host_cases.rs` holds the per-host scenarios). The module is `#[cfg(test)]`, so it only compiles under a test profile.
- A normal user prompt should not be wrapped into a noisy `UserPromptSubmit hook (completed)` model-visible user message.
- No hint is a valid outcome when the request does not need TraceDecay guidance.
- Repeated native behavior should get at most one initial hint plus one later escalation per category, bounded by the session budget.
Expand Down
49 changes: 31 additions & 18 deletions .claude/skills/inspecting-automation-cycles/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: inspecting-automation-cycles
description: 'TraceDecay Dev: Use when auditing TraceDecay automation loops, skipped runs, memory-curator/session-reflector/skill-writer output, apply policy, or run artifacts.'
description: 'TraceDecay Dev: Use when auditing TraceDecay automation loops, skipped runs, memory-curator/session-reflector/skill-writer output, terminal receipts, or run artifacts.'
---

# TraceDecay Dev: Inspecting Automation Cycles
Expand All @@ -12,16 +12,28 @@ analytics prove whether generated output was adopted.
## Workflow

1. Start with `tracedecay automation config get` to identify enabled tasks,
schedules, locks, profile paths, and apply policy.
2. List recent runs with `tracedecay automation runs list --limit 100`; group
schedules, locks, and profile paths.
2. When the operator requests an immediate memory-curation cycle, use the sole
public semantic launcher, `fact_store_curate`, through its MCP adapter
`tracedecay_fact_store_curate`, generic CLI adapter `tracedecay tool
fact_store_curate`, or HTTP adapter `POST
/api/application/retained/fact_store_curate`. Its request accepts only the
optional `fact_review_limit` and `min_confidence_millionths` bounds. Each
adapter invokes the same daemon-owned operation; the daemon derives run
identity, task selection, operations, validation, policy, and effect
settlement.
3. List recent runs with `tracedecay automation runs list --limit 100`; group
by task and status before opening individual artifacts.
3. For failures or suspicious skips, open the relevant artifact with
`tracedecay_automation_run_artifact_view` or
`tracedecay tool automation_run_artifact_view --args ...`.
4. Inspect model-managed memory outcomes plus configured managed-skill review
queues: `tracedecay automation facts list`, dashboard telemetry, and
`tracedecay_skill_list --state pending`.
5. Check adoption evidence: `tracedecay analytics diagnostics --all --no-sync`,
4. Inspect one exact run with `tracedecay automation runs view <run_id>`.
Read its verified artifacts with
`tracedecay automation runs artifact <run_id> <kind> --json`,
`GET /api/automation/runs/<run_id>/artifacts/<kind>`, or the read-only MCP
tool `tracedecay_automation_run_artifact_view`. MCP automation analytics
summarizes run history; exact MCP run list/view is not currently exposed.
5. Inspect terminal memory outcomes plus active managed-skill adoption:
`tracedecay automation facts list`, dashboard telemetry, and
`tracedecay_skill_list --state active`.
6. Check adoption evidence: `tracedecay analytics diagnostics --all --no-sync`,
`tracedecay sessions search "mcp__tracedecay" --provider all`, and managed
skill usage counts.

Expand All @@ -32,15 +44,16 @@ analytics prove whether generated output was adopted.
| `scheduler_interval_not_elapsed` | Healthy throttling | Count only, do not fix. |
| `scheduler_lock_active` | Another run owns the loop | Check age before calling stale. |
| `no_new_session_activity` | Nothing new to process | Verify transcript ingest if surprising. |
| `validation_gate` artifact | Mutation passed validation | Inspect apply-policy state or dashboard artifact. |
| Many fact proposal records | Inspect validation/apply telemetry | Use `tracedecay:project-memory`. |
| `validation_gate` artifact | Mutation passed validation | Inspect terminal automatic application/deployment receipts. |
| Many automatic fact receipts | Inspect applied/quarantined outcomes and telemetry | Use `tracedecay automation facts list`. |
| Active managed skills with zero use | Adoption telemetry gap | Use `tracedecay:diagnosing-analytics`. |

## Guardrails

- Prefer read-only inspection. Do not mutate fact records.
- Do not approve, reject, delete, or apply managed-skill drafts unless the user
explicitly asked for mutation.
- After any requested run, keep inspection read-only. Do not submit curator
operations or approve, reject, or apply its output.
- Validated memory-curator and skill-writer output settles automatically;
inspect receipts rather than waiting for a manual gate.
- Do not treat skipped runs as failures until grouped by skip reason and age.
- Avoid parallel `tracedecay_skill_view` calls against one profile while
automation may write usage ledgers. If a usage read reports a truncated JSON
Expand All @@ -50,6 +63,6 @@ analytics prove whether generated output was adopted.

## Deliverable

Report task/status counts, the exact run or artifact ids inspected, apply-policy
state, adoption gaps, and the next concrete command for any mutation the user
should choose.
Report the launcher adapter used, task/status counts, exact run or artifact ids,
terminal automatic application/deployment receipts, read-only verification,
and adoption gaps.
14 changes: 8 additions & 6 deletions .claude/skills/introspecting-tracedecay-usage/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ failure mode, then code, tests, or bundled skills encode the fix.
`tracedecay:inspecting-managed-skills`. Start with
`tracedecay_skill_list`; view skills or run artifacts only when the list
points to a specific stale, patched, failed, or unused item.
4. **Durable memory:** Use `tracedecay:project-memory`. Search with
`tracedecay_fact_store` before re-deriving project decisions. For curation,
run read-only inventory and dry-runs first; never remove facts without
explicit approval.
4. **Durable memory:** Use `tracedecay:project-memory`. Recall prior decisions
with `tracedecay_fact_store_search`; record durable decisions and corrections
with `tracedecay_fact_store_add`. Delegate broad curation to
`tracedecay:project-memory` and inspect its automatic validation and
application receipts.
5. **Code-health and implementation target:** Use `tracedecay:code-health`.
Let weak dimensions and hotspots decide whether the fix is code, tests,
docs, evals, or skill guidance.
Expand All @@ -38,8 +39,9 @@ failure mode, then code, tests, or bundled skills encode the fix.
or add a bundled operator skill that prevents the repeated mistake.
- LCM depth and compression ratios are health signals, not direct quality
scores. Use raw/session recall to confirm what agents actually missed.
- Memory curation candidates are proposals, not permission. Prefer merge or
update when provenance matters; deletion needs fresh user approval.
- Memory curation is automation-owned after validation. Inspect validation and
applied operation receipts; use `tracedecay:project-memory` for any direct
operator override.
- Analytics fields can be global. `project_id: null` means the run was global,
not broken.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,39 @@ PY=python3; have "$PY" || PY=python
# --- Resolve store paths from TraceDecay, not from hardcoded locations. -------
SS="$(tracedecay tool storage_status --args '{"format":"json"}' 2>/dev/null || true)"
if [ -z "$SS" ]; then echo "error: could not read 'tracedecay tool storage_status'" >&2; exit 4; fi
read -r SERVING_DB DATA_ROOT PROJECT_ROOT <<EOF
$(printf '%s' "$SS" | "$PY" -c 'import sys,json
d=json.load(sys.stdin); s=d["active_project"]["storage"]
print(s["graph_db_path"], s["data_root"], d["active_project"]["project_root"])')
if ! STORAGE_FIELDS="$(printf '%s' "$SS" | "$PY" -c 'import sys,json
d=json.load(sys.stdin)
store_path=d.get("store_path")
project_id=d.get("project_id")
if not isinstance(store_path, str) or not store_path or not isinstance(project_id, str) or not project_id:
raise SystemExit(1)
print(f"{store_path}\t{project_id}")')"; then
echo "error: storage_status is missing required store_path or project_id" >&2
exit 5
fi
IFS=$'\t' read -r SERVING_DB PROJECT_ID <<EOF
$STORAGE_FIELDS
EOF
if [ ! -f "$SERVING_DB" ]; then
echo "error: serving store does not exist: $SERVING_DB" >&2
exit 6
fi
DATA_ROOT="$(dirname "$SERVING_DB")"
TD_HOME="$(dirname "$(dirname "$DATA_ROOT")")" # .../.tracedecay/projects/<proj> -> .../.tracedecay
GLOBAL_DB="$TD_HOME/global.db"

q() { sqlite3 -noheader -separator ' ' "$1" "$2" 2>/dev/null; }

echo "================================================================"
echo " TraceDecay usage & fact-store adoption — $PROJECT_ROOT"
echo " TraceDecay usage & fact-store adoption — $PROJECT_ID"
echo "================================================================"

# --- 1. MCP tool adoption (per-tool breakdown; the CLI only groups by kind). --
echo
echo "## MCP tool calls (analytics_events)"
if [ -f "$GLOBAL_DB" ]; then
FILTER="event_kind='mcp_tool_call'"
[ "$ALL" -eq 0 ] && FILTER="$FILTER AND project_id='$PROJECT_ROOT'"
[ "$ALL" -eq 0 ] && FILTER="$FILTER AND project_id='$PROJECT_ID'"
SCOPE=$([ "$ALL" -eq 1 ] && echo "ALL PROJECTS" || echo "this project")
echo "scope: $SCOPE"
printf ' %-42s %8s %8s\n' "tool" "calls" "errors"
Expand Down
Loading
Loading