substrate-ai 0.20.102 → 0.20.104
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/",
|
|
@@ -11951,8 +11955,9 @@ function registerIngestEpicCommand(program) {
|
|
|
11951
11955
|
await initWorkGraphSchema(adapter);
|
|
11952
11956
|
const ingester = new EpicIngester(adapter);
|
|
11953
11957
|
const result = await ingester.ingest(stories, dependencies);
|
|
11954
|
-
const
|
|
11955
|
-
|
|
11958
|
+
const epicNums = [...new Set(stories.map((s) => s.epic_num))].sort((a, b) => a - b);
|
|
11959
|
+
const epicLabel = epicNums.length === 1 ? `epic ${epicNums[0]}` : `epics ${epicNums.join(", ")}`;
|
|
11960
|
+
process.stdout.write(`Ingested ${result.storiesUpserted} stories and ${result.dependenciesReplaced} dependencies from ${epicLabel}\n`);
|
|
11956
11961
|
} catch (err) {
|
|
11957
11962
|
const msg = err instanceof Error ? err.message : String(err);
|
|
11958
11963
|
process.stderr.write(`Error: ${msg}\n`);
|
|
@@ -93,4 +93,14 @@ 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 ephemeral per-process and per-run state under `.substrate/`. Only `.substrate/config.yaml` is intended to be tracked — everything else (Dolt repo, kv-metrics, run manifests, heartbeats, halt notifications, current-run-id, .pid files) regenerates each run. Ignore everything under `.substrate/` and re-include only the config:
|
|
100
|
+
|
|
101
|
+
```gitignore
|
|
102
|
+
# Substrate ephemeral state — track only the operator config
|
|
103
|
+
.substrate/*
|
|
104
|
+
!.substrate/config.yaml
|
|
105
|
+
```
|
|
96
106
|
<!-- substrate:end -->
|
|
@@ -109,6 +109,30 @@ 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 ephemeral per-process and per-run state under `.substrate/`. Only `.substrate/config.yaml` is intended to be tracked — everything else (the Dolt repo, kv-metrics, run manifests, heartbeats, halt notifications, current-run-id, .pid files) is regenerated each run and should be ignored. The simplest pattern is to ignore everything under `.substrate/` and re-include only the config:
|
|
115
|
+
|
|
116
|
+
```gitignore
|
|
117
|
+
# Substrate ephemeral state — track only the operator config
|
|
118
|
+
.substrate/*
|
|
119
|
+
!.substrate/config.yaml
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
This is future-proof against new ephemeral files substrate may introduce. If you'd rather enumerate the specific patterns, the equivalent explicit form is:
|
|
123
|
+
|
|
124
|
+
```gitignore
|
|
125
|
+
.substrate/state/
|
|
126
|
+
.substrate/runs/
|
|
127
|
+
.substrate/notifications/
|
|
128
|
+
.substrate/kv-metrics.json
|
|
129
|
+
.substrate/current-run-id
|
|
130
|
+
.substrate/latest-heartbeat-per-story-state.json
|
|
131
|
+
.substrate/*.db
|
|
132
|
+
.substrate/*.pid
|
|
133
|
+
.substrate/routing-policy.yaml
|
|
134
|
+
```
|
|
135
|
+
|
|
112
136
|
### State Backend
|
|
113
137
|
|
|
114
138
|
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,14 @@ 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 ephemeral per-process and per-run state under `.substrate/`. Only `.substrate/config.yaml` is intended to be tracked — everything else (Dolt repo, kv-metrics, run manifests, heartbeats, halt notifications, current-run-id, .pid files) regenerates each run. Ignore everything under `.substrate/` and re-include only the config:
|
|
100
|
+
|
|
101
|
+
```gitignore
|
|
102
|
+
# Substrate ephemeral state — track only the operator config
|
|
103
|
+
.substrate/*
|
|
104
|
+
!.substrate/config.yaml
|
|
105
|
+
```
|
|
96
106
|
<!-- substrate:end -->
|