instar 1.3.1087 → 1.3.1089
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/server.d.ts.map +1 -1
- package/dist/commands/server.js +60 -30
- package/dist/commands/server.js.map +1 -1
- package/dist/core/AutonomousSessions.d.ts +2 -0
- package/dist/core/AutonomousSessions.d.ts.map +1 -1
- package/dist/core/AutonomousSessions.js +3 -0
- package/dist/core/AutonomousSessions.js.map +1 -1
- package/dist/core/GuardPostureStore.d.ts.map +1 -1
- package/dist/core/GuardPostureStore.js +1 -0
- package/dist/core/GuardPostureStore.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +15 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/monitoring/AgentWorktreeReaper.d.ts +69 -4
- package/dist/monitoring/AgentWorktreeReaper.d.ts.map +1 -1
- package/dist/monitoring/AgentWorktreeReaper.js +135 -18
- package/dist/monitoring/AgentWorktreeReaper.js.map +1 -1
- package/dist/monitoring/AutonomousHeartbeatRunStateStore.d.ts +24 -0
- package/dist/monitoring/AutonomousHeartbeatRunStateStore.d.ts.map +1 -0
- package/dist/monitoring/AutonomousHeartbeatRunStateStore.js +121 -0
- package/dist/monitoring/AutonomousHeartbeatRunStateStore.js.map +1 -0
- package/dist/monitoring/AutonomousProgressHeartbeat.d.ts +28 -3
- package/dist/monitoring/AutonomousProgressHeartbeat.d.ts.map +1 -1
- package/dist/monitoring/AutonomousProgressHeartbeat.js +155 -33
- package/dist/monitoring/AutonomousProgressHeartbeat.js.map +1 -1
- package/dist/monitoring/GuardRegistry.d.ts +4 -0
- package/dist/monitoring/GuardRegistry.d.ts.map +1 -1
- package/dist/monitoring/GuardRegistry.js.map +1 -1
- package/dist/monitoring/OrphanedWorkSentinel.d.ts +33 -3
- package/dist/monitoring/OrphanedWorkSentinel.d.ts.map +1 -1
- package/dist/monitoring/OrphanedWorkSentinel.js +90 -9
- package/dist/monitoring/OrphanedWorkSentinel.js.map +1 -1
- package/dist/monitoring/WorktreeEnumerationFailureStore.d.ts +13 -0
- package/dist/monitoring/WorktreeEnumerationFailureStore.d.ts.map +1 -0
- package/dist/monitoring/WorktreeEnumerationFailureStore.js +103 -0
- package/dist/monitoring/WorktreeEnumerationFailureStore.js.map +1 -0
- package/dist/monitoring/agentWorktreeGit.d.ts.map +1 -1
- package/dist/monitoring/agentWorktreeGit.js +18 -3
- package/dist/monitoring/agentWorktreeGit.js.map +1 -1
- package/dist/monitoring/guardManifest.js +2 -2
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/monitoring/guardPostureView.d.ts +5 -2
- package/dist/monitoring/guardPostureView.d.ts.map +1 -1
- package/dist/monitoring/guardPostureView.js +17 -2
- package/dist/monitoring/guardPostureView.js.map +1 -1
- package/dist/monitoring/orphanedWorkGit.d.ts.map +1 -1
- package/dist/monitoring/orphanedWorkGit.js.map +1 -1
- package/dist/monitoring/worktreeEnumeration.d.ts +63 -0
- package/dist/monitoring/worktreeEnumeration.d.ts.map +1 -0
- package/dist/monitoring/worktreeEnumeration.js +37 -0
- package/dist/monitoring/worktreeEnumeration.js.map +1 -0
- package/dist/scaffold/templates.js +2 -2
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +19 -19
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/data/state-coherence-registry.json +36 -0
- package/src/scaffold/templates.ts +2 -2
- package/upgrades/1.3.1088.md +37 -0
- package/upgrades/1.3.1089.md +34 -0
- package/upgrades/side-effects/autonomous-heartbeat-restart-cap.md +136 -0
- package/upgrades/side-effects/guard-enumeration-fail-visible.md +78 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8EH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA8H7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAuID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+rDD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAwtBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8EH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA0BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA8H7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAuID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+rDD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAwtBN;AAgmBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwwqBtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -13772,11 +13772,13 @@ export async function startServer(options) {
|
|
|
13772
13772
|
const ahEnabled = resolveDevAgentGate(ahRawCfg.enabled, config);
|
|
13773
13773
|
if (ahEnabled && telegram) {
|
|
13774
13774
|
const { AutonomousProgressHeartbeat } = await import('../monitoring/AutonomousProgressHeartbeat.js');
|
|
13775
|
+
const { AutonomousHeartbeatRunStateStore } = await import('../monitoring/AutonomousHeartbeatRunStateStore.js');
|
|
13775
13776
|
const { activeAutonomousJobs, autonomousRunRemainingForTopic, readAutonomousRunMarkers, } = await import('../core/AutonomousSessions.js');
|
|
13776
13777
|
const { ParallelActivityIndex: AHParallelActivityIndex } = await import('../core/ParallelActivityIndex.js');
|
|
13777
13778
|
// Own ParallelActivityIndex (focus source) — fetched ONCE per tick
|
|
13778
13779
|
// and indexed by topic inside the deps closure.
|
|
13779
13780
|
const ahActivityIndex = new AHParallelActivityIndex({ stateDir: config.stateDir });
|
|
13781
|
+
const ahRunStateStore = new AutonomousHeartbeatRunStateStore(path.join(config.stateDir, 'state', 'autonomous-heartbeat.json'));
|
|
13780
13782
|
const localTelegram2 = telegram;
|
|
13781
13783
|
const autonomousHeartbeat = new AutonomousProgressHeartbeat({
|
|
13782
13784
|
listActiveAutonomousRuns: () => {
|
|
@@ -13823,6 +13825,24 @@ export async function startServer(options) {
|
|
|
13823
13825
|
};
|
|
13824
13826
|
})(),
|
|
13825
13827
|
proxyCoordinator,
|
|
13828
|
+
runStateStore: ahRunStateStore,
|
|
13829
|
+
// The spec's rollback/tuning contract is tick-live. The old
|
|
13830
|
+
// constructor-only snapshot meant an operator edit to the
|
|
13831
|
+
// silence threshold was invisible until server restart.
|
|
13832
|
+
getConfig: () => {
|
|
13833
|
+
// Read only this non-secret block. Calling loadConfig here
|
|
13834
|
+
// would re-run binary discovery + secret merge every minute.
|
|
13835
|
+
const disk = JSON.parse(fs.readFileSync(path.join(config.stateDir, 'config.json'), 'utf8'));
|
|
13836
|
+
const live = disk.monitoring?.autonomousHeartbeat ?? {};
|
|
13837
|
+
return {
|
|
13838
|
+
enabled: resolveDevAgentGate(live.enabled, config),
|
|
13839
|
+
dryRun: live.dryRun !== false,
|
|
13840
|
+
silenceThresholdMinutes: live.silenceThresholdMinutes,
|
|
13841
|
+
tickIntervalMs: live.tickIntervalMs,
|
|
13842
|
+
maxHeartbeatsPerRun: live.maxHeartbeatsPerRun,
|
|
13843
|
+
recentOutputChangeWindowMs: live.recentOutputChangeWindowMs,
|
|
13844
|
+
};
|
|
13845
|
+
},
|
|
13826
13846
|
sendMessage: async (topicId, text, metadata) => {
|
|
13827
13847
|
const url = `http://localhost:${config.port}/telegram/reply/${topicId}`;
|
|
13828
13848
|
const response = await fetch(url, {
|
|
@@ -17692,15 +17712,21 @@ export async function startServer(options) {
|
|
|
17692
17712
|
// disabled. Observability at GET /worktrees/agent-reaper.
|
|
17693
17713
|
const { AgentWorktreeReaper } = await import('../monitoring/AgentWorktreeReaper.js');
|
|
17694
17714
|
const { makeAgentWorktreeReaperDeps } = await import('../monitoring/agentWorktreeGit.js');
|
|
17715
|
+
const { WorktreeEnumerationFailureStore } = await import('../monitoring/WorktreeEnumerationFailureStore.js');
|
|
17695
17716
|
const _agentWorktreesDir = path.join(path.dirname(config.stateDir), '.worktrees');
|
|
17696
|
-
const
|
|
17697
|
-
|
|
17698
|
-
|
|
17699
|
-
|
|
17700
|
-
|
|
17701
|
-
|
|
17702
|
-
|
|
17717
|
+
const _worktreeEnumerationFailureStore = new WorktreeEnumerationFailureStore(path.join(config.stateDir, 'state', 'worktree-enumeration-failures.json'));
|
|
17718
|
+
const agentWorktreeReaper = new AgentWorktreeReaper({
|
|
17719
|
+
...makeAgentWorktreeReaperDeps({
|
|
17720
|
+
instarRepo: config.projectDir,
|
|
17721
|
+
worktreesDir: _agentWorktreesDir,
|
|
17722
|
+
// Multi-commit squash-merge detection via GitHub merged-PR state (default
|
|
17723
|
+
// on; fail-safe to cherry-only). Off only if explicitly disabled in config.
|
|
17724
|
+
githubMergeCheck: config.monitoring?.agentWorktreeReaper?.githubMergeCheck ?? true,
|
|
17725
|
+
}),
|
|
17726
|
+
failureHistory: _worktreeEnumerationFailureStore.forGuard('agent-worktree-reaper'),
|
|
17727
|
+
}, config.monitoring?.agentWorktreeReaper);
|
|
17703
17728
|
agentWorktreeReaper.start();
|
|
17729
|
+
guardRegistry.register('monitoring.agentWorktreeReaper.enabled', () => agentWorktreeReaper.guardStatus());
|
|
17704
17730
|
if (config.monitoring?.agentWorktreeReaper?.enabled) {
|
|
17705
17731
|
console.log(pc.green(config.monitoring.agentWorktreeReaper.dryRun === false
|
|
17706
17732
|
? ' AgentWorktreeReaper enabled (stale-worktree reclaim — LIVE)'
|
|
@@ -17906,30 +17932,34 @@ export async function startServer(options) {
|
|
|
17906
17932
|
try {
|
|
17907
17933
|
const { OrphanedWorkSentinel } = await import('../monitoring/OrphanedWorkSentinel.js');
|
|
17908
17934
|
const { makeOrphanedWorkSentinelDeps } = await import('../monitoring/orphanedWorkGit.js');
|
|
17909
|
-
orphanedWorkSentinel = new OrphanedWorkSentinel(
|
|
17910
|
-
|
|
17911
|
-
|
|
17912
|
-
|
|
17913
|
-
|
|
17914
|
-
|
|
17915
|
-
|
|
17916
|
-
|
|
17917
|
-
|
|
17918
|
-
|
|
17919
|
-
|
|
17920
|
-
|
|
17921
|
-
`
|
|
17922
|
-
|
|
17923
|
-
|
|
17924
|
-
|
|
17925
|
-
|
|
17926
|
-
|
|
17927
|
-
|
|
17928
|
-
|
|
17929
|
-
|
|
17930
|
-
|
|
17931
|
-
|
|
17935
|
+
orphanedWorkSentinel = new OrphanedWorkSentinel({
|
|
17936
|
+
...makeOrphanedWorkSentinelDeps({
|
|
17937
|
+
instarRepo: config.projectDir,
|
|
17938
|
+
worktreesDir: _agentWorktreesDir,
|
|
17939
|
+
stateDir: path.join(config.stateDir, 'state'),
|
|
17940
|
+
raiseAttention: telegram
|
|
17941
|
+
? (event) => {
|
|
17942
|
+
const slug = event.path.split('/').filter(Boolean).pop() ?? 'worktree';
|
|
17943
|
+
void telegram.createAttentionItem({
|
|
17944
|
+
id: `orphaned-work:${slug}:${event.workSig}`,
|
|
17945
|
+
title: `Stranded work in worktree "${slug}"`,
|
|
17946
|
+
summary: 'A build/session died with uncommitted changes — revive the worktree to finish, or discard.',
|
|
17947
|
+
description: `Worktree ${event.path} (branch ${event.branch ?? 'detached'}) has uncommitted changes ` +
|
|
17948
|
+
`but its owning session is gone. The work is still on disk` +
|
|
17949
|
+
`${event.preserved ? ' and a preservation patch was written' : ''}. ` +
|
|
17950
|
+
`Open the worktree to finish + commit, or discard if no longer needed.`,
|
|
17951
|
+
category: 'agent-health',
|
|
17952
|
+
priority: 'NORMAL',
|
|
17953
|
+
sourceContext: `orphaned-work:${slug}`,
|
|
17954
|
+
});
|
|
17955
|
+
}
|
|
17956
|
+
: () => { },
|
|
17957
|
+
now: () => Date.now(),
|
|
17958
|
+
}),
|
|
17959
|
+
failureHistory: _worktreeEnumerationFailureStore.forGuard('orphaned-work-sentinel'),
|
|
17960
|
+
}, { ...config.monitoring?.orphanedWorkSentinel, enabled: _orphanedWorkEnabled });
|
|
17932
17961
|
orphanedWorkSentinel.start();
|
|
17962
|
+
guardRegistry.register('monitoring.orphanedWorkSentinel.enabled', () => orphanedWorkSentinel.guardStatus());
|
|
17933
17963
|
if (_orphanedWorkEnabled) {
|
|
17934
17964
|
console.log(pc.green(' OrphanedWorkSentinel enabled (silent-uncommitted-death backstop — signal-only)'));
|
|
17935
17965
|
}
|