@cohortapp/agent-sdk 2.11.2 → 2.11.3

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.
@@ -38,7 +38,11 @@ skills:
38
38
  workflows:
39
39
  - { id: weekly-operating-review, name: "Weekly operating review", cadence: weekly, purpose: "Run the leadership operating cadence: surface on-track/at-risk OKRs, blockers and decisions needed, then publish the review" }
40
40
  - { id: commitment-sweep, name: "Commitment closure sweep", cadence: daily, purpose: "Sweep open action items and commitments, chase ageing/overdue owners, and keep the register clean" }
41
- - { id: inbox-to-outcome, name: "Inbox-to-outcome triage", cadence: continuous, purpose: "Convert the principal's inbox and inbound channels into routed actions, decisions and tracked commitments" }
41
+ # inbox-to-outcome (cadence: continuous) removed 2026-08-25: it generated a
42
+ # continuous cadence + plist expecting schedules/triggers/inbox-to-outcome.md,
43
+ # which does not exist, so it span skipped_circuit_open forever and padded the
44
+ # queue. Real inbox triage is already covered by the STANDARD_CADENCES
45
+ # inbox-processor + messaging-inbound (both have prompts). No replacement needed.
42
46
  - { id: board-cadence, name: "Board and investor cadence", cadence: quarterly, purpose: "Drive the board meeting cycle end to end — pre-reads, pack, decisions-sought and post-meeting action closure" }
43
47
  - { id: quarterly-planning, name: "Quarterly planning and OKRs", cadence: quarterly, purpose: "Open and run the planning cycle: refresh strategy, set objectives, cascade owners and lock roadmap traceability" }
44
48
  - { id: leadership-meeting-cycle, name: "Leadership meeting cycle", cadence: weekly, purpose: "Architect, pre-read, capture and follow up the recurring leadership-team and exec-staff meetings" }
@@ -344,6 +344,15 @@ export function compilePlan(input = {}) {
344
344
  for (const c of archetypeCadences) {
345
345
  if (!c || !c.id) continue;
346
346
  if (c.scope === "standard") continue; // already emitted verbatim above
347
+ // A `cadence: continuous` capability (inbox triage, SLA/obligation watch) is
348
+ // a standing REAL-TIME responsibility, NOT a launchd tick. It ships no
349
+ // schedules/triggers/<id>.md, so compiling it to a SCHEDULE fires every
350
+ // interval, finds no prompt, and spins `skipped_circuit_open` forever,
351
+ // padding the cadence-bus queue on every seat. Do NOT schedule it; the
352
+ // daemon's real-time loop owns the capability. The legacy producer
353
+ // (scripts/setup/generate-cadences.mjs) applies the SAME skip, so the two
354
+ // stay byte-identical (mandate.test.mjs COMPATIBILITY).
355
+ if (c.cadence === "continuous") continue;
347
356
  const key = `schedule.${c.id}`;
348
357
  if (obligations.some((o) => o.key === key)) continue;
349
358
  const uses = resolveUses(usesForArchetypeCadence(c, reachable), key);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cohortapp/agent-sdk",
3
- "version": "2.11.2",
3
+ "version": "2.11.3",
4
4
  "description": "Cohort Agent SDK — autonomous AI colleague runtime. Deploy senior AI colleagues on dedicated Mac minis, wired to the Cohort operating surface.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -59,7 +59,15 @@ async function main() {
59
59
  // resolveArchetype validates the pair; throws if invalid.
60
60
  await resolveArchetype(sel);
61
61
 
62
- const cadences = await resolveCadences(sel);
62
+ // A `cadence: continuous` capability (inbox triage, SLA/obligation watch) is a
63
+ // standing REAL-TIME responsibility, NOT a launchd tick: it ships no
64
+ // schedules/triggers/<id>.md, so scheduling it fires every interval, finds no
65
+ // prompt, and spins `skipped_circuit_open` forever, padding the cadence-bus
66
+ // queue. Drop it here so it never becomes a cadence/registry/plist entry; the
67
+ // daemon's real-time loop owns the capability. The plan compiler
68
+ // (lib/plan/compile.mjs §2) applies the SAME skip, so the two producers stay
69
+ // byte-identical (mandate.test.mjs COMPATIBILITY).
70
+ const cadences = (await resolveCadences(sel)).filter((c) => c.cadence !== "continuous");
63
71
 
64
72
  mkdirSync(join(AGENT_ROOT, "config"), { recursive: true });
65
73
  writeFileSync(join(AGENT_ROOT, "config", "cadences.yaml"),