instar 0.28.49 → 0.28.50
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.js +0 -0
- package/dist/commands/init.js +93 -93
- package/dist/commands/init.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +14 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +46 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/package.json +1 -1
- package/scripts/pre-push-gate.js +6 -3
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/0.28.48.md +52 -0
- package/upgrades/0.28.50.md +59 -0
- package/upgrades/NEXT.md +53 -0
- package/upgrades/side-effects/0.28.49.md +90 -0
- package/upgrades/side-effects/pre-push-gate-ci-scope.md +104 -0
- package/upgrades/side-effects/skill-port-dynamic-resolution.md +104 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-04-
|
|
5
|
-
"instarVersion": "0.28.
|
|
4
|
+
"generatedAt": "2026-04-17T10:26:49.224Z",
|
|
5
|
+
"instarVersion": "0.28.50",
|
|
6
6
|
"entryCount": 186,
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
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": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
60
60
|
"since": "2025-01-01"
|
|
61
61
|
},
|
|
62
62
|
"hook:post-action-reflection": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"domain": "evolution",
|
|
66
66
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
67
67
|
"installedPath": ".instar/hooks/instar/post-action-reflection.js",
|
|
68
|
-
"contentHash": "
|
|
68
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
69
69
|
"since": "2025-01-01"
|
|
70
70
|
},
|
|
71
71
|
"hook:external-communication-guard": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"domain": "safety",
|
|
75
75
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
76
76
|
"installedPath": ".instar/hooks/instar/external-communication-guard.js",
|
|
77
|
-
"contentHash": "
|
|
77
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
78
78
|
"since": "2025-01-01"
|
|
79
79
|
},
|
|
80
80
|
"hook:scope-coherence-collector": {
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"domain": "coherence",
|
|
84
84
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
85
85
|
"installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
|
|
86
|
-
"contentHash": "
|
|
86
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
87
87
|
"since": "2025-01-01"
|
|
88
88
|
},
|
|
89
89
|
"hook:scope-coherence-checkpoint": {
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"domain": "coherence",
|
|
93
93
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
94
94
|
"installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
|
|
95
|
-
"contentHash": "
|
|
95
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
96
96
|
"since": "2025-01-01"
|
|
97
97
|
},
|
|
98
98
|
"hook:free-text-guard": {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"domain": "safety",
|
|
102
102
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
103
103
|
"installedPath": ".instar/hooks/instar/free-text-guard.sh",
|
|
104
|
-
"contentHash": "
|
|
104
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
105
105
|
"since": "2025-01-01"
|
|
106
106
|
},
|
|
107
107
|
"hook:claim-intercept": {
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"domain": "coherence",
|
|
111
111
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
112
112
|
"installedPath": ".instar/hooks/instar/claim-intercept.js",
|
|
113
|
-
"contentHash": "
|
|
113
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
114
114
|
"since": "2025-01-01"
|
|
115
115
|
},
|
|
116
116
|
"hook:claim-intercept-response": {
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"domain": "coherence",
|
|
120
120
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
121
121
|
"installedPath": ".instar/hooks/instar/claim-intercept-response.js",
|
|
122
|
-
"contentHash": "
|
|
122
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
123
123
|
"since": "2025-01-01"
|
|
124
124
|
},
|
|
125
125
|
"hook:auto-approve-permissions": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"domain": "safety",
|
|
129
129
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
130
130
|
"installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
|
|
131
|
-
"contentHash": "
|
|
131
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
132
132
|
"since": "2025-01-01"
|
|
133
133
|
},
|
|
134
134
|
"job:health-check": {
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"type": "job",
|
|
137
137
|
"domain": "monitoring",
|
|
138
138
|
"sourcePath": "src/commands/init.ts",
|
|
139
|
-
"contentHash": "
|
|
139
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
140
140
|
"since": "2025-01-01"
|
|
141
141
|
},
|
|
142
142
|
"job:reflection-trigger": {
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"type": "job",
|
|
145
145
|
"domain": "evolution",
|
|
146
146
|
"sourcePath": "src/commands/init.ts",
|
|
147
|
-
"contentHash": "
|
|
147
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
148
148
|
"since": "2025-01-01"
|
|
149
149
|
},
|
|
150
150
|
"job:relationship-maintenance": {
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
"type": "job",
|
|
153
153
|
"domain": "relationships",
|
|
154
154
|
"sourcePath": "src/commands/init.ts",
|
|
155
|
-
"contentHash": "
|
|
155
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
156
156
|
"since": "2025-01-01"
|
|
157
157
|
},
|
|
158
158
|
"job:feedback-retry": {
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"type": "job",
|
|
161
161
|
"domain": "feedback",
|
|
162
162
|
"sourcePath": "src/commands/init.ts",
|
|
163
|
-
"contentHash": "
|
|
163
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
164
164
|
"since": "2025-01-01"
|
|
165
165
|
},
|
|
166
166
|
"job:insight-harvest": {
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"type": "job",
|
|
169
169
|
"domain": "evolution",
|
|
170
170
|
"sourcePath": "src/commands/init.ts",
|
|
171
|
-
"contentHash": "
|
|
171
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
172
172
|
"since": "2025-01-01"
|
|
173
173
|
},
|
|
174
174
|
"job:evolution-overdue-check": {
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"type": "job",
|
|
177
177
|
"domain": "general",
|
|
178
178
|
"sourcePath": "src/commands/init.ts",
|
|
179
|
-
"contentHash": "
|
|
179
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
180
180
|
"since": "2025-01-01"
|
|
181
181
|
},
|
|
182
182
|
"job:project-map-refresh": {
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"type": "job",
|
|
185
185
|
"domain": "mapping",
|
|
186
186
|
"sourcePath": "src/commands/init.ts",
|
|
187
|
-
"contentHash": "
|
|
187
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
188
188
|
"since": "2025-01-01"
|
|
189
189
|
},
|
|
190
190
|
"job:coherence-audit": {
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
"type": "job",
|
|
193
193
|
"domain": "coherence",
|
|
194
194
|
"sourcePath": "src/commands/init.ts",
|
|
195
|
-
"contentHash": "
|
|
195
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
196
196
|
"since": "2025-01-01"
|
|
197
197
|
},
|
|
198
198
|
"job:degradation-digest": {
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"type": "job",
|
|
201
201
|
"domain": "monitoring",
|
|
202
202
|
"sourcePath": "src/commands/init.ts",
|
|
203
|
-
"contentHash": "
|
|
203
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
204
204
|
"since": "2025-01-01"
|
|
205
205
|
},
|
|
206
206
|
"job:state-integrity-check": {
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
"type": "job",
|
|
209
209
|
"domain": "monitoring",
|
|
210
210
|
"sourcePath": "src/commands/init.ts",
|
|
211
|
-
"contentHash": "
|
|
211
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
212
212
|
"since": "2025-01-01"
|
|
213
213
|
},
|
|
214
214
|
"job:memory-hygiene": {
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"type": "job",
|
|
217
217
|
"domain": "memory",
|
|
218
218
|
"sourcePath": "src/commands/init.ts",
|
|
219
|
-
"contentHash": "
|
|
219
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
220
220
|
"since": "2025-01-01"
|
|
221
221
|
},
|
|
222
222
|
"job:guardian-pulse": {
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"type": "job",
|
|
225
225
|
"domain": "monitoring",
|
|
226
226
|
"sourcePath": "src/commands/init.ts",
|
|
227
|
-
"contentHash": "
|
|
227
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
228
228
|
"since": "2025-01-01"
|
|
229
229
|
},
|
|
230
230
|
"job:session-continuity-check": {
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
"type": "job",
|
|
233
233
|
"domain": "sessions",
|
|
234
234
|
"sourcePath": "src/commands/init.ts",
|
|
235
|
-
"contentHash": "
|
|
235
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
236
236
|
"since": "2025-01-01"
|
|
237
237
|
},
|
|
238
238
|
"job:memory-export": {
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
"type": "job",
|
|
241
241
|
"domain": "memory",
|
|
242
242
|
"sourcePath": "src/commands/init.ts",
|
|
243
|
-
"contentHash": "
|
|
243
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
244
244
|
"since": "2025-01-01"
|
|
245
245
|
},
|
|
246
246
|
"job:git-sync": {
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"type": "job",
|
|
249
249
|
"domain": "coordination",
|
|
250
250
|
"sourcePath": "src/commands/init.ts",
|
|
251
|
-
"contentHash": "
|
|
251
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
252
252
|
"since": "2025-01-01"
|
|
253
253
|
},
|
|
254
254
|
"job:capability-audit": {
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
"type": "job",
|
|
257
257
|
"domain": "general",
|
|
258
258
|
"sourcePath": "src/commands/init.ts",
|
|
259
|
-
"contentHash": "
|
|
259
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
260
260
|
"since": "2025-01-01"
|
|
261
261
|
},
|
|
262
262
|
"job:identity-review": {
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
"type": "job",
|
|
265
265
|
"domain": "general",
|
|
266
266
|
"sourcePath": "src/commands/init.ts",
|
|
267
|
-
"contentHash": "
|
|
267
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
268
268
|
"since": "2025-01-01"
|
|
269
269
|
},
|
|
270
270
|
"job:evolution-proposal-evaluate": {
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
"type": "job",
|
|
273
273
|
"domain": "general",
|
|
274
274
|
"sourcePath": "src/commands/init.ts",
|
|
275
|
-
"contentHash": "
|
|
275
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
276
276
|
"since": "2025-01-01"
|
|
277
277
|
},
|
|
278
278
|
"job:evolution-proposal-implement": {
|
|
@@ -280,7 +280,7 @@
|
|
|
280
280
|
"type": "job",
|
|
281
281
|
"domain": "general",
|
|
282
282
|
"sourcePath": "src/commands/init.ts",
|
|
283
|
-
"contentHash": "
|
|
283
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
284
284
|
"since": "2025-01-01"
|
|
285
285
|
},
|
|
286
286
|
"job:commitment-detection": {
|
|
@@ -288,7 +288,7 @@
|
|
|
288
288
|
"type": "job",
|
|
289
289
|
"domain": "general",
|
|
290
290
|
"sourcePath": "src/commands/init.ts",
|
|
291
|
-
"contentHash": "
|
|
291
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
292
292
|
"since": "2025-01-01"
|
|
293
293
|
},
|
|
294
294
|
"job:dashboard-link-refresh": {
|
|
@@ -296,7 +296,7 @@
|
|
|
296
296
|
"type": "job",
|
|
297
297
|
"domain": "general",
|
|
298
298
|
"sourcePath": "src/commands/init.ts",
|
|
299
|
-
"contentHash": "
|
|
299
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
300
300
|
"since": "2025-01-01"
|
|
301
301
|
},
|
|
302
302
|
"job:overseer-guardian": {
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
"type": "job",
|
|
305
305
|
"domain": "general",
|
|
306
306
|
"sourcePath": "src/commands/init.ts",
|
|
307
|
-
"contentHash": "
|
|
307
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
308
308
|
"since": "2025-01-01"
|
|
309
309
|
},
|
|
310
310
|
"job:overseer-learning": {
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"type": "job",
|
|
313
313
|
"domain": "general",
|
|
314
314
|
"sourcePath": "src/commands/init.ts",
|
|
315
|
-
"contentHash": "
|
|
315
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
316
316
|
"since": "2025-01-01"
|
|
317
317
|
},
|
|
318
318
|
"job:overseer-maintenance": {
|
|
@@ -320,7 +320,7 @@
|
|
|
320
320
|
"type": "job",
|
|
321
321
|
"domain": "general",
|
|
322
322
|
"sourcePath": "src/commands/init.ts",
|
|
323
|
-
"contentHash": "
|
|
323
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
324
324
|
"since": "2025-01-01"
|
|
325
325
|
},
|
|
326
326
|
"job:overseer-infrastructure": {
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
"type": "job",
|
|
329
329
|
"domain": "general",
|
|
330
330
|
"sourcePath": "src/commands/init.ts",
|
|
331
|
-
"contentHash": "
|
|
331
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
332
332
|
"since": "2025-01-01"
|
|
333
333
|
},
|
|
334
334
|
"job:overseer-development": {
|
|
@@ -336,14 +336,14 @@
|
|
|
336
336
|
"type": "job",
|
|
337
337
|
"domain": "general",
|
|
338
338
|
"sourcePath": "src/commands/init.ts",
|
|
339
|
-
"contentHash": "
|
|
339
|
+
"contentHash": "40be492b79a21a4063aea7893d2bd89b82afb9de6966a75762b6604dc88187e4",
|
|
340
340
|
"since": "2025-01-01"
|
|
341
341
|
},
|
|
342
342
|
"skill:autonomous": {
|
|
343
343
|
"id": "skill:autonomous",
|
|
344
344
|
"type": "skill",
|
|
345
345
|
"domain": "skills",
|
|
346
|
-
"sourcePath": ".claude/skills/autonomous/
|
|
346
|
+
"sourcePath": ".claude/skills/autonomous/skill.md",
|
|
347
347
|
"contentHash": "9bc7dc9eddd4e345ed6564eff850898b66358ce309119c3047e6af275cf9070d",
|
|
348
348
|
"since": "2025-01-01"
|
|
349
349
|
},
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
"id": "skill:build",
|
|
352
352
|
"type": "skill",
|
|
353
353
|
"domain": "skills",
|
|
354
|
-
"sourcePath": ".claude/skills/build/
|
|
354
|
+
"sourcePath": ".claude/skills/build/skill.md",
|
|
355
355
|
"contentHash": "5b3557fa3662cf0c7b7bab85a252cc2e567b3fc64a04a92d430374ef1f264ca6",
|
|
356
356
|
"since": "2025-01-01"
|
|
357
357
|
},
|
|
@@ -359,7 +359,7 @@
|
|
|
359
359
|
"id": "skill:secret-setup",
|
|
360
360
|
"type": "skill",
|
|
361
361
|
"domain": "skills",
|
|
362
|
-
"sourcePath": ".claude/skills/secret-setup/
|
|
362
|
+
"sourcePath": ".claude/skills/secret-setup/skill.md",
|
|
363
363
|
"contentHash": "0f4365713d96c98576d19c818701abe96329f3652ed0d8d76ec4e4a1b46dac56",
|
|
364
364
|
"since": "2025-01-01"
|
|
365
365
|
},
|
|
@@ -367,7 +367,7 @@
|
|
|
367
367
|
"id": "skill:setup-wizard",
|
|
368
368
|
"type": "skill",
|
|
369
369
|
"domain": "skills",
|
|
370
|
-
"sourcePath": ".claude/skills/setup-wizard/
|
|
370
|
+
"sourcePath": ".claude/skills/setup-wizard/skill.md",
|
|
371
371
|
"contentHash": "813fd9164514fd11d1bdc67f4dbee02a74679b3ca46bf1b39893c62deb2e58cb",
|
|
372
372
|
"since": "2025-01-01"
|
|
373
373
|
},
|
|
@@ -1432,7 +1432,7 @@
|
|
|
1432
1432
|
"type": "subsystem",
|
|
1433
1433
|
"domain": "updates",
|
|
1434
1434
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
1435
|
-
"contentHash": "
|
|
1435
|
+
"contentHash": "cf8394b7075ab8ec35a2cc330e45f6c728567f11e7a0667b594c4bc6f5ef64b4",
|
|
1436
1436
|
"since": "2025-01-01"
|
|
1437
1437
|
},
|
|
1438
1438
|
"subsystem:scheduler": {
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Upgrade Guide — v0.28.48
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
The job scheduler now injects `$INSTAR_AUTH_TOKEN` into the environment of any
|
|
8
|
+
gate shell it runs when `scheduler.authToken` is configured. Four built-in
|
|
9
|
+
gate scripts (evolution-proposal-evaluate, evolution-proposal-implement,
|
|
10
|
+
evolution-overdue-check, insight-harvest) have been updated to send
|
|
11
|
+
`Authorization: Bearer $INSTAR_AUTH_TOKEN` with their curl calls to the local
|
|
12
|
+
Instar HTTP API.
|
|
13
|
+
|
|
14
|
+
Previously these gates curled `http://127.0.0.1:4041/evolution/...` without
|
|
15
|
+
authentication. `authMiddleware` returned 401, the downstream
|
|
16
|
+
`python3 -c 'json.load(stdin)'` crashed on invalid JSON, and the job was
|
|
17
|
+
skipped every cycle with no error surface. The fix is additive: when
|
|
18
|
+
`authToken` is unset the env var is absent and gates remain identical to
|
|
19
|
+
their prior behavior; when it IS set (the default post-`instar init` state)
|
|
20
|
+
the four affected gates begin succeeding immediately on next scheduler tick.
|
|
21
|
+
|
|
22
|
+
A new optional field `authToken?: string` was added to `JobSchedulerConfig`,
|
|
23
|
+
wired through from `instar.json` via `Config.ts`. No migration required.
|
|
24
|
+
|
|
25
|
+
## What to Tell Your User
|
|
26
|
+
|
|
27
|
+
- **Evolution pipeline unblocked**: "Your evolution jobs start firing real work again — proposal evaluation, proposal implementation, overdue-check, and insight harvesting have all been silently skipping every cycle, and this release fixes that."
|
|
28
|
+
|
|
29
|
+
## Summary of New Capabilities
|
|
30
|
+
|
|
31
|
+
| Capability | How to Use |
|
|
32
|
+
|-----------|-----------|
|
|
33
|
+
| Authenticated gate calls | automatic — gates inherit auth token from scheduler config |
|
|
34
|
+
| Evolution proposal evaluation | automatic — fires on scheduler tick when proposals queued |
|
|
35
|
+
| Evolution proposal implementation | automatic — fires on scheduler tick when proposals approved |
|
|
36
|
+
| Overdue action check | automatic — fires on scheduler tick when actions overdue |
|
|
37
|
+
| Insight harvest | automatic — fires on scheduler tick when learnings accumulated |
|
|
38
|
+
|
|
39
|
+
## Evidence
|
|
40
|
+
|
|
41
|
+
Reproduction: on any instance with `authToken` configured (default post-
|
|
42
|
+
`instar init`), tail `logs/job-scheduler.log` for an evolution job's next
|
|
43
|
+
scheduled tick. Before fix: gate execution stderr contains
|
|
44
|
+
`json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)`
|
|
45
|
+
or a silent 10s timeout, and the job is skipped with no command execution.
|
|
46
|
+
After fix: gate logs show `HTTP/1.1 200 OK` from the authenticated
|
|
47
|
+
localhost call, gate returns 0, command proceeds.
|
|
48
|
+
|
|
49
|
+
Verified in unit tests: `tests/unit/JobScheduler.test.ts` — 2 new tests
|
|
50
|
+
assert the env var is present when authToken configured (`token=<value>`)
|
|
51
|
+
and absent when unset (`token=`), exercising both branches. All 47 tests
|
|
52
|
+
in the scheduler suite pass.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Upgrade Guide — v0.28.50
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
Default skills now use a runtime-expandable `${INSTAR_PORT:-NNNN}` pattern in
|
|
8
|
+
their `http://localhost:PORT/...` URLs instead of a port hardcoded at install
|
|
9
|
+
time. This unblocks agents whose server runs on a non-default port.
|
|
10
|
+
|
|
11
|
+
**Background**: `installBuiltinSkills` templated the server port into each
|
|
12
|
+
generated `.claude/skills/*/SKILL.md` at install time. If the user later
|
|
13
|
+
changed `.instar/config.json#port`, every curl call in every default skill
|
|
14
|
+
continued pointing at the stale port, silently failing with `ECONNREFUSED`.
|
|
15
|
+
One agent running on port 4041 had 25 hardcoded `localhost:4040` references
|
|
16
|
+
across 11 skills, turning short reflection/health-check runs into 75-second
|
|
17
|
+
timeouts.
|
|
18
|
+
|
|
19
|
+
**The fix is twofold**:
|
|
20
|
+
1. `installBuiltinSkills` in `src/commands/init.ts` now emits URLs as
|
|
21
|
+
`http://localhost:${INSTAR_PORT:-4040}/...` so the shell expands the port
|
|
22
|
+
at skill-execute time — respecting `INSTAR_PORT` if set, otherwise
|
|
23
|
+
falling back to the port configured at install.
|
|
24
|
+
2. A new `PostUpdateMigrator.migrateSkillPortHardcoding()` scans existing
|
|
25
|
+
default-skill files for hardcoded `localhost:NNNN` URLs and rewrites
|
|
26
|
+
them to the dynamic pattern. It is idempotent, scoped to the known
|
|
27
|
+
default-skill set (so custom skills are never touched), and preserves
|
|
28
|
+
the original port as the fallback default.
|
|
29
|
+
|
|
30
|
+
## What to Tell Your User
|
|
31
|
+
|
|
32
|
+
- **Skills survive a port change**: "When you change your Instar server port, your default skills keep working. Before, every curl call in every default skill silently failed with a connection-refused error until you hand-edited each file. Now the port is resolved at the moment the skill runs."
|
|
33
|
+
|
|
34
|
+
## Summary of New Capabilities
|
|
35
|
+
|
|
36
|
+
| Capability | How to Use |
|
|
37
|
+
|-----------|-----------|
|
|
38
|
+
| Runtime port resolution in default skills | automatic — new installs emit the dynamic pattern |
|
|
39
|
+
| Auto-migration of existing skills | automatic — runs on next post-update migration |
|
|
40
|
+
| `INSTAR_PORT` override | `export INSTAR_PORT=4041` before running skill commands |
|
|
41
|
+
|
|
42
|
+
## Evidence
|
|
43
|
+
|
|
44
|
+
Reproduction: install instar with server port 4040, then change
|
|
45
|
+
`.instar/config.json#port` to 4041. Before fix: `.claude/skills/reflect/SKILL.md`
|
|
46
|
+
still calls `http://localhost:4040/reflection/record` — every curl returns
|
|
47
|
+
`ECONNREFUSED`, and skills that poll `/sessions`, `/relationships`, or
|
|
48
|
+
`/capabilities` return empty. After fix: the same URL reads
|
|
49
|
+
`http://localhost:${INSTAR_PORT:-4040}/reflection/record`, and shell
|
|
50
|
+
expansion hits the configured port whenever `INSTAR_PORT` is exported.
|
|
51
|
+
|
|
52
|
+
Verified in unit tests:
|
|
53
|
+
`tests/unit/PostUpdateMigrator-skillPortHardcoding.test.ts` — 6 tests
|
|
54
|
+
covering the migration happy path, idempotency, custom-skill preservation,
|
|
55
|
+
fallback port preservation, and the missing-file branch. All pass.
|
|
56
|
+
|
|
57
|
+
Template-side verified by invoking `installBuiltinSkills` directly and
|
|
58
|
+
grepping the emitted content: 13 of 14 default skills now contain
|
|
59
|
+
`localhost:${INSTAR_PORT:-4040}` and zero contain bare `localhost:4040`.
|
package/upgrades/NEXT.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- bump: patch -->
|
|
4
|
+
<!-- Valid values: patch, minor, major -->
|
|
5
|
+
<!-- patch = bug fixes, refactors, test additions, doc updates -->
|
|
6
|
+
<!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
|
|
7
|
+
<!-- major = breaking changes to existing APIs or behavior -->
|
|
8
|
+
|
|
9
|
+
## What Changed
|
|
10
|
+
|
|
11
|
+
<!-- Describe what changed technically. What new features, APIs, behavioral changes? -->
|
|
12
|
+
<!-- Write this for the AGENT — they need to understand the system deeply. -->
|
|
13
|
+
|
|
14
|
+
## What to Tell Your User
|
|
15
|
+
|
|
16
|
+
<!-- Write talking points the agent should relay to their user. -->
|
|
17
|
+
<!-- This should be warm, conversational, user-facing — not a changelog. -->
|
|
18
|
+
<!-- Focus on what THEY can now do, not internal plumbing. -->
|
|
19
|
+
<!-- -->
|
|
20
|
+
<!-- PROHIBITED in this section (will fail validation): -->
|
|
21
|
+
<!-- camelCase config keys: silentReject, maxRetries, telegramNotify -->
|
|
22
|
+
<!-- Inline code backtick references like silentReject: false -->
|
|
23
|
+
<!-- Fenced code blocks -->
|
|
24
|
+
<!-- Instructions to edit files or run commands -->
|
|
25
|
+
<!-- -->
|
|
26
|
+
<!-- CORRECT style: "I can turn that on for you" not "set X to false" -->
|
|
27
|
+
<!-- The agent relays this to their user — keep it human. -->
|
|
28
|
+
|
|
29
|
+
- **[Feature name]**: "[Brief, friendly description of what this means for the user]"
|
|
30
|
+
|
|
31
|
+
## Summary of New Capabilities
|
|
32
|
+
|
|
33
|
+
| Capability | How to Use |
|
|
34
|
+
|-----------|-----------|
|
|
35
|
+
| [Capability] | [Endpoint, command, or "automatic"] |
|
|
36
|
+
|
|
37
|
+
## Evidence
|
|
38
|
+
|
|
39
|
+
<!-- REQUIRED if this release claims to fix a bug. -->
|
|
40
|
+
<!-- Unit tests passing is NOT evidence. Provide ONE of: -->
|
|
41
|
+
<!-- (a) Reproduction steps + observed before/after on a live system. -->
|
|
42
|
+
<!-- Include log excerpts, observed command output, or behavior -->
|
|
43
|
+
<!-- description. Make it specific enough that a future reader can -->
|
|
44
|
+
<!-- re-run it and see the same thing. -->
|
|
45
|
+
<!-- (b) "Not reproducible in dev — [concrete reason]" if the failure -->
|
|
46
|
+
<!-- mode truly can't be exercised locally (race conditions, -->
|
|
47
|
+
<!-- event-driven paths requiring external signals, etc). -->
|
|
48
|
+
<!-- -->
|
|
49
|
+
<!-- If this release doesn't claim a bug fix (pure feature / refactor), -->
|
|
50
|
+
<!-- leave this section blank or delete it — it's only enforced when -->
|
|
51
|
+
<!-- "What Changed" describes a fix. -->
|
|
52
|
+
|
|
53
|
+
[Describe reproduction + verified fix, OR "Not reproducible in dev — [concrete reason]"]
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# 0.28.49 — Evolution Gate Auth Injection
|
|
2
|
+
|
|
3
|
+
## What Changed
|
|
4
|
+
|
|
5
|
+
Four built-in gate scripts that call the local Instar HTTP API now receive an
|
|
6
|
+
`$INSTAR_AUTH_TOKEN` environment variable when the scheduler runs them, and
|
|
7
|
+
send `Authorization: Bearer $INSTAR_AUTH_TOKEN` with their curl requests.
|
|
8
|
+
|
|
9
|
+
Affected gates: `evolution-proposal-evaluate`, `evolution-proposal-implement`,
|
|
10
|
+
`evolution-overdue-check`, `insight-harvest`.
|
|
11
|
+
|
|
12
|
+
Behind it: `JobScheduler.runGateAsync()` now builds a per-call env object,
|
|
13
|
+
merging `process.env` with `INSTAR_AUTH_TOKEN` when `scheduler.authToken` is
|
|
14
|
+
configured. `JobSchedulerConfig` gained an optional `authToken` field, wired
|
|
15
|
+
up from `instar.json` via `Config.ts`.
|
|
16
|
+
|
|
17
|
+
## Why
|
|
18
|
+
|
|
19
|
+
Three evolution jobs (`evolution-proposal-evaluate`,
|
|
20
|
+
`evolution-proposal-implement`, `evolution-overdue-check`) plus insight-harvest
|
|
21
|
+
were silently failing every gate check: they curled a localhost endpoint,
|
|
22
|
+
`authMiddleware` returned 401, and the downstream `python3 -c 'json.load(...)'`
|
|
23
|
+
crashed on invalid JSON. The job was then skipped — every cycle, no error
|
|
24
|
+
surface, no telemetry signal other than "this job never does anything."
|
|
25
|
+
|
|
26
|
+
The research cluster
|
|
27
|
+
`cluster-evolution-pipeline-jobs-permanently-skip-gate-scripts-missin` traced
|
|
28
|
+
this to the missing Authorization header and proposed the env-var injection
|
|
29
|
+
pattern.
|
|
30
|
+
|
|
31
|
+
## Side-Effects Review
|
|
32
|
+
|
|
33
|
+
### Intended
|
|
34
|
+
- Gates that depend on authenticated localhost endpoints now succeed when an
|
|
35
|
+
`authToken` is configured.
|
|
36
|
+
- Four evolution-pipeline jobs begin firing actual work on next scheduler tick.
|
|
37
|
+
|
|
38
|
+
### Unintended — Risks Considered
|
|
39
|
+
|
|
40
|
+
**Env leak.** The auth token is exposed to gate shell commands via environment
|
|
41
|
+
variable. Any gate command inherits it. Gate commands are defined in
|
|
42
|
+
`src/commands/init.ts` (built-in) or `instar.json` (user-defined). In a
|
|
43
|
+
single-user local deployment the scope is identical to `process.env` — a gate
|
|
44
|
+
already has full shell access to the machine. No elevation.
|
|
45
|
+
|
|
46
|
+
**Gates that don't need auth.** Unaffected. The env var is present but unused
|
|
47
|
+
when the gate doesn't reference it. Curl without a bearer header still hits
|
|
48
|
+
allowlisted endpoints (`/health`, `/ping`) without issue.
|
|
49
|
+
|
|
50
|
+
**Configs without authToken.** The env var is not set. Gates that reference
|
|
51
|
+
`$INSTAR_AUTH_TOKEN` send `Authorization: Bearer ` (empty bearer), which
|
|
52
|
+
`authMiddleware` treats as unauthorized — same as before. No regression, no
|
|
53
|
+
new failure mode. Public-mode deployments still work because they don't have
|
|
54
|
+
`authToken` configured and the server doesn't require one.
|
|
55
|
+
|
|
56
|
+
**Token visibility in process listings.** `ps -eE` on Linux can expose
|
|
57
|
+
environment variables of running processes. The token is only present in the
|
|
58
|
+
gate child process for the duration of the gate (<10s, enforced by timeout).
|
|
59
|
+
The same token is already in `instar.json` on disk; `ps` leakage is a lesser
|
|
60
|
+
exposure than filesystem read.
|
|
61
|
+
|
|
62
|
+
### Not Unintended
|
|
63
|
+
- No breaking change for users without `authToken` configured.
|
|
64
|
+
- No schema migration — `JobSchedulerConfig.authToken` is optional.
|
|
65
|
+
- No change to gate timing, retry semantics, or failure-handling.
|
|
66
|
+
- No change to non-gate code paths (the token is only injected in
|
|
67
|
+
`runGateAsync`, not in `runCommandAsync` or the main job command execution).
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Backwards compatible. Existing `instar.json` without `authToken` unchanged
|
|
72
|
+
behavior.
|
|
73
|
+
- Forwards compatible. When `instar init` runs, it generates `instar.json`
|
|
74
|
+
with a fresh `authToken`, so new installations work out of the box.
|
|
75
|
+
|
|
76
|
+
## Verification Artifacts
|
|
77
|
+
|
|
78
|
+
- Build: `npm run build` — passes (tsc clean + manifest regenerated).
|
|
79
|
+
- Tests: `npm test -- JobScheduler.test.ts` — 47 tests pass including 2 new:
|
|
80
|
+
1. Gate sees `token=<configured-value>` when `authToken` is set.
|
|
81
|
+
2. Gate sees empty `token=` when `authToken` is unset.
|
|
82
|
+
- Manual: built-in manifest shows 4 updated gate definitions with the
|
|
83
|
+
Authorization header.
|
|
84
|
+
|
|
85
|
+
## Summary of New Capabilities
|
|
86
|
+
|
|
87
|
+
Evolution pipeline jobs and insight-harvest now run to completion when an
|
|
88
|
+
auth token is configured — which is the default post-`instar init` state.
|
|
89
|
+
Previously-silent failures become visible work. No new user-facing commands
|
|
90
|
+
or config fields beyond the documented optional `authToken`.
|