instar 0.28.100 → 0.28.102

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 (41) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +19 -7
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/SessionManager.d.ts +6 -0
  5. package/dist/core/SessionManager.d.ts.map +1 -1
  6. package/dist/core/SessionManager.js +62 -25
  7. package/dist/core/SessionManager.js.map +1 -1
  8. package/dist/core/types.d.ts +19 -0
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/keys/instar-release-pub.pem +3 -0
  12. package/dist/monitoring/PresenceProxy.d.ts +35 -1
  13. package/dist/monitoring/PresenceProxy.d.ts.map +1 -1
  14. package/dist/monitoring/PresenceProxy.js +67 -2
  15. package/dist/monitoring/PresenceProxy.js.map +1 -1
  16. package/dist/scheduler/AgentMdJobLoader.d.ts +1 -1
  17. package/dist/scheduler/AgentMdJobLoader.d.ts.map +1 -1
  18. package/dist/scheduler/AgentMdJobLoader.js +87 -2
  19. package/dist/scheduler/AgentMdJobLoader.js.map +1 -1
  20. package/dist/scheduler/AgentMdLockFile.d.ts +97 -0
  21. package/dist/scheduler/AgentMdLockFile.d.ts.map +1 -0
  22. package/dist/scheduler/AgentMdLockFile.js +278 -0
  23. package/dist/scheduler/AgentMdLockFile.js.map +1 -0
  24. package/dist/scheduler/JobScheduler.d.ts +12 -1
  25. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  26. package/dist/scheduler/JobScheduler.js +59 -0
  27. package/dist/scheduler/JobScheduler.js.map +1 -1
  28. package/package.json +2 -2
  29. package/scripts/generate-instar-release-key.mjs +81 -0
  30. package/scripts/lint-no-direct-destructive.js +5 -0
  31. package/scripts/sign-instar-lockfile.mjs +260 -0
  32. package/src/data/builtin-manifest.json +4 -4
  33. package/upgrades/0.28.101.md +40 -0
  34. package/upgrades/0.28.102.md +86 -0
  35. package/upgrades/side-effects/jobs-as-agentmd-phase-1b-gap.md +81 -0
  36. package/upgrades/side-effects/jobs-as-agentmd-phase-1c-build.md +76 -0
  37. package/upgrades/side-effects/jobs-as-agentmd-phase-1c-runtime.md +147 -0
  38. package/upgrades/side-effects/presence-proxy-race-guard-ack.md +126 -0
  39. package/upgrades/side-effects/release-notes-inline-code-fix.md +27 -0
  40. package/upgrades/side-effects/sessionmgr-activity-aware-timeout.md +119 -0
  41. package/upgrades/side-effects/url-pathname-path-encoding-fix.md +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkQH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAw4CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAknKtE;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;AAkQH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAw4CD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8nKtE;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"}
@@ -4341,14 +4341,20 @@ export async function startServer(options) {
4341
4341
  let presenceProxy;
4342
4342
  if (sharedIntelligence && telegram) {
4343
4343
  try {
4344
- const { PresenceProxy } = await import('../monitoring/PresenceProxy.js');
4344
+ const { PresenceProxy, isBriefAck } = await import('../monitoring/PresenceProxy.js');
4345
4345
  const { execSync: shellExecSync } = await import('child_process');
4346
4346
  const messagesLogPath = path.join(config.stateDir, 'telegram-messages.jsonl');
4347
4347
  const slackMessagesLogPath = path.join(config.stateDir, 'slack-messages.jsonl');
4348
- // Shared helper: check a messages log file for agent responses after a timestamp.
4349
- // System/proxy-message filtering is delegated to isSystemOrProxyMessage so all
4350
- // three callsites (this one, PresenceProxy.isSystemMessage, and the compaction
4351
- // recoverFn) stay in sync.
4348
+ // Shared helper: check a messages log file for SUBSTANTIVE agent
4349
+ // responses after a timestamp. Filters out system/proxy messages via
4350
+ // isSystemOrProxyMessage AND brief acks via isBriefAck — both kinds
4351
+ // of messages are non-cancelling from PresenceProxy's perspective.
4352
+ //
4353
+ // The brief-ack filter is what closes the gap from PR #128: that PR
4354
+ // taught the event path (recordAgentMessage) to ignore acks, but the
4355
+ // log-reading race guard at PresenceProxy.fireTier didn't share the
4356
+ // same classifier. The result was Tier 2 silently cancelling because
4357
+ // the ack was on disk. Same isBriefAck export feeds both paths now.
4352
4358
  const checkLogForAgentResponse = (logPath, topicId, sinceIso) => {
4353
4359
  try {
4354
4360
  const content = fs.readFileSync(logPath, 'utf-8');
@@ -4361,8 +4367,14 @@ export async function startServer(options) {
4361
4367
  const matchesTopic = msg.topicId === topicId
4362
4368
  || (topicId < 0 && msg.channelId && slackChannelToSyntheticId(String(msg.channelId)) === topicId);
4363
4369
  if (matchesTopic && !msg.fromUser && msg.timestamp > sinceIso) {
4364
- if (!isSystemOrProxyMessage(msg.text))
4365
- return true;
4370
+ // Non-cancelling agent message kinds: system/proxy
4371
+ // chrome, and brief acks ("On it"). Both leave tier
4372
+ // timers running.
4373
+ const isNonCancelling = isSystemOrProxyMessage(msg.text)
4374
+ || isBriefAck(msg.text);
4375
+ if (isNonCancelling)
4376
+ continue;
4377
+ return true;
4366
4378
  }
4367
4379
  }
4368
4380
  catch { /* skip malformed lines */ }