substrate-ai 0.20.103 → 0.20.105

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/dist/cli/index.js CHANGED
@@ -2089,6 +2089,10 @@ async function runInitAction(options) {
2089
2089
  ".substrate/current-run-id",
2090
2090
  ".substrate/scenarios/",
2091
2091
  ".substrate/state/",
2092
+ ".substrate/runs/",
2093
+ ".substrate/notifications/",
2094
+ ".substrate/kv-metrics.json",
2095
+ ".substrate/latest-heartbeat-per-story-state.json",
2092
2096
  ".substrate/substrate.db",
2093
2097
  ".substrate/substrate.db-journal",
2094
2098
  ".codex/prompts/",
@@ -93,4 +93,16 @@ Each dispatched story runs in `.substrate-worktrees/story-<key>` on its own bran
93
93
  - `.substrate/runs/<run-id>.json` — per-run manifest (one file per run; not an aggregate)
94
94
  - `.substrate/current-run-id` — plain text file with the latest run ID
95
95
  - `.substrate/notifications/<run-id>-<timestamp>.json` — operator halt notifications (deleted by `substrate report` after read)
96
+
97
+ ### Recommended `.gitignore` entries
98
+
99
+ Substrate writes per-project state under `.substrate/` in a few flavors: per-process scratch (`.pid`, `current-run-id`, `latest-heartbeat-per-story-state.json` — regenerated each run); per-run artifacts (`runs/<run-id>.json`, `notifications/`); local telemetry (`kv-metrics.json` — per-run phase token breakdown, accumulates into a local corpus used by `substrate metrics` and optional auto-tuner); the Dolt repository (`state/`); and the operator config (`config.yaml`, the only file intended for cross-machine sharing).
100
+
101
+ Defensible default: ignore everything under `.substrate/` except the operator config. Local telemetry stays per-developer; operators see their own corpus locally regardless of git.
102
+
103
+ ```gitignore
104
+ # Substrate state — track only the operator config
105
+ .substrate/*
106
+ !.substrate/config.yaml
107
+ ```
96
108
  <!-- substrate:end -->
@@ -109,6 +109,40 @@ Each dispatched story runs in `.substrate-worktrees/story-<key>` on its own bran
109
109
  - `.substrate/current-run-id` — plain text file with the latest run ID; consulted by canonical run-discovery
110
110
  - `.substrate/notifications/<run-id>-<timestamp>.json` — operator halt notifications written by the Recovery Engine; deleted by `substrate report` after read
111
111
 
112
+ ### Recommended `.gitignore` entries
113
+
114
+ Substrate writes per-project state under `.substrate/` in a few flavors:
115
+ - **Per-process scratch** (`.pid`, `current-run-id`, `latest-heartbeat-per-story-state.json`) — regenerated each run.
116
+ - **Per-run artifacts** (`runs/<run-id>.json`, `notifications/<run-id>-*.json`) — accumulate across runs; substrate report consumes and cleans notifications.
117
+ - **Local telemetry** (`kv-metrics.json` — per-run phase token breakdown used by `substrate metrics --output-format json` and, when enabled, the routing auto-tuner) — accumulates across runs into a local corpus.
118
+ - **The Dolt repository** (`state/`) — versioned pipeline state, large + binary.
119
+ - **Operator config** (`config.yaml`) — the only file intended for cross-machine sharing.
120
+
121
+ The defensible default for most projects is to ignore everything under `.substrate/` except the operator config. Local telemetry stays on each developer's machine — operators see their own corpus locally via `substrate metrics`; cross-machine sharing of routing telemetry is a future feature, not currently supported.
122
+
123
+ ```gitignore
124
+ # Substrate state — track only the operator config; everything else is
125
+ # per-process, per-run, or local-machine accumulation
126
+ .substrate/*
127
+ !.substrate/config.yaml
128
+ ```
129
+
130
+ This is future-proof against new files substrate may introduce. If you want to enumerate explicitly instead:
131
+
132
+ ```gitignore
133
+ .substrate/state/
134
+ .substrate/runs/
135
+ .substrate/notifications/
136
+ .substrate/kv-metrics.json
137
+ .substrate/current-run-id
138
+ .substrate/latest-heartbeat-per-story-state.json
139
+ .substrate/*.db
140
+ .substrate/*.pid
141
+ .substrate/routing-policy.yaml
142
+ ```
143
+
144
+ **Tradeoff to consider:** if your team wants to share a routing auto-tune corpus across machines (e.g., to seed `config.auto_tune` decisions with combined data), you could remove `kv-metrics.json` from the ignore set — at the cost of one git-mutation per substrate run. Most teams don't need this; the file is operator-visible locally regardless of git.
145
+
112
146
  ### State Backend
113
147
 
114
148
  Substrate uses Dolt for versioned pipeline state by default. Run `substrate init` to set it up automatically if Dolt is on PATH. Features that require Dolt: `substrate history`, OTEL observability persistence, and context engineering repo-map storage.
@@ -93,4 +93,16 @@ Each dispatched story runs in `.substrate-worktrees/story-<key>` on its own bran
93
93
  - `.substrate/runs/<run-id>.json` — per-run manifest (one file per run; not an aggregate)
94
94
  - `.substrate/current-run-id` — plain text file with the latest run ID
95
95
  - `.substrate/notifications/<run-id>-<timestamp>.json` — operator halt notifications (deleted by `substrate report` after read)
96
+
97
+ ### Recommended `.gitignore` entries
98
+
99
+ Substrate writes per-project state under `.substrate/` in a few flavors: per-process scratch (`.pid`, `current-run-id`, `latest-heartbeat-per-story-state.json` — regenerated each run); per-run artifacts (`runs/<run-id>.json`, `notifications/`); local telemetry (`kv-metrics.json` — per-run phase token breakdown, accumulates into a local corpus used by `substrate metrics` and optional auto-tuner); the Dolt repository (`state/`); and the operator config (`config.yaml`, the only file intended for cross-machine sharing).
100
+
101
+ Defensible default: ignore everything under `.substrate/` except the operator config. Local telemetry stays per-developer; operators see their own corpus locally regardless of git.
102
+
103
+ ```gitignore
104
+ # Substrate state — track only the operator config
105
+ .substrate/*
106
+ !.substrate/config.yaml
107
+ ```
96
108
  <!-- substrate:end -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "substrate-ai",
3
- "version": "0.20.103",
3
+ "version": "0.20.105",
4
4
  "description": "Substrate — multi-agent orchestration daemon for AI coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",