instar 1.3.413 → 1.3.414
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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +12 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +19 -19
- package/upgrades/{1.3.413.md → 1.3.414.md} +18 -0
- package/upgrades/side-effects/transcript-cleanup-period.md +31 -0
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-07T22:
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-07T22:18:32.589Z",
|
|
5
|
+
"instarVersion": "1.3.414",
|
|
6
6
|
"entryCount": 199,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"domain": "identity",
|
|
12
12
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
13
13
|
"installedPath": ".instar/hooks/instar/session-start.sh",
|
|
14
|
-
"contentHash": "
|
|
14
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
15
15
|
"since": "2025-01-01"
|
|
16
16
|
},
|
|
17
17
|
"hook:dangerous-command-guard": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"domain": "safety",
|
|
21
21
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
22
22
|
"installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
|
|
23
|
-
"contentHash": "
|
|
23
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
24
24
|
"since": "2025-01-01"
|
|
25
25
|
},
|
|
26
26
|
"hook:grounding-before-messaging": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"domain": "safety",
|
|
30
30
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
31
31
|
"installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
|
|
32
|
-
"contentHash": "
|
|
32
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
33
33
|
"since": "2025-01-01"
|
|
34
34
|
},
|
|
35
35
|
"hook:compaction-recovery": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"domain": "identity",
|
|
39
39
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
40
40
|
"installedPath": ".instar/hooks/instar/compaction-recovery.sh",
|
|
41
|
-
"contentHash": "
|
|
41
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
42
42
|
"since": "2025-01-01"
|
|
43
43
|
},
|
|
44
44
|
"hook:external-operation-gate": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"domain": "safety",
|
|
48
48
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
49
49
|
"installedPath": ".instar/hooks/instar/external-operation-gate.js",
|
|
50
|
-
"contentHash": "
|
|
50
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
51
51
|
"since": "2025-01-01"
|
|
52
52
|
},
|
|
53
53
|
"hook:deferral-detector": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"domain": "safety",
|
|
57
57
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
58
58
|
"installedPath": ".instar/hooks/instar/deferral-detector.js",
|
|
59
|
-
"contentHash": "
|
|
59
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
60
60
|
"since": "2025-01-01"
|
|
61
61
|
},
|
|
62
62
|
"hook:self-stop-guard": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"domain": "coherence",
|
|
66
66
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
67
67
|
"installedPath": ".instar/hooks/instar/self-stop-guard.js",
|
|
68
|
-
"contentHash": "
|
|
68
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
69
69
|
"since": "2025-01-01"
|
|
70
70
|
},
|
|
71
71
|
"hook:post-action-reflection": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"domain": "evolution",
|
|
75
75
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
76
76
|
"installedPath": ".instar/hooks/instar/post-action-reflection.js",
|
|
77
|
-
"contentHash": "
|
|
77
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
78
78
|
"since": "2025-01-01"
|
|
79
79
|
},
|
|
80
80
|
"hook:external-communication-guard": {
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"domain": "safety",
|
|
84
84
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
85
85
|
"installedPath": ".instar/hooks/instar/external-communication-guard.js",
|
|
86
|
-
"contentHash": "
|
|
86
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
87
87
|
"since": "2025-01-01"
|
|
88
88
|
},
|
|
89
89
|
"hook:scope-coherence-collector": {
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"domain": "coherence",
|
|
93
93
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
94
94
|
"installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
|
|
95
|
-
"contentHash": "
|
|
95
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
96
96
|
"since": "2025-01-01"
|
|
97
97
|
},
|
|
98
98
|
"hook:scope-coherence-checkpoint": {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"domain": "coherence",
|
|
102
102
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
103
103
|
"installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
|
|
104
|
-
"contentHash": "
|
|
104
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
105
105
|
"since": "2025-01-01"
|
|
106
106
|
},
|
|
107
107
|
"hook:free-text-guard": {
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"domain": "safety",
|
|
111
111
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
112
112
|
"installedPath": ".instar/hooks/instar/free-text-guard.sh",
|
|
113
|
-
"contentHash": "
|
|
113
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
114
114
|
"since": "2025-01-01"
|
|
115
115
|
},
|
|
116
116
|
"hook:claim-intercept": {
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"domain": "coherence",
|
|
120
120
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
121
121
|
"installedPath": ".instar/hooks/instar/claim-intercept.js",
|
|
122
|
-
"contentHash": "
|
|
122
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
123
123
|
"since": "2025-01-01"
|
|
124
124
|
},
|
|
125
125
|
"hook:claim-intercept-response": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"domain": "coherence",
|
|
129
129
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
130
130
|
"installedPath": ".instar/hooks/instar/claim-intercept-response.js",
|
|
131
|
-
"contentHash": "
|
|
131
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
132
132
|
"since": "2025-01-01"
|
|
133
133
|
},
|
|
134
134
|
"hook:stop-gate-router": {
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"domain": "safety",
|
|
138
138
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
139
139
|
"installedPath": ".instar/hooks/instar/stop-gate-router.js",
|
|
140
|
-
"contentHash": "
|
|
140
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
141
141
|
"since": "2025-01-01"
|
|
142
142
|
},
|
|
143
143
|
"hook:auto-approve-permissions": {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"domain": "safety",
|
|
147
147
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
148
148
|
"installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
|
|
149
|
-
"contentHash": "
|
|
149
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
150
150
|
"since": "2025-01-01"
|
|
151
151
|
},
|
|
152
152
|
"job:health-check": {
|
|
@@ -1538,7 +1538,7 @@
|
|
|
1538
1538
|
"type": "subsystem",
|
|
1539
1539
|
"domain": "updates",
|
|
1540
1540
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
1541
|
-
"contentHash": "
|
|
1541
|
+
"contentHash": "b086e0a128b4785908844ebb86e015403fa5bbc4063b30f46f3dffd8333695bb",
|
|
1542
1542
|
"since": "2025-01-01"
|
|
1543
1543
|
},
|
|
1544
1544
|
"subsystem:scheduler": {
|
|
@@ -15,12 +15,22 @@ degradation and brings the session ready anyway, so the pool serves real prompts
|
|
|
15
15
|
empty-prompt detection runs best-effort for that lifetime. This makes the structured-fail
|
|
16
16
|
path consistent with the adjacent canary-infra-error path, which was already non-fatal.
|
|
17
17
|
|
|
18
|
+
instar now manages Claude Code's transcript retention (`cleanupPeriodDays`), setting it to
|
|
19
|
+
14 days for new agents (init) and existing agents (migration, set-if-unset). Claude writes a
|
|
20
|
+
transcript per session — including every fleet background `claude -p` one-shot — and the
|
|
21
|
+
unset default of 30 days let them accumulate (observed ~322k files / 18 GB on one box). This
|
|
22
|
+
caps the pile-up fleet-wide.
|
|
23
|
+
|
|
18
24
|
## What to Tell Your User
|
|
19
25
|
|
|
20
26
|
If the cheaper subscription path went dark and everything fell back to metered credits
|
|
21
27
|
(with repeated "pausing all LLM work" circuit trips) during a busy period: a failed pool
|
|
22
28
|
self-test no longer takes the whole pool down. Nothing for them to do.
|
|
23
29
|
|
|
30
|
+
Nothing required — internal disk hygiene. Chat transcripts older than 14 days are pruned by
|
|
31
|
+
Claude automatically; recent ones (and the ability to resume them) are unaffected. If you set
|
|
32
|
+
your own retention period, it is left as-is.
|
|
33
|
+
|
|
24
34
|
## Summary of New Capabilities
|
|
25
35
|
|
|
26
36
|
- `InteractivePool.spawnOne` treats a startup empty-prompt canary `status: 'fail'` as
|
|
@@ -28,6 +38,8 @@ self-test no longer takes the whole pool down. Nothing for them to do.
|
|
|
28
38
|
ready (no throw, no session kill). A genuinely broken session is still caught by the
|
|
29
39
|
existing per-call retire/replace path.
|
|
30
40
|
|
|
41
|
+
- `.claude/settings.json` `cleanupPeriodDays` is now instar-managed (default 14; set-if-unset).
|
|
42
|
+
|
|
31
43
|
## Evidence
|
|
32
44
|
|
|
33
45
|
`pool-canary-graceful.test.ts`: source guards that the canary-fail branch no longer
|
|
@@ -39,6 +51,9 @@ structured-fail branch was fatal from the start while the adjacent infra-error b
|
|
|
39
51
|
was non-fatal; surfaced as a circuit-tripping outage only once a busy box made the canary
|
|
40
52
|
round-trip slow enough to "fail."
|
|
41
53
|
|
|
54
|
+
`tests/unit/PostUpdateMigrator-cleanupPeriodDays.test.ts` 4/4; adjacent migrateSettings suites
|
|
55
|
+
27/27; `tsc` clean.
|
|
56
|
+
|
|
42
57
|
## Scope (honest)
|
|
43
58
|
|
|
44
59
|
Contained Tier-1 change to one conditional in one file
|
|
@@ -46,3 +61,6 @@ Contained Tier-1 change to one conditional in one file
|
|
|
46
61
|
(subscription-path). Normal (canary-passes) operation is unchanged. No new API/route/
|
|
47
62
|
config/migration. Note: Justin already stabilized this live during the incident; this is
|
|
48
63
|
the durable code fix so it can't recur.
|
|
64
|
+
|
|
65
|
+
Pure disk/file-count hygiene, NOT a CPU fix — transcripts were already Spotlight-excluded.
|
|
66
|
+
Tunable per-agent; reversible.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Side effects — transcript cleanup-period (cleanupPeriodDays)
|
|
2
|
+
|
|
3
|
+
## Change
|
|
4
|
+
|
|
5
|
+
Sets `cleanupPeriodDays: 14` in `.claude/settings.json` — for new agents (init.ts) and
|
|
6
|
+
existing agents (`PostUpdateMigrator.migrateSettings()`, set-if-unset).
|
|
7
|
+
|
|
8
|
+
## Behavioral surface
|
|
9
|
+
|
|
10
|
+
- **New behavior**: Claude Code now prunes chat transcripts under `~/.claude/projects`
|
|
11
|
+
older than 14 days (was the unset default of 30). Caps the per-fleet transcript pile-up.
|
|
12
|
+
- **What does NOT change**: nothing about runtime sessions, hooks, MCP, or the server. This
|
|
13
|
+
is a Claude Code client setting only. Recent transcripts (≤14d) are untouched, so active
|
|
14
|
+
and recently-idle sessions keep full `--resume` support.
|
|
15
|
+
|
|
16
|
+
## Migration / compatibility
|
|
17
|
+
|
|
18
|
+
- Migration is **set-if-unset** (`settings.cleanupPeriodDays === undefined`) — an operator's
|
|
19
|
+
explicit value (including `0` = no cleanup) is never overwritten. Idempotent.
|
|
20
|
+
- No config-schema change, no API, no state. Reversible by editing settings.json.
|
|
21
|
+
|
|
22
|
+
## Risk
|
|
23
|
+
|
|
24
|
+
Low. Worst case: a conversation left idle 14–30 days loses its Claude `--resume` transcript;
|
|
25
|
+
instar's CONTINUATION mechanism reconstructs context across such gaps, so the conversation
|
|
26
|
+
still resumes. Tunable up per-agent if any agent needs longer retention.
|
|
27
|
+
|
|
28
|
+
## Tests
|
|
29
|
+
|
|
30
|
+
`tests/unit/PostUpdateMigrator-cleanupPeriodDays.test.ts` (4/4): set-when-absent, no-override-7,
|
|
31
|
+
respect-explicit-0, idempotent. Adjacent migrateSettings suites green (27/27). `tsc` clean.
|