instar 1.3.1620 → 1.3.1621

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 (32) hide show
  1. package/dist/commands/server.d.ts +6 -0
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +56 -9
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/TopicProfileOrchestrator.d.ts +4 -0
  6. package/dist/core/TopicProfileOrchestrator.d.ts.map +1 -1
  7. package/dist/core/TopicProfileOrchestrator.js +14 -1
  8. package/dist/core/TopicProfileOrchestrator.js.map +1 -1
  9. package/dist/core/TopicSpawnBriefStore.d.ts +48 -0
  10. package/dist/core/TopicSpawnBriefStore.d.ts.map +1 -0
  11. package/dist/core/TopicSpawnBriefStore.js +107 -0
  12. package/dist/core/TopicSpawnBriefStore.js.map +1 -0
  13. package/dist/data/standards-guard-index.json +1 -1
  14. package/dist/data/standards-guard-index.meta.json +2 -2
  15. package/dist/data/standards-registry.meta.json +1 -1
  16. package/dist/native/instar-desktop-host +0 -0
  17. package/dist/server/routes.d.ts +3 -0
  18. package/dist/server/routes.d.ts.map +1 -1
  19. package/dist/server/routes.js +52 -10
  20. package/dist/server/routes.js.map +1 -1
  21. package/dist/server/sessionSpawnTopicBinding.d.ts +26 -0
  22. package/dist/server/sessionSpawnTopicBinding.d.ts.map +1 -1
  23. package/dist/server/sessionSpawnTopicBinding.js +50 -0
  24. package/dist/server/sessionSpawnTopicBinding.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/data/builtin-manifest.json +46 -46
  27. package/src/data/standards-guard-index.json +1 -1
  28. package/src/data/standards-guard-index.meta.json +2 -2
  29. package/src/data/standards-registry.meta.json +1 -1
  30. package/upgrades/1.3.1621.md +27 -0
  31. package/upgrades/eli16/profile-restart-keeps-spawn-brief.md +24 -0
  32. package/upgrades/side-effects/profile-restart-keeps-spawn-brief.md +91 -0
@@ -22,4 +22,30 @@ export declare function persistDiskTopicSessionBinding(opts: {
22
22
  tmuxSession: string;
23
23
  topicName?: string;
24
24
  }): void;
25
+ /**
26
+ * Topic-profile resolution for a topic-bound direct spawn (POST /sessions/spawn).
27
+ *
28
+ * Mirrors spawnSessionForTopic's single resolution point: the topic's resolved
29
+ * profile supplies framework + model for every axis the request leaves unset
30
+ * (an explicit request value always wins). Returns `applied` — what the launch
31
+ * will actually carry, in the orchestrator's AppliedProfile shape — so the
32
+ * route can record it and the profile orchestrator never mistakes a freshly
33
+ * spawned session for one whose pin "wasn't applied".
34
+ *
35
+ * thinkingMode/effort are recorded as null: the direct spawn path has no
36
+ * launch control for them, and recording a value it did not apply would hide
37
+ * a real divergence.
38
+ */
39
+ export declare function resolveTopicSpawnProfile(input: {
40
+ resolver?: {
41
+ resolve(topicId: number): import('../core/TopicProfileResolver.js').ResolvedTopicProfile;
42
+ } | null;
43
+ topicId?: number;
44
+ requestedFramework?: import('../core/intelligenceProviderFactory.js').IntelligenceFramework;
45
+ requestedModel?: string;
46
+ }): {
47
+ framework?: import('../core/intelligenceProviderFactory.js').IntelligenceFramework;
48
+ model?: string;
49
+ applied: import('../core/TopicProfileOrchestrator.js').AppliedProfile | null;
50
+ };
25
51
  //# sourceMappingURL=sessionSpawnTopicBinding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionSpawnTopicBinding.d.ts","sourceRoot":"","sources":["../../src/server/sessionSpawnTopicBinding.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4BjF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAoBP"}
1
+ {"version":3,"file":"sessionSpawnTopicBinding.d.ts","sourceRoot":"","sources":["../../src/server/sessionSpawnTopicBinding.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4BjF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAoBP;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,iCAAiC,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,wCAAwC,EAAE,qBAAqB,CAAC;IAC5F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG;IACF,SAAS,CAAC,EAAE,OAAO,wCAAwC,EAAE,qBAAqB,CAAC;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,qCAAqC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9E,CAiCA"}
@@ -47,4 +47,54 @@ export function persistDiskTopicSessionBinding(opts) {
47
47
  fs.writeFileSync(tmpPath, JSON.stringify(registry, null, 2));
48
48
  fs.renameSync(tmpPath, registryPath);
49
49
  }
50
+ /**
51
+ * Topic-profile resolution for a topic-bound direct spawn (POST /sessions/spawn).
52
+ *
53
+ * Mirrors spawnSessionForTopic's single resolution point: the topic's resolved
54
+ * profile supplies framework + model for every axis the request leaves unset
55
+ * (an explicit request value always wins). Returns `applied` — what the launch
56
+ * will actually carry, in the orchestrator's AppliedProfile shape — so the
57
+ * route can record it and the profile orchestrator never mistakes a freshly
58
+ * spawned session for one whose pin "wasn't applied".
59
+ *
60
+ * thinkingMode/effort are recorded as null: the direct spawn path has no
61
+ * launch control for them, and recording a value it did not apply would hide
62
+ * a real divergence.
63
+ */
64
+ export function resolveTopicSpawnProfile(input) {
65
+ const passthrough = { framework: input.requestedFramework, model: input.requestedModel, applied: null };
66
+ if (!input.resolver || input.topicId === undefined)
67
+ return passthrough;
68
+ let resolved;
69
+ try {
70
+ resolved = input.resolver.resolve(input.topicId);
71
+ }
72
+ catch {
73
+ // @silent-fallback-ok: an unresolvable profile degrades to the request's
74
+ // own values (today's behaviour) and records nothing.
75
+ return passthrough;
76
+ }
77
+ const framework = input.requestedFramework ?? resolved.framework;
78
+ // The profile's model only rides a launch on the framework it was resolved
79
+ // for; a local-model binding is applied by the topic spawn path, not here.
80
+ const profileModelUsable = framework === resolved.framework
81
+ && resolved.sources?.model !== 'local-model-binding';
82
+ const useProfileModel = input.requestedModel === undefined && profileModelUsable;
83
+ const model = input.requestedModel ?? (useProfileModel ? resolved.model : undefined);
84
+ return {
85
+ framework,
86
+ model,
87
+ applied: {
88
+ framework,
89
+ model: input.requestedModel !== undefined
90
+ ? input.requestedModel
91
+ : useProfileModel
92
+ ? (resolved.modelTier ? null : (resolved.model ?? null))
93
+ : null,
94
+ modelTier: useProfileModel ? (resolved.modelTier ?? null) : null,
95
+ thinkingMode: null,
96
+ effort: null,
97
+ },
98
+ };
99
+ }
50
100
  //# sourceMappingURL=sessionSpawnTopicBinding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionSpawnTopicBinding.js","sourceRoot":"","sources":["../../src/server/sessionSpawnTopicBinding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionSpawnTopicBinding.js","sourceRoot":"","sources":["../../src/server/sessionSpawnTopicBinding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1620",
3
+ "version": "1.3.1621",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-11-03T09:14:50.369Z",
5
- "instarVersion": "1.3.1620",
4
+ "generatedAt": "2026-11-03T09:33:37.326Z",
5
+ "instarVersion": "1.3.1621",
6
6
  "entryCount": 206,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -435,7 +435,7 @@
435
435
  "type": "route-group",
436
436
  "domain": "monitoring",
437
437
  "sourcePath": "src/server/routes.ts",
438
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
438
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
439
439
  "since": "2025-01-01"
440
440
  },
441
441
  "route-group:agents": {
@@ -443,7 +443,7 @@
443
443
  "type": "route-group",
444
444
  "domain": "sessions",
445
445
  "sourcePath": "src/server/routes.ts",
446
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
446
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
447
447
  "since": "2025-01-01"
448
448
  },
449
449
  "route-group:backups": {
@@ -451,7 +451,7 @@
451
451
  "type": "route-group",
452
452
  "domain": "operations",
453
453
  "sourcePath": "src/server/routes.ts",
454
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
454
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
455
455
  "since": "2025-01-01"
456
456
  },
457
457
  "route-group:git": {
@@ -459,7 +459,7 @@
459
459
  "type": "route-group",
460
460
  "domain": "coordination",
461
461
  "sourcePath": "src/server/routes.ts",
462
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
462
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
463
463
  "since": "2025-01-01"
464
464
  },
465
465
  "route-group:memory": {
@@ -467,7 +467,7 @@
467
467
  "type": "route-group",
468
468
  "domain": "memory",
469
469
  "sourcePath": "src/server/routes.ts",
470
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
470
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
471
471
  "since": "2025-01-01"
472
472
  },
473
473
  "route-group:semantic": {
@@ -475,7 +475,7 @@
475
475
  "type": "route-group",
476
476
  "domain": "memory",
477
477
  "sourcePath": "src/server/routes.ts",
478
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
478
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
479
479
  "since": "2025-01-01"
480
480
  },
481
481
  "route-group:status": {
@@ -483,7 +483,7 @@
483
483
  "type": "route-group",
484
484
  "domain": "monitoring",
485
485
  "sourcePath": "src/server/routes.ts",
486
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
486
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
487
487
  "since": "2025-01-01"
488
488
  },
489
489
  "route-group:capabilities": {
@@ -491,7 +491,7 @@
491
491
  "type": "route-group",
492
492
  "domain": "mapping",
493
493
  "sourcePath": "src/server/routes.ts",
494
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
494
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
495
495
  "since": "2025-01-01"
496
496
  },
497
497
  "route-group:project-map": {
@@ -499,7 +499,7 @@
499
499
  "type": "route-group",
500
500
  "domain": "mapping",
501
501
  "sourcePath": "src/server/routes.ts",
502
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
502
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
503
503
  "since": "2025-01-01"
504
504
  },
505
505
  "route-group:coherence": {
@@ -507,7 +507,7 @@
507
507
  "type": "route-group",
508
508
  "domain": "coherence",
509
509
  "sourcePath": "src/server/routes.ts",
510
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
510
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
511
511
  "since": "2025-01-01"
512
512
  },
513
513
  "route-group:topic-bindings": {
@@ -515,7 +515,7 @@
515
515
  "type": "route-group",
516
516
  "domain": "sessions",
517
517
  "sourcePath": "src/server/routes.ts",
518
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
518
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
519
519
  "since": "2025-01-01"
520
520
  },
521
521
  "route-group:context": {
@@ -523,7 +523,7 @@
523
523
  "type": "route-group",
524
524
  "domain": "context",
525
525
  "sourcePath": "src/server/routes.ts",
526
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
526
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
527
527
  "since": "2025-01-01"
528
528
  },
529
529
  "route-group:scope-coherence": {
@@ -531,7 +531,7 @@
531
531
  "type": "route-group",
532
532
  "domain": "coherence",
533
533
  "sourcePath": "src/server/routes.ts",
534
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
534
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
535
535
  "since": "2025-01-01"
536
536
  },
537
537
  "route-group:canonical-state": {
@@ -539,7 +539,7 @@
539
539
  "type": "route-group",
540
540
  "domain": "state",
541
541
  "sourcePath": "src/server/routes.ts",
542
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
542
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
543
543
  "since": "2025-01-01"
544
544
  },
545
545
  "route-group:ci": {
@@ -547,7 +547,7 @@
547
547
  "type": "route-group",
548
548
  "domain": "monitoring",
549
549
  "sourcePath": "src/server/routes.ts",
550
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
550
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
551
551
  "since": "2025-01-01"
552
552
  },
553
553
  "route-group:sessions": {
@@ -555,7 +555,7 @@
555
555
  "type": "route-group",
556
556
  "domain": "sessions",
557
557
  "sourcePath": "src/server/routes.ts",
558
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
558
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
559
559
  "since": "2025-01-01"
560
560
  },
561
561
  "route-group:jobs": {
@@ -563,7 +563,7 @@
563
563
  "type": "route-group",
564
564
  "domain": "scheduling",
565
565
  "sourcePath": "src/server/routes.ts",
566
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
566
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
567
567
  "since": "2025-01-01"
568
568
  },
569
569
  "route-group:skip-ledger": {
@@ -571,7 +571,7 @@
571
571
  "type": "route-group",
572
572
  "domain": "scheduling",
573
573
  "sourcePath": "src/server/routes.ts",
574
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
574
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
575
575
  "since": "2025-01-01"
576
576
  },
577
577
  "route-group:telegram": {
@@ -579,7 +579,7 @@
579
579
  "type": "route-group",
580
580
  "domain": "communication",
581
581
  "sourcePath": "src/server/routes.ts",
582
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
582
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
583
583
  "since": "2025-01-01"
584
584
  },
585
585
  "route-group:attention": {
@@ -587,7 +587,7 @@
587
587
  "type": "route-group",
588
588
  "domain": "communication",
589
589
  "sourcePath": "src/server/routes.ts",
590
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
590
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
591
591
  "since": "2025-01-01"
592
592
  },
593
593
  "route-group:relationships": {
@@ -595,7 +595,7 @@
595
595
  "type": "route-group",
596
596
  "domain": "relationships",
597
597
  "sourcePath": "src/server/routes.ts",
598
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
598
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
599
599
  "since": "2025-01-01"
600
600
  },
601
601
  "route-group:feedback": {
@@ -603,7 +603,7 @@
603
603
  "type": "route-group",
604
604
  "domain": "feedback",
605
605
  "sourcePath": "src/server/routes.ts",
606
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
606
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
607
607
  "since": "2025-01-01"
608
608
  },
609
609
  "route-group:updates": {
@@ -611,7 +611,7 @@
611
611
  "type": "route-group",
612
612
  "domain": "updates",
613
613
  "sourcePath": "src/server/routes.ts",
614
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
614
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
615
615
  "since": "2025-01-01"
616
616
  },
617
617
  "route-group:dispatches": {
@@ -619,7 +619,7 @@
619
619
  "type": "route-group",
620
620
  "domain": "dispatches",
621
621
  "sourcePath": "src/server/routes.ts",
622
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
622
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
623
623
  "since": "2025-01-01"
624
624
  },
625
625
  "route-group:quota": {
@@ -627,7 +627,7 @@
627
627
  "type": "route-group",
628
628
  "domain": "monitoring",
629
629
  "sourcePath": "src/server/routes.ts",
630
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
630
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
631
631
  "since": "2025-01-01"
632
632
  },
633
633
  "route-group:publishing": {
@@ -635,7 +635,7 @@
635
635
  "type": "route-group",
636
636
  "domain": "publishing",
637
637
  "sourcePath": "src/server/routes.ts",
638
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
638
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
639
639
  "since": "2025-01-01"
640
640
  },
641
641
  "route-group:private-views": {
@@ -643,7 +643,7 @@
643
643
  "type": "route-group",
644
644
  "domain": "publishing",
645
645
  "sourcePath": "src/server/routes.ts",
646
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
646
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
647
647
  "since": "2025-01-01"
648
648
  },
649
649
  "route-group:tunnel": {
@@ -651,7 +651,7 @@
651
651
  "type": "route-group",
652
652
  "domain": "networking",
653
653
  "sourcePath": "src/server/routes.ts",
654
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
654
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
655
655
  "since": "2025-01-01"
656
656
  },
657
657
  "route-group:events": {
@@ -659,7 +659,7 @@
659
659
  "type": "route-group",
660
660
  "domain": "networking",
661
661
  "sourcePath": "src/server/routes.ts",
662
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
662
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
663
663
  "since": "2025-01-01"
664
664
  },
665
665
  "route-group:evolution": {
@@ -667,7 +667,7 @@
667
667
  "type": "route-group",
668
668
  "domain": "evolution",
669
669
  "sourcePath": "src/server/routes.ts",
670
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
670
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
671
671
  "since": "2025-01-01"
672
672
  },
673
673
  "route-group:watchdog": {
@@ -675,7 +675,7 @@
675
675
  "type": "route-group",
676
676
  "domain": "monitoring",
677
677
  "sourcePath": "src/server/routes.ts",
678
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
678
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
679
679
  "since": "2025-01-01"
680
680
  },
681
681
  "route-group:topic-memory": {
@@ -683,7 +683,7 @@
683
683
  "type": "route-group",
684
684
  "domain": "memory",
685
685
  "sourcePath": "src/server/routes.ts",
686
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
686
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
687
687
  "since": "2025-01-01"
688
688
  },
689
689
  "route-group:state-sync": {
@@ -691,7 +691,7 @@
691
691
  "type": "route-group",
692
692
  "domain": "coordination",
693
693
  "sourcePath": "src/server/routes.ts",
694
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
694
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
695
695
  "since": "2025-01-01"
696
696
  },
697
697
  "route-group:intent": {
@@ -699,7 +699,7 @@
699
699
  "type": "route-group",
700
700
  "domain": "intent",
701
701
  "sourcePath": "src/server/routes.ts",
702
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
702
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
703
703
  "since": "2025-01-01"
704
704
  },
705
705
  "route-group:triage": {
@@ -707,7 +707,7 @@
707
707
  "type": "route-group",
708
708
  "domain": "safety",
709
709
  "sourcePath": "src/server/routes.ts",
710
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
710
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
711
711
  "since": "2025-01-01"
712
712
  },
713
713
  "route-group:operations": {
@@ -715,7 +715,7 @@
715
715
  "type": "route-group",
716
716
  "domain": "safety",
717
717
  "sourcePath": "src/server/routes.ts",
718
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
718
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
719
719
  "since": "2025-01-01"
720
720
  },
721
721
  "route-group:sentinel": {
@@ -723,7 +723,7 @@
723
723
  "type": "route-group",
724
724
  "domain": "safety",
725
725
  "sourcePath": "src/server/routes.ts",
726
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
726
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
727
727
  "since": "2025-01-01"
728
728
  },
729
729
  "route-group:trust": {
@@ -731,7 +731,7 @@
731
731
  "type": "route-group",
732
732
  "domain": "safety",
733
733
  "sourcePath": "src/server/routes.ts",
734
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
734
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
735
735
  "since": "2025-01-01"
736
736
  },
737
737
  "route-group:monitoring": {
@@ -739,7 +739,7 @@
739
739
  "type": "route-group",
740
740
  "domain": "monitoring",
741
741
  "sourcePath": "src/server/routes.ts",
742
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
742
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
743
743
  "since": "2025-01-01"
744
744
  },
745
745
  "route-group:commitments": {
@@ -747,7 +747,7 @@
747
747
  "type": "route-group",
748
748
  "domain": "commitments",
749
749
  "sourcePath": "src/server/routes.ts",
750
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
750
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
751
751
  "since": "2025-01-01"
752
752
  },
753
753
  "route-group:episodes": {
@@ -755,7 +755,7 @@
755
755
  "type": "route-group",
756
756
  "domain": "memory",
757
757
  "sourcePath": "src/server/routes.ts",
758
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
758
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
759
759
  "since": "2025-01-01"
760
760
  },
761
761
  "route-group:messages": {
@@ -763,7 +763,7 @@
763
763
  "type": "route-group",
764
764
  "domain": "coordination",
765
765
  "sourcePath": "src/server/routes.ts",
766
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
766
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
767
767
  "since": "2025-01-01"
768
768
  },
769
769
  "route-group:system-reviews": {
@@ -771,7 +771,7 @@
771
771
  "type": "route-group",
772
772
  "domain": "monitoring",
773
773
  "sourcePath": "src/server/routes.ts",
774
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
774
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
775
775
  "since": "2025-01-01"
776
776
  },
777
777
  "route-group:machine-mesh": {
@@ -787,7 +787,7 @@
787
787
  "type": "route-group",
788
788
  "domain": "security",
789
789
  "sourcePath": "src/server/routes.ts",
790
- "contentHash": "b6ab92a8858902593a9c768bcfb810aee7605f4ea4adf5c59775e426fb40824a",
790
+ "contentHash": "b1bd4789da4ed30ca14fcb8270f604255a5b79261945700e9cfccf1ee65a6f88",
791
791
  "since": "2025-01-01"
792
792
  },
793
793
  "cli:init": {
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "generatedFrom": "source-tree",
4
4
  "registrySha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
5
- "packageVersion": "1.3.1620",
5
+ "packageVersion": "1.3.1621",
6
6
  "guards": [
7
7
  {
8
8
  "ref": "docs/audits/phase-b/f10-triage.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha256": "4795a5a0eb1a55a37da15addfc53189b25e9aaab6e5b625144101e2de92f2b0c",
2
+ "sha256": "da21716275caefa7f4ca6007e41697a4ccb0429bb58765ba010f7934615f992b",
3
3
  "registrySha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
4
- "packageVersion": "1.3.1620"
4
+ "packageVersion": "1.3.1621"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "sha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
3
3
  "articleCount": 93,
4
4
  "generatedFrom": "docs/STANDARDS-REGISTRY.md",
5
- "packageVersion": "1.3.1620"
5
+ "packageVersion": "1.3.1621"
6
6
  }
@@ -0,0 +1,27 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ - A session started directly into a topic (the spawn request with a written task) now starts on that topic's pinned model and engine, unless the request names its own. It also records what it started with.
9
+ - After a server restart, sessions with no record of how they started are no longer restarted "to apply the pinned profile". That restart was killing freshly started tasks: the new session rebuilt its context from the topic's chat history, which never held the task, so it sat idle. It happened more than 20 times between 2026-11-01 and 2026-11-03.
10
+ - When a directly started session does need a real profile restart that starts a new conversation, its original task brief is carried into the new session.
11
+
12
+ ## What to Tell Your User
13
+
14
+ - **Started tasks keep going after restarts**: "When I start a task in one of our topics, a server restart no longer makes me drop it to switch models. I start on the topic's model to begin with."
15
+
16
+ ## Summary of New Capabilities
17
+
18
+ | Capability | How to use |
19
+ |---|---|
20
+ | Direct topic spawns honour the topic profile | automatic |
21
+ | Profile restarts carry a direct spawn's brief | automatic |
22
+
23
+ ## Evidence
24
+
25
+ - On 2026-11-03 two bug sessions (topics 10000001407 and 10000001426) were each restarted within seconds of a server boot by the profile check. The profile log shows `boot-sweep-armed` and then `respawn-applied` with `method: continuation, fresh: true`. Their spawn prompts were not in the topic history, so both sessions idled.
26
+ - The profile check's durable record had no entry for either session before the restart. Only the orchestrator's own restart wrote one.
27
+ - New tests: the direct-spawn route test (`tests/integration/sessions-spawn-topic-profile.test.ts`) and the full-server test (`tests/e2e/topic-profile-direct-spawn-lifecycle.test.ts`) spawn into a pinned topic, simulate a server restart, and confirm there is no restart. A session with no record is left alone, and a real pin change names the replaced session so its brief can be carried.
@@ -0,0 +1,24 @@
1
+ # ELI16 — Profile restarts stop wiping out freshly started tasks
2
+
3
+ ## The problem in plain words
4
+
5
+ A conversation topic can have a "pinned profile": which AI engine and which model its session should run on. Instar keeps a small record of which profile each running session was actually started with. When the server restarts, it checks every running session against that record. If the record says "this session is on the wrong profile", it restarts the session on the right one.
6
+
7
+ There are two ways to start a session in a topic. A normal one starts when a message arrives in the topic. A direct one is started through the server's spawn request with a written task (the "brief"). The direct way never looked up the topic's profile, and it never wrote down what it started with.
8
+
9
+ So after the next server restart, the check found no record for those sessions and treated "no record" as "wrong profile". It restarted them. The restarted session rebuilds its memory from the topic's chat history, but a direct spawn's brief is never posted to the chat. The new session saw nothing to do, sat idle, and the task was lost. This happened to two bug-fixing sessions on 2026-11-03, and the profile log shows the same unneeded restart more than 20 times since 2026-11-01.
10
+
11
+ ## The fix
12
+
13
+ 1. **Direct spawns use the topic's profile.** If the request doesn't name an engine or model, the direct spawn looks up the topic's profile (from the same place normal spawns use) and starts on it. Then it writes down what it started with, so the restart check has a true record.
14
+ 2. **No record no longer means wrong.** If the check finds a running session with no record at all, it leaves the session alone and logs that. The pinned profile still takes effect the next time that session starts normally.
15
+ 3. **A real profile restart keeps the task.** The direct spawn also saves its brief. If the session is later restarted for a real profile change and the restart has to start a new conversation, the brief goes into the new session's opening message. The new session is told to check the history first, so it won't redo finished work. The saved brief only goes to the session it belongs to (and to that session's replacement), never to an unrelated later session in the same topic.
16
+
17
+ ## What changed and what didn't
18
+
19
+ - Changed: direct spawns into a topic now run on that topic's profile unless the request names its own engine or model. A request that names one still gets what it asked for.
20
+ - Changed: the server no longer restarts sessions just because it has no record of how they started.
21
+ - Unchanged: when the record shows a session really is on the wrong profile, it is still restarted the same way, at the same moment (only when the session is idle).
22
+ - Unchanged: spawns with no topic behave exactly as before.
23
+
24
+ A revert of this one commit fully undoes it. There is no data migration. Saved briefs are small files in the agent's state folder.