instar 1.2.77 → 1.2.79

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.
Files changed (29) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +23 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/providers/adapters/openai-codex/canary/codexHookContractCanary.d.ts +20 -0
  5. package/dist/providers/adapters/openai-codex/canary/codexHookContractCanary.d.ts.map +1 -1
  6. package/dist/providers/adapters/openai-codex/canary/codexHookContractCanary.js +46 -0
  7. package/dist/providers/adapters/openai-codex/canary/codexHookContractCanary.js.map +1 -1
  8. package/dist/server/AgentServer.d.ts +1 -0
  9. package/dist/server/AgentServer.d.ts.map +1 -1
  10. package/dist/server/AgentServer.js +1 -0
  11. package/dist/server/AgentServer.js.map +1 -1
  12. package/dist/server/routes.d.ts +2 -0
  13. package/dist/server/routes.d.ts.map +1 -1
  14. package/dist/server/routes.js +14 -0
  15. package/dist/server/routes.js.map +1 -1
  16. package/dist/threadline/CollaborationSurfacer.d.ts +72 -0
  17. package/dist/threadline/CollaborationSurfacer.d.ts.map +1 -0
  18. package/dist/threadline/CollaborationSurfacer.js +122 -0
  19. package/dist/threadline/CollaborationSurfacer.js.map +1 -0
  20. package/dist/threadline/TopicLinkageHandler.d.ts.map +1 -1
  21. package/dist/threadline/TopicLinkageHandler.js +16 -11
  22. package/dist/threadline/TopicLinkageHandler.js.map +1 -1
  23. package/package.json +1 -1
  24. package/scripts/pre-push-e2e-scope.mjs +83 -0
  25. package/scripts/safe-merge.mjs +87 -0
  26. package/src/data/builtin-manifest.json +47 -47
  27. package/upgrades/1.2.78.md +49 -0
  28. package/upgrades/1.2.79.md +68 -0
  29. package/upgrades/side-effects/codex-parity-c4-canary-drift.md +33 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyQH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiqDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAohMtE;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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0QH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiqDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0iMtE;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"}
@@ -96,6 +96,7 @@ import { resolveThreadlineMcpEntry } from '../threadline/mcpEntry.js';
96
96
  import { ThreadResumeMap } from '../threadline/ThreadResumeMap.js';
97
97
  import { ConversationStore } from '../threadline/ConversationStore.js';
98
98
  import { WarrantsReplyGate, evaluateAndRecordInbound } from '../threadline/WarrantsReplyGate.js';
99
+ import { CollaborationSurfacer } from '../threadline/CollaborationSurfacer.js';
99
100
  import { ListenerSessionManager } from '../threadline/ListenerSessionManager.js';
100
101
  import { SystemReviewer } from '../monitoring/SystemReviewer.js';
101
102
  import { createSessionProbes } from '../monitoring/probes/SessionProbe.js';
@@ -5999,6 +6000,12 @@ export async function startServer(options) {
5999
6000
  // living on the Conversation (the one-shot worker can't self-police a loop).
6000
6001
  const conversationStore = new ConversationStore(config.stateDir);
6001
6002
  const warrantsReplyGate = new WarrantsReplyGate({ intelligence: sharedIntelligence });
6003
+ // CMT-509 §2: surface PARENTLESS Threadline conversations into a single
6004
+ // dedicated topic so a peer reaching out cold is visible (not an invisible
6005
+ // side channel). Topic-bound conversations surface via TopicLinkageHandler.
6006
+ const collaborationSurfacer = telegram
6007
+ ? new CollaborationSurfacer({ telegram, stateDir: config.stateDir })
6008
+ : undefined;
6002
6009
  const messageFormatter = new MessageFormatter();
6003
6010
  const tmuxBin = config.sessions.tmuxPath;
6004
6011
  const tmuxOps = {
@@ -6626,6 +6633,21 @@ export async function startServer(options) {
6626
6633
  }
6627
6634
  return; // short-circuit ALL three routing branches
6628
6635
  }
6636
+ // CMT-509 §2: warranted + PARENTLESS conversation (no bound topic)
6637
+ // → surface to the dedicated Threadline topic so the operator sees
6638
+ // a peer reaching out cold. Topic-bound conversations are surfaced by
6639
+ // TopicLinkageHandler instead, so we skip them here. Best-effort,
6640
+ // non-blocking; never breaks the inbound path.
6641
+ if (collaborationSurfacer) {
6642
+ const hasParentTopic = conversationStore.get(gateThreadId)?.boundTopicId != null;
6643
+ void collaborationSurfacer.surface({
6644
+ threadId: gateThreadId,
6645
+ senderName,
6646
+ text: textContent,
6647
+ hasParentTopic,
6648
+ warrants: !decision.suppress,
6649
+ });
6650
+ }
6629
6651
  }
6630
6652
  catch (gateErr) {
6631
6653
  // Gate failure → fail toward responsive (never silently drop a message).
@@ -7149,7 +7171,7 @@ export async function startServer(options) {
7149
7171
  },
7150
7172
  });
7151
7173
  }
7152
- 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, 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, 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 });
7174
+ 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, 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 });
7153
7175
  // Boot-recovery (tunnel-failure-resilience spec Part 6): if the agent
7154
7176
  // died mid-relay-episode, the persisted tunnel.json carries
7155
7177
  // rotationPending=true. Rotate the dashboard PIN + authToken BEFORE