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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.413",
3
+ "version": "1.3.414",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-07T22:15:02.666Z",
5
- "instarVersion": "1.3.413",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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": "91751f5d379223d5219959314caaeff35e6534ade7acf5193b5768bc1fc79198",
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.