instar 1.3.201 → 1.3.203
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 +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/route.d.ts.map +1 -1
- package/dist/commands/route.js +2 -0
- package/dist/commands/route.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +25 -10
- package/dist/commands/server.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +47 -12
- package/dist/commands/setup.js.map +1 -1
- package/dist/core/Config.d.ts +12 -2
- package/dist/core/Config.d.ts.map +1 -1
- package/dist/core/Config.js +36 -10
- package/dist/core/Config.js.map +1 -1
- package/dist/core/FeatureRegistry.d.ts.map +1 -1
- package/dist/core/FeatureRegistry.js +6 -0
- package/dist/core/FeatureRegistry.js.map +1 -1
- package/dist/core/FrameworkSessionStore.d.ts +2 -9
- package/dist/core/FrameworkSessionStore.d.ts.map +1 -1
- package/dist/core/FrameworkSessionStore.js +16 -0
- package/dist/core/FrameworkSessionStore.js.map +1 -1
- package/dist/core/GeminiCliIntelligenceProvider.d.ts +44 -0
- package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -0
- package/dist/core/GeminiCliIntelligenceProvider.js +65 -0
- package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -0
- package/dist/core/IdentityRenderer.d.ts.map +1 -1
- package/dist/core/IdentityRenderer.js +6 -3
- package/dist/core/IdentityRenderer.js.map +1 -1
- package/dist/core/LeaseCoordinator.d.ts +40 -0
- package/dist/core/LeaseCoordinator.d.ts.map +1 -1
- package/dist/core/LeaseCoordinator.js +54 -0
- package/dist/core/LeaseCoordinator.js.map +1 -1
- package/dist/core/LocalLeaseStore.d.ts +11 -0
- package/dist/core/LocalLeaseStore.d.ts.map +1 -1
- package/dist/core/LocalLeaseStore.js +18 -0
- package/dist/core/LocalLeaseStore.js.map +1 -1
- package/dist/core/MultiMachineCoordinator.d.ts +35 -0
- package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
- package/dist/core/MultiMachineCoordinator.js +94 -0
- package/dist/core/MultiMachineCoordinator.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +7 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/PreCompactionFlush.d.ts +3 -1
- package/dist/core/PreCompactionFlush.d.ts.map +1 -1
- package/dist/core/PreCompactionFlush.js +3 -1
- package/dist/core/PreCompactionFlush.js.map +1 -1
- package/dist/core/ResumeValidator.d.ts +1 -1
- package/dist/core/ResumeValidator.d.ts.map +1 -1
- package/dist/core/SqliteRegistry.d.ts +59 -0
- package/dist/core/SqliteRegistry.d.ts.map +1 -0
- package/dist/core/SqliteRegistry.js +97 -0
- package/dist/core/SqliteRegistry.js.map +1 -0
- package/dist/core/StopGateDb.d.ts +2 -0
- package/dist/core/StopGateDb.d.ts.map +1 -1
- package/dist/core/StopGateDb.js +22 -0
- package/dist/core/StopGateDb.js.map +1 -1
- package/dist/core/TopicFrameworksStore.d.ts.map +1 -1
- package/dist/core/TopicFrameworksStore.js +1 -0
- package/dist/core/TopicFrameworksStore.js.map +1 -1
- package/dist/core/TopicResumeMap.d.ts.map +1 -1
- package/dist/core/TopicResumeMap.js +13 -0
- package/dist/core/TopicResumeMap.js.map +1 -1
- package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
- package/dist/core/frameworkSessionLaunch.js +73 -0
- package/dist/core/frameworkSessionLaunch.js.map +1 -1
- package/dist/core/intelligenceProviderFactory.d.ts +8 -1
- package/dist/core/intelligenceProviderFactory.d.ts.map +1 -1
- package/dist/core/intelligenceProviderFactory.js +13 -1
- package/dist/core/intelligenceProviderFactory.js.map +1 -1
- package/dist/core/types.d.ts +6 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/memory/SemanticMemory.d.ts.map +1 -1
- package/dist/memory/SemanticMemory.js +8 -0
- package/dist/memory/SemanticMemory.js.map +1 -1
- package/dist/memory/TopicMemory.d.ts.map +1 -1
- package/dist/memory/TopicMemory.js +7 -0
- package/dist/memory/TopicMemory.js.map +1 -1
- package/dist/messaging/MessageProcessingLedger.d.ts.map +1 -1
- package/dist/messaging/MessageProcessingLedger.js +7 -0
- package/dist/messaging/MessageProcessingLedger.js.map +1 -1
- package/dist/messaging/imessage/NativeBackend.d.ts.map +1 -1
- package/dist/messaging/imessage/NativeBackend.js +6 -0
- package/dist/messaging/imessage/NativeBackend.js.map +1 -1
- package/dist/messaging/pending-relay-store.d.ts.map +1 -1
- package/dist/messaging/pending-relay-store.js +6 -0
- package/dist/messaging/pending-relay-store.js.map +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.d.ts +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.d.ts.map +1 -1
- package/dist/messaging/shared/telegramRelayPrompt.js.map +1 -1
- package/dist/monitoring/CompactionSentinel.d.ts +2 -0
- package/dist/monitoring/CompactionSentinel.d.ts.map +1 -1
- package/dist/monitoring/CompactionSentinel.js +10 -0
- package/dist/monitoring/CompactionSentinel.js.map +1 -1
- package/dist/monitoring/CorrectionLedger.d.ts.map +1 -1
- package/dist/monitoring/CorrectionLedger.js +6 -0
- package/dist/monitoring/CorrectionLedger.js.map +1 -1
- package/dist/monitoring/FailureLedger.d.ts.map +1 -1
- package/dist/monitoring/FailureLedger.js +6 -0
- package/dist/monitoring/FailureLedger.js.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.js +6 -0
- package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
- package/dist/monitoring/FrameworkIssueLedger.d.ts.map +1 -1
- package/dist/monitoring/FrameworkIssueLedger.js +6 -0
- package/dist/monitoring/FrameworkIssueLedger.js.map +1 -1
- package/dist/monitoring/RateLimitSentinel.d.ts +2 -0
- package/dist/monitoring/RateLimitSentinel.d.ts.map +1 -1
- package/dist/monitoring/RateLimitSentinel.js +15 -1
- package/dist/monitoring/RateLimitSentinel.js.map +1 -1
- package/dist/monitoring/RevertDetector.d.ts.map +1 -1
- package/dist/monitoring/RevertDetector.js +7 -1
- package/dist/monitoring/RevertDetector.js.map +1 -1
- package/dist/monitoring/SessionReaper.d.ts +1 -1
- package/dist/monitoring/SessionReaper.d.ts.map +1 -1
- package/dist/monitoring/SessionReaper.js +7 -0
- package/dist/monitoring/SessionReaper.js.map +1 -1
- package/dist/monitoring/TokenLedger.d.ts.map +1 -1
- package/dist/monitoring/TokenLedger.js +8 -0
- package/dist/monitoring/TokenLedger.js.map +1 -1
- package/dist/monitoring/frameworkActivitySignals.d.ts.map +1 -1
- package/dist/monitoring/frameworkActivitySignals.js +17 -0
- package/dist/monitoring/frameworkActivitySignals.js.map +1 -1
- package/dist/monitoring/frameworkProcessSignals.d.ts.map +1 -1
- package/dist/monitoring/frameworkProcessSignals.js +15 -0
- package/dist/monitoring/frameworkProcessSignals.js.map +1 -1
- package/dist/providers/adapters/gemini-cli/capabilities.d.ts +28 -0
- package/dist/providers/adapters/gemini-cli/capabilities.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/capabilities.js +38 -0
- package/dist/providers/adapters/gemini-cli/capabilities.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/config.d.ts +50 -0
- package/dist/providers/adapters/gemini-cli/config.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/config.js +36 -0
- package/dist/providers/adapters/gemini-cli/config.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.d.ts +19 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.js +67 -0
- package/dist/providers/adapters/gemini-cli/control/geminiHardKill.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/credentials.d.ts +40 -0
- package/dist/providers/adapters/gemini-cli/credentials.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/credentials.js +41 -0
- package/dist/providers/adapters/gemini-cli/credentials.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/errors.d.ts +23 -0
- package/dist/providers/adapters/gemini-cli/errors.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/errors.js +41 -0
- package/dist/providers/adapters/gemini-cli/errors.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/index.d.ts +38 -0
- package/dist/providers/adapters/gemini-cli/index.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/index.js +66 -0
- package/dist/providers/adapters/gemini-cli/index.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/models.d.ts +29 -0
- package/dist/providers/adapters/gemini-cli/models.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/models.js +43 -0
- package/dist/providers/adapters/gemini-cli/models.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.d.ts +26 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.js +52 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionId.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.d.ts +72 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.js +202 -0
- package/dist/providers/adapters/gemini-cli/observability/sessionPaths.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts +79 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js +221 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts +21 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.d.ts.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js +80 -0
- package/dist/providers/adapters/gemini-cli/transport/oneShotCompletion.js.map +1 -0
- package/dist/providers/parity/rules/skillParityRule.d.ts.map +1 -1
- package/dist/providers/parity/rules/skillParityRule.js +8 -0
- package/dist/providers/parity/rules/skillParityRule.js.map +1 -1
- package/dist/providers/uxConfirm/PreferenceStore.d.ts +1 -0
- package/dist/providers/uxConfirm/PreferenceStore.d.ts.map +1 -1
- package/dist/providers/uxConfirm/PreferenceStore.js +13 -0
- package/dist/providers/uxConfirm/PreferenceStore.js.map +1 -1
- package/dist/threadline/SpawnLedger.d.ts +1 -0
- package/dist/threadline/SpawnLedger.d.ts.map +1 -1
- package/dist/threadline/SpawnLedger.js +13 -0
- package/dist/threadline/SpawnLedger.js.map +1 -1
- package/dist/threadline/ThreadResumeMap.d.ts.map +1 -1
- package/dist/threadline/ThreadResumeMap.js +14 -0
- package/dist/threadline/ThreadResumeMap.js.map +1 -1
- package/dist/threadline/relay/RegistryStore.d.ts.map +1 -1
- package/dist/threadline/relay/RegistryStore.js +6 -0
- package/dist/threadline/relay/RegistryStore.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +50 -50
- package/src/templates/scripts/convergence-check.sh +49 -0
- package/upgrades/1.3.202.md +65 -0
- package/upgrades/1.3.203.md +30 -0
- package/upgrades/side-effects/APPRENTICESHIP-STEP2-GEMINI-RUNTIME-ADAPTER-SPEC.md +78 -0
- package/upgrades/side-effects/evo003-revertdetector-git-arg.md +106 -0
- package/upgrades/side-effects/git-less-lease-convergence.md +31 -0
- package/upgrades/side-effects/sqlite-close-on-exit-registry.md +27 -0
- package/upgrades/side-effects/time-awareness-component4-reporting-nudge.md +20 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-02T14:38:50.327Z",
|
|
5
|
+
"instarVersion": "1.3.203",
|
|
6
6
|
"entryCount": 194,
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
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": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
123
123
|
"since": "2025-01-01"
|
|
124
124
|
},
|
|
125
125
|
"hook:stop-gate-router": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"domain": "safety",
|
|
129
129
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
130
130
|
"installedPath": ".instar/hooks/instar/stop-gate-router.js",
|
|
131
|
-
"contentHash": "
|
|
131
|
+
"contentHash": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
132
132
|
"since": "2025-01-01"
|
|
133
133
|
},
|
|
134
134
|
"hook:auto-approve-permissions": {
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"domain": "safety",
|
|
138
138
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
139
139
|
"installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
|
|
140
|
-
"contentHash": "
|
|
140
|
+
"contentHash": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
141
141
|
"since": "2025-01-01"
|
|
142
142
|
},
|
|
143
143
|
"job:health-check": {
|
|
@@ -769,7 +769,7 @@
|
|
|
769
769
|
"type": "cli-command",
|
|
770
770
|
"domain": "setup",
|
|
771
771
|
"sourcePath": "src/cli.ts",
|
|
772
|
-
"contentHash": "
|
|
772
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
773
773
|
"since": "2025-01-01"
|
|
774
774
|
},
|
|
775
775
|
"cli:setup": {
|
|
@@ -777,7 +777,7 @@
|
|
|
777
777
|
"type": "cli-command",
|
|
778
778
|
"domain": "setup",
|
|
779
779
|
"sourcePath": "src/cli.ts",
|
|
780
|
-
"contentHash": "
|
|
780
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
781
781
|
"since": "2025-01-01"
|
|
782
782
|
},
|
|
783
783
|
"cli:add": {
|
|
@@ -785,7 +785,7 @@
|
|
|
785
785
|
"type": "cli-command",
|
|
786
786
|
"domain": "setup",
|
|
787
787
|
"sourcePath": "src/cli.ts",
|
|
788
|
-
"contentHash": "
|
|
788
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
789
789
|
"since": "2025-01-01"
|
|
790
790
|
},
|
|
791
791
|
"cli:backup": {
|
|
@@ -793,7 +793,7 @@
|
|
|
793
793
|
"type": "cli-command",
|
|
794
794
|
"domain": "operations",
|
|
795
795
|
"sourcePath": "src/cli.ts",
|
|
796
|
-
"contentHash": "
|
|
796
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
797
797
|
"since": "2025-01-01"
|
|
798
798
|
},
|
|
799
799
|
"cli:git": {
|
|
@@ -801,7 +801,7 @@
|
|
|
801
801
|
"type": "cli-command",
|
|
802
802
|
"domain": "coordination",
|
|
803
803
|
"sourcePath": "src/cli.ts",
|
|
804
|
-
"contentHash": "
|
|
804
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
805
805
|
"since": "2025-01-01"
|
|
806
806
|
},
|
|
807
807
|
"cli:memory": {
|
|
@@ -809,7 +809,7 @@
|
|
|
809
809
|
"type": "cli-command",
|
|
810
810
|
"domain": "memory",
|
|
811
811
|
"sourcePath": "src/cli.ts",
|
|
812
|
-
"contentHash": "
|
|
812
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
813
813
|
"since": "2025-01-01"
|
|
814
814
|
},
|
|
815
815
|
"cli:knowledge": {
|
|
@@ -817,7 +817,7 @@
|
|
|
817
817
|
"type": "cli-command",
|
|
818
818
|
"domain": "memory",
|
|
819
819
|
"sourcePath": "src/cli.ts",
|
|
820
|
-
"contentHash": "
|
|
820
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
821
821
|
"since": "2025-01-01"
|
|
822
822
|
},
|
|
823
823
|
"cli:semantic": {
|
|
@@ -825,7 +825,7 @@
|
|
|
825
825
|
"type": "cli-command",
|
|
826
826
|
"domain": "memory",
|
|
827
827
|
"sourcePath": "src/cli.ts",
|
|
828
|
-
"contentHash": "
|
|
828
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
829
829
|
"since": "2025-01-01"
|
|
830
830
|
},
|
|
831
831
|
"cli:intent": {
|
|
@@ -833,7 +833,7 @@
|
|
|
833
833
|
"type": "cli-command",
|
|
834
834
|
"domain": "intent",
|
|
835
835
|
"sourcePath": "src/cli.ts",
|
|
836
|
-
"contentHash": "
|
|
836
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
837
837
|
"since": "2025-01-01"
|
|
838
838
|
},
|
|
839
839
|
"cli:feedback": {
|
|
@@ -841,7 +841,7 @@
|
|
|
841
841
|
"type": "cli-command",
|
|
842
842
|
"domain": "feedback",
|
|
843
843
|
"sourcePath": "src/cli.ts",
|
|
844
|
-
"contentHash": "
|
|
844
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
845
845
|
"since": "2025-01-01"
|
|
846
846
|
},
|
|
847
847
|
"cli:server": {
|
|
@@ -849,7 +849,7 @@
|
|
|
849
849
|
"type": "cli-command",
|
|
850
850
|
"domain": "server",
|
|
851
851
|
"sourcePath": "src/cli.ts",
|
|
852
|
-
"contentHash": "
|
|
852
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
853
853
|
"since": "2025-01-01"
|
|
854
854
|
},
|
|
855
855
|
"cli:status": {
|
|
@@ -857,7 +857,7 @@
|
|
|
857
857
|
"type": "cli-command",
|
|
858
858
|
"domain": "monitoring",
|
|
859
859
|
"sourcePath": "src/cli.ts",
|
|
860
|
-
"contentHash": "
|
|
860
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
861
861
|
"since": "2025-01-01"
|
|
862
862
|
},
|
|
863
863
|
"cli:user": {
|
|
@@ -865,7 +865,7 @@
|
|
|
865
865
|
"type": "cli-command",
|
|
866
866
|
"domain": "users",
|
|
867
867
|
"sourcePath": "src/cli.ts",
|
|
868
|
-
"contentHash": "
|
|
868
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
869
869
|
"since": "2025-01-01"
|
|
870
870
|
},
|
|
871
871
|
"cli:relationship": {
|
|
@@ -873,7 +873,7 @@
|
|
|
873
873
|
"type": "cli-command",
|
|
874
874
|
"domain": "relationships",
|
|
875
875
|
"sourcePath": "src/cli.ts",
|
|
876
|
-
"contentHash": "
|
|
876
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
877
877
|
"since": "2025-01-01"
|
|
878
878
|
},
|
|
879
879
|
"cli:job": {
|
|
@@ -881,7 +881,7 @@
|
|
|
881
881
|
"type": "cli-command",
|
|
882
882
|
"domain": "scheduling",
|
|
883
883
|
"sourcePath": "src/cli.ts",
|
|
884
|
-
"contentHash": "
|
|
884
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
885
885
|
"since": "2025-01-01"
|
|
886
886
|
},
|
|
887
887
|
"cli:lifeline": {
|
|
@@ -889,7 +889,7 @@
|
|
|
889
889
|
"type": "cli-command",
|
|
890
890
|
"domain": "communication",
|
|
891
891
|
"sourcePath": "src/cli.ts",
|
|
892
|
-
"contentHash": "
|
|
892
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
893
893
|
"since": "2025-01-01"
|
|
894
894
|
},
|
|
895
895
|
"cli:list": {
|
|
@@ -897,7 +897,7 @@
|
|
|
897
897
|
"type": "cli-command",
|
|
898
898
|
"domain": "monitoring",
|
|
899
899
|
"sourcePath": "src/cli.ts",
|
|
900
|
-
"contentHash": "
|
|
900
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
901
901
|
"since": "2025-01-01"
|
|
902
902
|
},
|
|
903
903
|
"cli:autostart": {
|
|
@@ -905,7 +905,7 @@
|
|
|
905
905
|
"type": "cli-command",
|
|
906
906
|
"domain": "operations",
|
|
907
907
|
"sourcePath": "src/cli.ts",
|
|
908
|
-
"contentHash": "
|
|
908
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
909
909
|
"since": "2025-01-01"
|
|
910
910
|
},
|
|
911
911
|
"cli:migrate": {
|
|
@@ -913,7 +913,7 @@
|
|
|
913
913
|
"type": "cli-command",
|
|
914
914
|
"domain": "updates",
|
|
915
915
|
"sourcePath": "src/cli.ts",
|
|
916
|
-
"contentHash": "
|
|
916
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
917
917
|
"since": "2025-01-01"
|
|
918
918
|
},
|
|
919
919
|
"cli:machines": {
|
|
@@ -921,7 +921,7 @@
|
|
|
921
921
|
"type": "cli-command",
|
|
922
922
|
"domain": "coordination",
|
|
923
923
|
"sourcePath": "src/cli.ts",
|
|
924
|
-
"contentHash": "
|
|
924
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
925
925
|
"since": "2025-01-01"
|
|
926
926
|
},
|
|
927
927
|
"cli:whoami": {
|
|
@@ -929,7 +929,7 @@
|
|
|
929
929
|
"type": "cli-command",
|
|
930
930
|
"domain": "identity",
|
|
931
931
|
"sourcePath": "src/cli.ts",
|
|
932
|
-
"contentHash": "
|
|
932
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
933
933
|
"since": "2025-01-01"
|
|
934
934
|
},
|
|
935
935
|
"cli:pair": {
|
|
@@ -937,7 +937,7 @@
|
|
|
937
937
|
"type": "cli-command",
|
|
938
938
|
"domain": "coordination",
|
|
939
939
|
"sourcePath": "src/cli.ts",
|
|
940
|
-
"contentHash": "
|
|
940
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
941
941
|
"since": "2025-01-01"
|
|
942
942
|
},
|
|
943
943
|
"cli:join": {
|
|
@@ -945,7 +945,7 @@
|
|
|
945
945
|
"type": "cli-command",
|
|
946
946
|
"domain": "coordination",
|
|
947
947
|
"sourcePath": "src/cli.ts",
|
|
948
|
-
"contentHash": "
|
|
948
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
949
949
|
"since": "2025-01-01"
|
|
950
950
|
},
|
|
951
951
|
"cli:wakeup": {
|
|
@@ -953,7 +953,7 @@
|
|
|
953
953
|
"type": "cli-command",
|
|
954
954
|
"domain": "coordination",
|
|
955
955
|
"sourcePath": "src/cli.ts",
|
|
956
|
-
"contentHash": "
|
|
956
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
957
957
|
"since": "2025-01-01"
|
|
958
958
|
},
|
|
959
959
|
"cli:leave": {
|
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
"type": "cli-command",
|
|
962
962
|
"domain": "coordination",
|
|
963
963
|
"sourcePath": "src/cli.ts",
|
|
964
|
-
"contentHash": "
|
|
964
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
965
965
|
"since": "2025-01-01"
|
|
966
966
|
},
|
|
967
967
|
"cli:doctor": {
|
|
@@ -969,7 +969,7 @@
|
|
|
969
969
|
"type": "cli-command",
|
|
970
970
|
"domain": "monitoring",
|
|
971
971
|
"sourcePath": "src/cli.ts",
|
|
972
|
-
"contentHash": "
|
|
972
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
973
973
|
"since": "2025-01-01"
|
|
974
974
|
},
|
|
975
975
|
"cli:review": {
|
|
@@ -977,7 +977,7 @@
|
|
|
977
977
|
"type": "cli-command",
|
|
978
978
|
"domain": "monitoring",
|
|
979
979
|
"sourcePath": "src/cli.ts",
|
|
980
|
-
"contentHash": "
|
|
980
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
981
981
|
"since": "2025-01-01"
|
|
982
982
|
},
|
|
983
983
|
"cli:nuke": {
|
|
@@ -985,7 +985,7 @@
|
|
|
985
985
|
"type": "cli-command",
|
|
986
986
|
"domain": "operations",
|
|
987
987
|
"sourcePath": "src/cli.ts",
|
|
988
|
-
"contentHash": "
|
|
988
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
989
989
|
"since": "2025-01-01"
|
|
990
990
|
},
|
|
991
991
|
"cli:playbook": {
|
|
@@ -993,7 +993,7 @@
|
|
|
993
993
|
"type": "cli-command",
|
|
994
994
|
"domain": "context",
|
|
995
995
|
"sourcePath": "src/cli.ts",
|
|
996
|
-
"contentHash": "
|
|
996
|
+
"contentHash": "5c1909925cc2d14b3d8270dd433ec4d6753161553fbe74acc0262608ff368ed4",
|
|
997
997
|
"since": "2025-01-01"
|
|
998
998
|
},
|
|
999
999
|
"template:build-stop-hook.sh": {
|
|
@@ -1089,7 +1089,7 @@
|
|
|
1089
1089
|
"type": "template",
|
|
1090
1090
|
"domain": "operations",
|
|
1091
1091
|
"sourcePath": "src/templates/scripts/convergence-check.sh",
|
|
1092
|
-
"contentHash": "
|
|
1092
|
+
"contentHash": "21a81a7cf2437724a4b1453eaafb5a0bbcef3ab4cea7326c66c00358dd69535a",
|
|
1093
1093
|
"since": "2025-01-01"
|
|
1094
1094
|
},
|
|
1095
1095
|
"template:emit-session-clock.sh": {
|
|
@@ -1497,7 +1497,7 @@
|
|
|
1497
1497
|
"type": "subsystem",
|
|
1498
1498
|
"domain": "updates",
|
|
1499
1499
|
"sourcePath": "src/core/PostUpdateMigrator.ts",
|
|
1500
|
-
"contentHash": "
|
|
1500
|
+
"contentHash": "920b1492c5e80f1b63e8f7f685635fda2b722fa11de39ee774ad51aa86dbfdb5",
|
|
1501
1501
|
"since": "2025-01-01"
|
|
1502
1502
|
},
|
|
1503
1503
|
"subsystem:scheduler": {
|
|
@@ -1545,7 +1545,7 @@
|
|
|
1545
1545
|
"type": "subsystem",
|
|
1546
1546
|
"domain": "memory",
|
|
1547
1547
|
"sourcePath": "src/memory/SemanticMemory.ts",
|
|
1548
|
-
"contentHash": "
|
|
1548
|
+
"contentHash": "9c384e1db6fed559f6425a32d1f20490d98b40660b8f7be62d7cf515cb576df4",
|
|
1549
1549
|
"since": "2025-01-01"
|
|
1550
1550
|
},
|
|
1551
1551
|
"subsystem:multi-machine-coordinator": {
|
|
@@ -1553,7 +1553,7 @@
|
|
|
1553
1553
|
"type": "subsystem",
|
|
1554
1554
|
"domain": "coordination",
|
|
1555
1555
|
"sourcePath": "src/core/MultiMachineCoordinator.ts",
|
|
1556
|
-
"contentHash": "
|
|
1556
|
+
"contentHash": "9646bb62caff1d39524f0680bd6824bba5866ae283582cd9fd23cf011e083520",
|
|
1557
1557
|
"since": "2025-01-01"
|
|
1558
1558
|
},
|
|
1559
1559
|
"subsystem:backup-manager": {
|
|
@@ -169,6 +169,55 @@ if [ -n "$SPEC_HANDOFF" ] \
|
|
|
169
169
|
ISSUE_COUNT=$((ISSUE_COUNT + 1))
|
|
170
170
|
fi
|
|
171
171
|
|
|
172
|
+
# 9. TIME-AWARENESS NUDGE (Robust Session Time Awareness spec — Component 4,
|
|
173
|
+
# SIGNAL-ONLY). If this outbound message asserts the SESSION/RUN is done/over
|
|
174
|
+
# while a LIVE autonomous record still has >10% of its time-box remaining, emit a
|
|
175
|
+
# one-line SIGNAL to an operator log + stderr. It NEVER blocks or rewrites the
|
|
176
|
+
# message (does NOT touch ISSUE_COUNT / the exit code) and NEVER quotes the
|
|
177
|
+
# agent's phrase — it carries the computed fact (≈NN% remains) only, so the
|
|
178
|
+
# signal can't be re-read as self-confirming evidence the run is finished
|
|
179
|
+
# (P2 Signal vs Authority). Guards the exact wind-down-early incident class.
|
|
180
|
+
if echo "$CONTENT" | grep -qiE "((the )?([a-z0-9 ._-]{0,25} )?(session|run|sprint) (is|was|.s) (now )?(done|over|complete|completed|finished|wrapped[ -]?up)|winding[ -]down( the| this| my)?( session| run)?|wrapping[ -]up the (session|run))"; then
|
|
181
|
+
TA_DIR="${CLAUDE_PROJECT_DIR:-.}/.instar/autonomous"
|
|
182
|
+
TA_SIG=""
|
|
183
|
+
TA_REC=""
|
|
184
|
+
if [ -d "$TA_DIR" ]; then
|
|
185
|
+
for ta_rec in "$TA_DIR"/*.local.md; do
|
|
186
|
+
[ -f "$ta_rec" ] || continue
|
|
187
|
+
ta_pct=$(python3 - "$ta_rec" <<'PY' 2>/dev/null
|
|
188
|
+
import sys, re, datetime
|
|
189
|
+
try:
|
|
190
|
+
body = open(sys.argv[1]).read()
|
|
191
|
+
def g(k):
|
|
192
|
+
m = re.search(r'^\s*' + k + r'\s*:\s*"?([^"\n]+)"?', body, re.M)
|
|
193
|
+
return m.group(1).strip() if m else ''
|
|
194
|
+
if g('active').lower() != 'true':
|
|
195
|
+
sys.exit(0)
|
|
196
|
+
end, dur = g('end_at'), g('duration_seconds')
|
|
197
|
+
if not end or not dur:
|
|
198
|
+
sys.exit(0)
|
|
199
|
+
end_dt = datetime.datetime.fromisoformat(end.replace('Z', '+00:00'))
|
|
200
|
+
now = datetime.datetime.now(datetime.timezone.utc)
|
|
201
|
+
remain = (end_dt - now).total_seconds()
|
|
202
|
+
durs = float(dur)
|
|
203
|
+
if durs > 0 and remain > 0 and (remain / durs) > 0.10:
|
|
204
|
+
print(int(round(remain / durs * 100)))
|
|
205
|
+
except Exception:
|
|
206
|
+
sys.exit(0)
|
|
207
|
+
PY
|
|
208
|
+
)
|
|
209
|
+
if [ -n "$ta_pct" ]; then TA_SIG="$ta_pct"; TA_REC="$(basename "$ta_rec")"; break; fi
|
|
210
|
+
done
|
|
211
|
+
fi
|
|
212
|
+
if [ -n "$TA_SIG" ]; then
|
|
213
|
+
TA_TS=$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null)
|
|
214
|
+
TA_LOG="${CLAUDE_PROJECT_DIR:-.}/logs"
|
|
215
|
+
mkdir -p "$TA_LOG" 2>/dev/null
|
|
216
|
+
printf '{"ts":"%s","signal":"premature-completion-assertion","remainingPct":%s,"record":"%s"}\n' "$TA_TS" "$TA_SIG" "$TA_REC" >> "$TA_LOG/time-awareness-signals.jsonl" 2>/dev/null || true
|
|
217
|
+
echo "[time-awareness] SIGNAL: this message asserts completion while ~${TA_SIG}% of the active autonomous time-box (${TA_REC}) remains — verify before concluding. (signal-only; message NOT blocked)" >&2
|
|
218
|
+
fi
|
|
219
|
+
fi
|
|
220
|
+
|
|
172
221
|
# Output results
|
|
173
222
|
if [ "$ISSUE_COUNT" -gt "0" ]; then
|
|
174
223
|
echo "=== CONVERGENCE CHECK: ${ISSUE_COUNT} ISSUE(S) FOUND ==="
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Fixed a long-standing silent no-op in `RevertDetector`, the part of the
|
|
9
|
+
failure-learning loop that watches recent git history for `Revert "..."`
|
|
10
|
+
commits and opens a forensic record when it finds one. Its `git log` scan
|
|
11
|
+
included `--regexp-ignore-case=false` — a flag git does not accept in that
|
|
12
|
+
`=value` form. git rejected the whole command (`fatal: unrecognized
|
|
13
|
+
argument`), the call threw on every tick, the error was swallowed by the
|
|
14
|
+
surrounding try/catch, and the scan returned 0. The result: revert
|
|
15
|
+
detection has never actually fired on any install. The fix deletes the
|
|
16
|
+
invalid flag (case-sensitive matching is git's `--grep` default, which is
|
|
17
|
+
the intended behavior) and adds a NOTE comment so it can't be reintroduced.
|
|
18
|
+
Two regression tests pin it: an argv-shape assertion and a real-git
|
|
19
|
+
end-to-end test (real temp repo + real revert) that would have caught the
|
|
20
|
+
original bug.
|
|
21
|
+
|
|
22
|
+
## What to Tell Your User
|
|
23
|
+
|
|
24
|
+
Nothing you need to do. After this update, my revert-detection arm actually
|
|
25
|
+
works — if a commit in my recent history is a revert, I now open a forensic
|
|
26
|
+
record for it instead of silently missing it. This was a behind-the-scenes
|
|
27
|
+
observer that was quietly broken; no user-facing behavior or messages
|
|
28
|
+
change.
|
|
29
|
+
|
|
30
|
+
## Summary of New Capabilities
|
|
31
|
+
|
|
32
|
+
- RevertDetector's `git log` scan now runs with a valid argv, so revert
|
|
33
|
+
detection works fleet-wide for the first time (previously a silent no-op).
|
|
34
|
+
- Regression coverage: an argv-shape test rejects any reappearance of a
|
|
35
|
+
`--(no-)?regexp-ignore-case=` flag, and a real-git end-to-end test proves
|
|
36
|
+
a genuine `git revert` commit opens exactly one forensic FailureLedger
|
|
37
|
+
record.
|
|
38
|
+
|
|
39
|
+
## Evidence
|
|
40
|
+
|
|
41
|
+
**Reproduction (the broken command, against any git):**
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
$ git log -n 50 --grep=^Revert --regexp-ignore-case=false --format=%H
|
|
45
|
+
fatal: unrecognized argument
|
|
46
|
+
$ echo $?
|
|
47
|
+
128
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
git 2.39.5 (Apple Git-154) rejects the `=value` form of the case flag — this
|
|
51
|
+
is not version-specific; git has never accepted it. In `RevertDetector` the
|
|
52
|
+
non-zero exit throws, the try/catch swallows it, and `scanForReverts`
|
|
53
|
+
returns 0.
|
|
54
|
+
|
|
55
|
+
**Before:** revert detection returns 0 on every tick regardless of history.
|
|
56
|
+
Confirmed in `echo`'s `logs/server-stderr.log` (the throw was seen 4× during
|
|
57
|
+
a learnings harvest). The flag is present on canonical main at
|
|
58
|
+
`src/monitoring/RevertDetector.ts:143`.
|
|
59
|
+
|
|
60
|
+
**After:** with the flag removed, the new real-git regression test creates a
|
|
61
|
+
temp repo, commits, runs a real `git revert --no-edit HEAD`, and drives
|
|
62
|
+
`RevertDetector` with its default `SafeGitExecutor` runner — `tick()`
|
|
63
|
+
returns 1 and exactly one `source: 'revert'` forensic record is opened. The
|
|
64
|
+
argv-shape test asserts the scan command carries no `--(no-)?regexp-ignore-case=`
|
|
65
|
+
flag. 11/11 unit tests pass; `tsc`, `lint`, and `build` are clean.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: minor -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Instar can now run on a third framework: **Gemini CLI**. This is the apprenticeship Step 2 keystone — the runtime adapter ("the body") for `gemini-cli`, so the existing framework-agnostic agent layer ("the mind") runs on Gemini the same way it already runs on Claude Code and Codex CLI.
|
|
9
|
+
|
|
10
|
+
`gemini-cli` is now a first-class `IntelligenceFramework`. The live judgment path (`buildIntelligenceProvider`) constructs a new `GeminiCliIntelligenceProvider` that spawns the verified one-shot `gemini -m <model> --approval-mode default -p <prompt>` — a single pinned, canonical argv with the prompt as exactly one element. The body ships the MANDATORY floor only (one-shot transport + SessionId + HardKill), with an honest, minimal capability declaration; the richer primitives (native `gemini hooks`, compaction lifecycle, full session-resume index) are explicitly tracked as ongoing apprenticeship parity work, not shipped half-built.
|
|
11
|
+
|
|
12
|
+
Critically, this closes the *framework-blind* surfaces that a new framework silently breaks without a compile error: resume (`ThreadResumeMap`/`TopicResumeMap` `jsonlExists`), rate-limit + compaction recovery-verification, process/activity detection, and the transcript resolver all now have a real Gemini branch that resolves the correct `~/.gemini` session file. A new **drift canary** enumerates every framework and fails CI if any future framework lacks a correct resolver — turning a class of silent fleet-wide breakage into a test-forced one.
|
|
13
|
+
|
|
14
|
+
Security is pinned at the call site: the one-shot never reaches `--yolo`/`--approval-mode yolo`, the child env unconditionally hard-deletes the five Google/Gemini billing vars (`GEMINI_API_KEY`, `GOOGLE_API_KEY`, `GOOGLE_APPLICATION_CREDENTIALS`, `GOOGLE_GENAI_USE_VERTEXAI`, `GOOGLE_CLOUD_PROJECT`) so Gemini stays on its cached-OAuth path and can't be silently billed, and captured output is byte-capped (improving on the codex adapter's unbounded buffer).
|
|
15
|
+
|
|
16
|
+
## What to Tell Your User
|
|
17
|
+
|
|
18
|
+
Nothing to do for existing Claude or Codex agents — they are completely unaffected. If you want to run an agent on Gemini CLI, install the Gemini CLI, sign in, and choose Gemini as the framework when you set up an agent (or bind a single topic to Gemini). The full Gemini agent experience — the multi-turn loop driver and the richer monitoring features — is still being built as ongoing apprenticeship work; this step is the foundation that makes Gemini runnable, not full feature parity yet.
|
|
19
|
+
|
|
20
|
+
## Summary of New Capabilities
|
|
21
|
+
|
|
22
|
+
- `gemini-cli` is a first-class `IntelligenceFramework`; `buildIntelligenceProvider({ framework: 'gemini-cli' })` returns a circuit-breaker-wrapped `GeminiCliIntelligenceProvider` (the live transport), and the registry adapter `src/providers/adapters/gemini-cli/` exists as the parity-harness surface.
|
|
23
|
+
- `--framework gemini-cli` is accepted by `instar init` / `instar setup` and `instar route`; a topic can be bound to `gemini-cli` (`SUPPORTED_FRAMEWORKS`).
|
|
24
|
+
- The framework-blind resolvers (resume, rate-limit/compaction recovery-verification, process/activity signals, transcript resolution) all handle Gemini's `~/.gemini/tmp/<projectHash>/chats/session-*.json[l]` layout; `PostUpdateMigrator.getEnabledFrameworks` no longer silently drops `gemini-cli`.
|
|
25
|
+
- A drift canary (`tests/unit/framework-resolver-drift.test.ts`) asserts every `IntelligenceFramework` resolves to its CORRECT transcript and fails CI if a future framework lacks a resolver.
|
|
26
|
+
|
|
27
|
+
## Evidence
|
|
28
|
+
|
|
29
|
+
- `npx tsc --noEmit` clean. New tests green across all three tiers: `tests/unit/gemini-cli-adapter.test.ts` (canonical argv + yolo-safety + the 5-var key-leak canary + output cap + wiring integrity, 17 tests), `tests/unit/framework-resolver-drift.test.ts` (the semantic drift canary, 6 tests), `tests/integration/gemini-cli-provider.test.ts` (registry resolve + the ALIVE `buildIntelligenceProvider` path, 6 tests), `tests/e2e/gemini-cli-alive-lifecycle.test.ts` (a REAL one-shot through the production provider returned the expected PONG smoke against gemini v0.25.2, 2 tests).
|
|
30
|
+
- Spec: `docs/specs/APPRENTICESHIP-STEP2-GEMINI-RUNTIME-ADAPTER-SPEC.md`. Two tracked `programNeeds` (parity gap `need-gem-001` + native loop driver `need-gem-002`) keep the remaining work open, not dropped.
|