instar 1.3.34 → 1.3.36
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/README.md +1 -0
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +53 -3
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +15 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +15 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/featureRolloutScan.d.ts +23 -0
- package/dist/core/featureRolloutScan.d.ts.map +1 -1
- package/dist/core/featureRolloutScan.js +102 -0
- package/dist/core/featureRolloutScan.js.map +1 -1
- package/dist/core/types.d.ts +45 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/messaging/AgentTelegramComms.d.ts +77 -0
- package/dist/messaging/AgentTelegramComms.d.ts.map +1 -1
- package/dist/messaging/AgentTelegramComms.js +108 -0
- package/dist/messaging/AgentTelegramComms.js.map +1 -1
- package/dist/monitoring/ReleaseReadinessSentinel.d.ts +172 -0
- package/dist/monitoring/ReleaseReadinessSentinel.d.ts.map +1 -0
- package/dist/monitoring/ReleaseReadinessSentinel.js +315 -0
- package/dist/monitoring/ReleaseReadinessSentinel.js.map +1 -0
- package/dist/monitoring/releaseReadinessWiring.d.ts +54 -0
- package/dist/monitoring/releaseReadinessWiring.d.ts.map +1 -0
- package/dist/monitoring/releaseReadinessWiring.js +241 -0
- package/dist/monitoring/releaseReadinessWiring.js.map +1 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +5 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +14 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +3 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +55 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/analyze-release.js +221 -0
- package/scripts/upgrade-guide-validator.mjs +120 -0
- package/src/data/builtin-manifest.json +63 -63
- package/src/scaffold/templates/jobs/instar/release-readiness-check.md +24 -0
- package/src/scaffold/templates.ts +5 -0
- package/upgrades/1.3.35.md +44 -0
- package/upgrades/1.3.36.md +39 -0
- package/upgrades/side-effects/agent-telegram-comms-send.md +71 -0
- package/upgrades/side-effects/release-readiness-visibility-pr2a.md +27 -0
- package/upgrades/side-effects/release-readiness-visibility-pr2b.md +26 -0
- package/upgrades/side-effects/release-readiness-visibility-pr2c.md +37 -0
- package/upgrades/side-effects/release-readiness-visibility-pr3.md +33 -0
package/README.md
CHANGED
|
@@ -50,6 +50,7 @@ The architecture was distilled from [**Dawn**](https://dawn.bot-me.ai) — an AI
|
|
|
50
50
|
| Forgets what you told it last week. | Remembers across thousands of sessions. <br/>*(SQLite + FTS5, rolling summaries)* |
|
|
51
51
|
| Contradicts its own past decisions. | Catches contradictions before they ship. <br/>*(Coherence Gate, 9 reviewers)* |
|
|
52
52
|
| Loses the thread when the window fills. | Comes back with the full thread, every time. <br/>*(CompactionSentinel, WorkingMemoryAssembler)* |
|
|
53
|
+
| Silently stops shipping when a release stalls. | Surfaces the blocked release as ONE deduped, age-escalating Attention item. <br/>*(ReleaseReadinessSentinel — instar-dev / maintainer environments)* |
|
|
53
54
|
| Drops commitments after a session boundary. | Tracks commitments durably; nudges itself when they go overdue. <br/>*(CommitmentTracker, PromiseBeacon)* |
|
|
54
55
|
| Breaks when the framework updates. | Updates without breaking what you've deployed. <br/>*(Migration Parity Standard)* |
|
|
55
56
|
| Default ALLOW-ALL permissions. | Layered safety gates by default. <br/>*(PEL + Coherence Gate + Operation Gate)* |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiRH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,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;AAiRH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAq5MtE;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
|
@@ -7250,12 +7250,22 @@ export async function startServer(options) {
|
|
|
7250
7250
|
// ship-dark feature relies on anyone remembering to register it. Runs once
|
|
7251
7251
|
// at boot + on a bounded cadence. Observation-only w.r.t. config flags.
|
|
7252
7252
|
const { FeatureRolloutReconciler } = await import('../core/FeatureRolloutReconciler.js');
|
|
7253
|
-
const {
|
|
7253
|
+
const { scanSpecArtifactsWithCanonical, makeFlagObserver } = await import('../core/featureRolloutScan.js');
|
|
7254
7254
|
const { getInitDefaults: _getRolloutDefaults } = await import('../config/ConfigDefaults.js');
|
|
7255
7255
|
const _shippedDefaults = _getRolloutDefaults(config.agentType === 'standalone' ? 'standalone' : 'managed-project');
|
|
7256
|
+
// Layer C of release-readiness-visibility: when featureRollout.canonicalRefScan
|
|
7257
|
+
// is enabled, scan against canonical `main` (not the local working tree, which
|
|
7258
|
+
// silently misses freshly-merged specs). Falls back to the local scan on any
|
|
7259
|
+
// failure with a single degradation log line — never throws into boot.
|
|
7260
|
+
const _frCfg = config.featureRollout;
|
|
7256
7261
|
const featureRolloutReconciler = new FeatureRolloutReconciler({
|
|
7257
7262
|
tracker: initiativeTracker,
|
|
7258
|
-
listSpecArtifacts: () =>
|
|
7263
|
+
listSpecArtifacts: () => scanSpecArtifactsWithCanonical(config.projectDir, {
|
|
7264
|
+
canonicalRefScanEnabled: _frCfg?.canonicalRefScan === true,
|
|
7265
|
+
canonicalRemote: _frCfg?.canonicalRemote,
|
|
7266
|
+
fetchTimeoutMs: _frCfg?.fetchTimeoutMs,
|
|
7267
|
+
onDegradation: (reason) => console.warn(`[instar] feature-rollout canonical scan degraded: ${reason}`),
|
|
7268
|
+
}),
|
|
7259
7269
|
observeFlag: makeFlagObserver(config, _shippedDefaults),
|
|
7260
7270
|
});
|
|
7261
7271
|
void featureRolloutReconciler.reconcile().catch(err => console.warn('[instar] feature-rollout reconcile failed (non-fatal):', err instanceof Error ? err.message : String(err)));
|
|
@@ -7536,7 +7546,47 @@ export async function startServer(options) {
|
|
|
7536
7546
|
? ' SessionReaper enabled (idle-session reaper — LIVE)'
|
|
7537
7547
|
: ' SessionReaper enabled (idle-session reaper — dry-run, logs only)'));
|
|
7538
7548
|
}
|
|
7539
|
-
|
|
7549
|
+
// ── ReleaseReadinessSentinel (Layer B of release-readiness-visibility) ──
|
|
7550
|
+
// Repo-gated dev-environment watchdog: only constructed when the install has
|
|
7551
|
+
// an analyzable instar git repo AND the feature is enabled in config. On a
|
|
7552
|
+
// plain npm-installed agent (no instar repo) it stays null → routes 503,
|
|
7553
|
+
// never a spurious signal. Not start()ed here — the off-by-default
|
|
7554
|
+
// release-readiness-check job drives tick() via POST /release-readiness/tick.
|
|
7555
|
+
let releaseReadinessSentinel = null;
|
|
7556
|
+
{
|
|
7557
|
+
const rrCfg = config.monitoring?.releaseReadiness;
|
|
7558
|
+
const repoPath = rrCfg?.repoPath ?? process.cwd();
|
|
7559
|
+
if (rrCfg?.enabled) {
|
|
7560
|
+
const { isAnalyzableRepo, buildReleaseReadinessDeps } = await import('../monitoring/releaseReadinessWiring.js');
|
|
7561
|
+
if (isAnalyzableRepo(repoPath)) {
|
|
7562
|
+
const { ReleaseReadinessSentinel } = await import('../monitoring/ReleaseReadinessSentinel.js');
|
|
7563
|
+
const deps = buildReleaseReadinessDeps({
|
|
7564
|
+
repoPath,
|
|
7565
|
+
statePath: path.join(config.stateDir, 'release-readiness.json'),
|
|
7566
|
+
auditPath: path.join(config.stateDir, '..', 'logs', 'sentinel-events.jsonl'),
|
|
7567
|
+
port: config.port,
|
|
7568
|
+
authToken: config.authToken ?? '',
|
|
7569
|
+
canonicalRemote: rrCfg.canonicalRemote,
|
|
7570
|
+
fetchTimeoutMs: rrCfg.fetchTimeoutMs,
|
|
7571
|
+
});
|
|
7572
|
+
releaseReadinessSentinel = new ReleaseReadinessSentinel(deps, {
|
|
7573
|
+
enabled: true,
|
|
7574
|
+
tickIntervalMs: rrCfg.tickIntervalMs,
|
|
7575
|
+
backlogAgeDaysSilent: rrCfg.backlogAgeDaysSilent,
|
|
7576
|
+
backlogAgeDaysLow: rrCfg.backlogAgeDaysLow,
|
|
7577
|
+
backlogAgeDaysMedium: rrCfg.backlogAgeDaysMedium,
|
|
7578
|
+
backlogAgeDaysHigh: rrCfg.backlogAgeDaysHigh,
|
|
7579
|
+
hysteresisHours: rrCfg.hysteresisHours,
|
|
7580
|
+
staleEpisodeTtlDays: rrCfg.staleEpisodeTtlDays,
|
|
7581
|
+
});
|
|
7582
|
+
console.log(pc.green(' ReleaseReadinessSentinel enabled (release-hygiene watchdog — job-driven)'));
|
|
7583
|
+
}
|
|
7584
|
+
else {
|
|
7585
|
+
console.log(pc.dim(' ReleaseReadinessSentinel enabled in config but no analyzable instar repo found — staying inert'));
|
|
7586
|
+
}
|
|
7587
|
+
}
|
|
7588
|
+
}
|
|
7589
|
+
const server = new AgentServer({ config, sessionManager, state, scheduler, telegram, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, semanticMemory, activitySentinel, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, whatsapp: whatsappAdapter, slack: slackAdapter, imessage: imessageAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, proxyCoordinator, topicIntentStore, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, unjustifiedStopGate, stopGateDb, stopNotifier });
|
|
7540
7590
|
// Boot-recovery (tunnel-failure-resilience spec Part 6): if the agent
|
|
7541
7591
|
// died mid-relay-episode, the persisted tunnel.json carries
|
|
7542
7592
|
// rotationPending=true. Rotate the dashboard PIN + authToken BEFORE
|