instar 1.3.1304 → 1.3.1306
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/dashboard/feedback-readiness-authority.js +155 -0
- package/dashboard/index.html +34 -0
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +1 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/IntelligenceRouter.d.ts +19 -0
- package/dist/core/IntelligenceRouter.d.ts.map +1 -1
- package/dist/core/IntelligenceRouter.js +37 -0
- package/dist/core/IntelligenceRouter.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +30 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/TopicIntentCapture.d.ts +4 -1
- package/dist/core/TopicIntentCapture.d.ts.map +1 -1
- package/dist/core/TopicIntentCapture.js +13 -0
- package/dist/core/TopicIntentCapture.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/feedback-factory/drain/readinessAuthorityProposal.d.ts +70 -0
- package/dist/feedback-factory/drain/readinessAuthorityProposal.d.ts.map +1 -0
- package/dist/feedback-factory/drain/readinessAuthorityProposal.js +93 -0
- package/dist/feedback-factory/drain/readinessAuthorityProposal.js.map +1 -0
- package/dist/monitoring/WorktreeMonitor.d.ts +15 -0
- package/dist/monitoring/WorktreeMonitor.d.ts.map +1 -1
- package/dist/monitoring/WorktreeMonitor.js +90 -14
- package/dist/monitoring/WorktreeMonitor.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +11 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +3 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +5 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +44 -1
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/scaffold/templates.ts +11 -0
- package/upgrades/1.3.1306.md +125 -0
- package/upgrades/side-effects/feedback-readiness-authority-card.md +105 -0
- package/upgrades/side-effects/worktree-monitor-dedupe.md +133 -0
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
import type { IntelligenceProvider } from './types.js';
|
|
28
28
|
import type { TopicIntentStore, EstablishedRef, ProjectionResult } from './TopicIntent.js';
|
|
29
29
|
import type { TopicIntentExtractor } from './TopicIntentExtractor.js';
|
|
30
|
+
import type { MessageProvenance } from '../messaging/shared/MessageProvenance.js';
|
|
30
31
|
/**
|
|
31
32
|
* Decide whether a turn is worth sending to the extractor. Deterministic and
|
|
32
33
|
* FAIL-OPEN: returns true (capture) unless the turn is high-confidence trivial.
|
|
@@ -80,6 +81,8 @@ export interface CaptureTurnEntry {
|
|
|
80
81
|
fromUser: boolean;
|
|
81
82
|
/** ISO8601 string or epoch ms. */
|
|
82
83
|
timestamp?: string | number;
|
|
84
|
+
/** Structural origin stamped at the send/receive seam. `automation` is not captured. */
|
|
85
|
+
provenance?: MessageProvenance;
|
|
83
86
|
}
|
|
84
87
|
/** Minimal rolling-summary surface (satisfied by TopicMemory). */
|
|
85
88
|
export interface RollingSummaryProvider {
|
|
@@ -101,7 +104,7 @@ export interface CaptureLoopDeps {
|
|
|
101
104
|
};
|
|
102
105
|
now?: () => number;
|
|
103
106
|
}
|
|
104
|
-
export type CaptureStatus = 'captured' | 'skipped-prefilter' | 'skipped-shed' | 'skipped-rate' | 'no-topic' | 'degraded';
|
|
107
|
+
export type CaptureStatus = 'captured' | 'skipped-prefilter' | 'skipped-automation' | 'skipped-shed' | 'skipped-rate' | 'no-topic' | 'degraded';
|
|
105
108
|
export interface CaptureOutcome {
|
|
106
109
|
status: CaptureStatus;
|
|
107
110
|
emitted?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicIntentCapture.d.ts","sourceRoot":"","sources":["../../src/core/TopicIntentCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"TopicIntentCapture.d.ts","sourceRoot":"","sources":["../../src/core/TopicIntentCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,6 +186,19 @@ export async function captureTurn(deps, entry, rateState) {
|
|
|
186
186
|
const turn = entry.fromUser
|
|
187
187
|
? deps.store.bumpTurn(topicId)
|
|
188
188
|
: (deps.store.read(topicId).turn ?? 0);
|
|
189
|
+
// Server-generated traffic (job sends, monitor/sentinel notices, standby
|
|
190
|
+
// lines) is not conversation. It was ~64% of extractor tokens and mostly
|
|
191
|
+
// filed near-identical "unmerged branches" facts
|
|
192
|
+
// (docs/research/jev/field-notes/2026-09-30-idea1-intent-skip.md). Keyed on
|
|
193
|
+
// the structural provenance stamp, never on text; a missing stamp (legacy
|
|
194
|
+
// or unstamped path) is still captured. Skipping also skips this message's
|
|
195
|
+
// awareness refresh; the rolling topic summary still covers automated
|
|
196
|
+
// messages, so the next conversational turn's extraction sees them as
|
|
197
|
+
// context.
|
|
198
|
+
if (entry.provenance === 'automation') {
|
|
199
|
+
deps.store.bumpCaptureCounters(topicId, { turns_seen: 1, prefilter_skipped: 1 });
|
|
200
|
+
return { status: 'skipped-automation' };
|
|
201
|
+
}
|
|
189
202
|
// Pre-filter — deterministic, fail-open.
|
|
190
203
|
if (!isSubstantiveTurn(entry.text, entry.fromUser)) {
|
|
191
204
|
deps.store.bumpCaptureCounters(topicId, { turns_seen: 1, prefilter_skipped: 1 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicIntentCapture.js","sourceRoot":"","sources":["../../src/core/TopicIntentCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"TopicIntentCapture.js","sourceRoot":"","sources":["../../src/core/TopicIntentCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedFrom": "source-tree",
|
|
4
4
|
"registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
|
|
5
|
-
"packageVersion": "1.3.
|
|
5
|
+
"packageVersion": "1.3.1306",
|
|
6
6
|
"guards": [
|
|
7
7
|
{
|
|
8
8
|
"ref": "docs/audits/phase-b/f10-triage.md",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha256": "
|
|
2
|
+
"sha256": "9d2b94ed062abcb19c926d4a3bf67ef895b0512f7976e9e27dcdf0ae6b37152a",
|
|
3
3
|
"registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
|
|
4
|
-
"packageVersion": "1.3.
|
|
4
|
+
"packageVersion": "1.3.1306"
|
|
5
5
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-computed proposal for the feedback readiness authority record.
|
|
3
|
+
*
|
|
4
|
+
* The operator approves the authority from the dashboard with their PIN; they never
|
|
5
|
+
* type technical fields. Every binding the runtime later compares (agent id, owner
|
|
6
|
+
* machine + epoch, resolved provider/model, prompt/schema/decision-point ids) is
|
|
7
|
+
* derived here from the live server, so a registration made from this proposal is
|
|
8
|
+
* the one the drain tick and the arbiter will accept. Only the spend/batch envelope
|
|
9
|
+
* is operator-editable. This module decides nothing: registration stays behind the
|
|
10
|
+
* PIN-gated route (docs/specs/feedback-factory-operating-drain.md §2).
|
|
11
|
+
*/
|
|
12
|
+
import type { AuthorityRecord } from './FeedbackDrainStore.js';
|
|
13
|
+
import type { IntelligenceFramework } from '../../core/intelligenceProviderFactory.js';
|
|
14
|
+
export declare const READINESS_AUTHORITY_ID = "feedback-readiness-default";
|
|
15
|
+
/** The attribution the arbiter sends on every call — the preview must use the same facts. */
|
|
16
|
+
export declare const READINESS_ARBITER_ROUTING: {
|
|
17
|
+
readonly component: "FeedbackReadinessArbiter";
|
|
18
|
+
readonly category: "gate";
|
|
19
|
+
readonly nature: "B";
|
|
20
|
+
readonly injectionExposed: true;
|
|
21
|
+
readonly model: "capable";
|
|
22
|
+
};
|
|
23
|
+
/** Operator-approved defaults (Justin, topic 95267, 2026-09-30): 50 per batch, $5/day. The arbiter clamps tokens to 1200. */
|
|
24
|
+
export declare const READINESS_ENVELOPE_DEFAULTS: {
|
|
25
|
+
readonly maxBatch: 50;
|
|
26
|
+
readonly maxTokens: 1200;
|
|
27
|
+
readonly maxDailySpendUsd: 5;
|
|
28
|
+
};
|
|
29
|
+
export type ReadinessEnvelope = {
|
|
30
|
+
maxBatch: number;
|
|
31
|
+
maxTokens: number;
|
|
32
|
+
maxDailySpendUsd: number;
|
|
33
|
+
};
|
|
34
|
+
export type ReadinessAuthorityFields = Omit<AuthorityRecord, 'generation' | 'revoked'>;
|
|
35
|
+
export interface ReadinessAuthorityProposalInput {
|
|
36
|
+
agentId: string;
|
|
37
|
+
/** The drain's owner binding; ownerMachineId null when no operated host is configured. */
|
|
38
|
+
binding: {
|
|
39
|
+
ownerMachineId: string | null;
|
|
40
|
+
ownerEpoch: number;
|
|
41
|
+
};
|
|
42
|
+
/** IntelligenceRouter.previewPrimary for READINESS_ARBITER_ROUTING; null = no route. */
|
|
43
|
+
route: {
|
|
44
|
+
framework: IntelligenceFramework;
|
|
45
|
+
model: string | undefined;
|
|
46
|
+
} | null;
|
|
47
|
+
/** config.sessions.frameworkDefaultModels['pi-cli'] — pi reports this pattern regardless of hints. */
|
|
48
|
+
piModel?: string;
|
|
49
|
+
current: AuthorityRecord | null;
|
|
50
|
+
currentMode?: 'active' | 'proposal-only';
|
|
51
|
+
envelope?: Partial<ReadinessEnvelope>;
|
|
52
|
+
}
|
|
53
|
+
export interface ReadinessAuthorityProposal {
|
|
54
|
+
status: 'none' | 'active' | 'proposal-only' | 'revoked';
|
|
55
|
+
current: (AuthorityRecord & {
|
|
56
|
+
matchesProposal: boolean;
|
|
57
|
+
}) | null;
|
|
58
|
+
proposal: ReadinessAuthorityFields | null;
|
|
59
|
+
/** Plain reasons the proposal cannot be approved yet; empty when it can. */
|
|
60
|
+
blockers: string[];
|
|
61
|
+
/** The action an Approve tap performs in this state, or null when nothing to approve. */
|
|
62
|
+
approveAction: 'create' | 'replace' | 'restore' | null;
|
|
63
|
+
summary: string;
|
|
64
|
+
}
|
|
65
|
+
/** The model string the provider will report via onModel for this hint (what the arbiter compares). */
|
|
66
|
+
export declare function reportedModelFor(framework: IntelligenceFramework, hint: string | undefined, piModel?: string): string | null;
|
|
67
|
+
export declare function envelopeProblems(envelope: ReadinessEnvelope): string[];
|
|
68
|
+
export declare function plainSummary(envelope: ReadinessEnvelope): string;
|
|
69
|
+
export declare function buildReadinessAuthorityProposal(input: ReadinessAuthorityProposalInput): ReadinessAuthorityProposal;
|
|
70
|
+
//# sourceMappingURL=readinessAuthorityProposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readinessAuthorityProposal.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/drain/readinessAuthorityProposal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAUvF,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AACnE,6FAA6F;AAC7F,eAAO,MAAM,yBAAyB;;;;;;CAA8H,CAAC;AACrK,6HAA6H;AAC7H,eAAO,MAAM,2BAA2B;;;;CAAkE,CAAC;AAE3G,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AAClG,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAEvF,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,wFAAwF;IACxF,KAAK,EAAE;QAAE,SAAS,EAAE,qBAAqB,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;IACxD,OAAO,EAAE,CAAC,eAAe,GAAG;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACjE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC1C,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yFAAyF;IACzF,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ5H;AAYD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAMtE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAGhE;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,+BAA+B,GAAG,0BAA0B,CA8ClH"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { FEEDBACK_READINESS_DECISION_POINT, FEEDBACK_READINESS_PROMPT_ID, FEEDBACK_READINESS_SCHEMA_ID, } from './FeedbackReadinessArbiter.js';
|
|
2
|
+
import { resolveCliFlag } from '../../core/models.js';
|
|
3
|
+
import { resolveCliModelFlag as codexModelFlag } from '../../providers/adapters/openai-codex/models.js';
|
|
4
|
+
import { resolveCliModelFlag as geminiModelFlag } from '../../providers/adapters/gemini-cli/models.js';
|
|
5
|
+
export const READINESS_AUTHORITY_ID = 'feedback-readiness-default';
|
|
6
|
+
/** The attribution the arbiter sends on every call — the preview must use the same facts. */
|
|
7
|
+
export const READINESS_ARBITER_ROUTING = { component: 'FeedbackReadinessArbiter', category: 'gate', nature: 'B', injectionExposed: true, model: 'capable' };
|
|
8
|
+
/** Operator-approved defaults (Justin, topic 95267, 2026-09-30): 50 per batch, $5/day. The arbiter clamps tokens to 1200. */
|
|
9
|
+
export const READINESS_ENVELOPE_DEFAULTS = { maxBatch: 50, maxTokens: 1200, maxDailySpendUsd: 5 };
|
|
10
|
+
/** The model string the provider will report via onModel for this hint (what the arbiter compares). */
|
|
11
|
+
export function reportedModelFor(framework, hint, piModel) {
|
|
12
|
+
switch (framework) {
|
|
13
|
+
case 'claude-code': return resolveCliFlag(hint ?? 'capable');
|
|
14
|
+
case 'codex-cli': return codexModelFlag(hint);
|
|
15
|
+
case 'gemini-cli': return geminiModelFlag(hint);
|
|
16
|
+
case 'pi-cli': return piModel?.trim() || null;
|
|
17
|
+
default: return hint?.trim() || null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function envelopeFrom(input, fallback) {
|
|
21
|
+
const base = fallback ?? READINESS_ENVELOPE_DEFAULTS;
|
|
22
|
+
const pick = (value, dflt) => (value === undefined || value === null || value === '' ? dflt : Number(value));
|
|
23
|
+
return {
|
|
24
|
+
maxBatch: pick(input?.maxBatch, base.maxBatch),
|
|
25
|
+
maxTokens: pick(input?.maxTokens, base.maxTokens),
|
|
26
|
+
maxDailySpendUsd: pick(input?.maxDailySpendUsd, base.maxDailySpendUsd),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function envelopeProblems(envelope) {
|
|
30
|
+
const out = [];
|
|
31
|
+
if (!Number.isSafeInteger(envelope.maxBatch) || envelope.maxBatch < 1 || envelope.maxBatch > 50)
|
|
32
|
+
out.push('Batch size must be a whole number from 1 to 50.');
|
|
33
|
+
if (!Number.isSafeInteger(envelope.maxTokens) || envelope.maxTokens < 128 || envelope.maxTokens > 100_000)
|
|
34
|
+
out.push('Token limit must be a whole number from 128 to 100000.');
|
|
35
|
+
if (!Number.isFinite(envelope.maxDailySpendUsd) || envelope.maxDailySpendUsd <= 0 || envelope.maxDailySpendUsd > 1000)
|
|
36
|
+
out.push('Daily spend cap must be more than $0 and at most $1000.');
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
export function plainSummary(envelope) {
|
|
40
|
+
return `Let the sorting model decide which feedback reports become work items: up to ${envelope.maxBatch} reports per batch, ` +
|
|
41
|
+
`at most $${envelope.maxDailySpendUsd} per day. Anything outside that comes to you.`;
|
|
42
|
+
}
|
|
43
|
+
const BINDING_FIELDS = ['agentId', 'ownerMachineId', 'ownerEpoch', 'provider', 'modelFamily', 'promptVersion', 'schemaVersion', 'decisionPointId'];
|
|
44
|
+
export function buildReadinessAuthorityProposal(input) {
|
|
45
|
+
const current = input.current;
|
|
46
|
+
// An existing record's envelope is the operator's last decision; keep it unless they edit it.
|
|
47
|
+
const envelope = envelopeFrom(input.envelope, current && !current.revoked
|
|
48
|
+
? { maxBatch: current.maxBatch, maxTokens: current.maxTokens, maxDailySpendUsd: current.maxDailySpendUsd } : undefined);
|
|
49
|
+
const blockers = [];
|
|
50
|
+
if (!input.agentId.trim())
|
|
51
|
+
blockers.push('This agent has no name configured.');
|
|
52
|
+
if (!input.binding.ownerMachineId)
|
|
53
|
+
blockers.push('No machine is configured to run the feedback drain here, so there is nothing to bind the authority to.');
|
|
54
|
+
if (!Number.isSafeInteger(input.binding.ownerEpoch) || input.binding.ownerEpoch < 1)
|
|
55
|
+
blockers.push('The drain owner epoch is not readable right now.');
|
|
56
|
+
const model = input.route ? reportedModelFor(input.route.framework, input.route.model, input.piModel) : null;
|
|
57
|
+
if (!input.route || !model)
|
|
58
|
+
blockers.push('No model is currently available to route the sorting decision to, so there is nothing to approve.');
|
|
59
|
+
blockers.push(...envelopeProblems(envelope));
|
|
60
|
+
const proposal = input.route && model && input.binding.ownerMachineId ? {
|
|
61
|
+
authorityId: READINESS_AUTHORITY_ID,
|
|
62
|
+
agentId: input.agentId,
|
|
63
|
+
ownerMachineId: input.binding.ownerMachineId,
|
|
64
|
+
ownerEpoch: input.binding.ownerEpoch,
|
|
65
|
+
provider: input.route.framework,
|
|
66
|
+
modelFamily: model,
|
|
67
|
+
promptVersion: FEEDBACK_READINESS_PROMPT_ID,
|
|
68
|
+
schemaVersion: FEEDBACK_READINESS_SCHEMA_ID,
|
|
69
|
+
decisionPointId: FEEDBACK_READINESS_DECISION_POINT,
|
|
70
|
+
...envelope,
|
|
71
|
+
} : null;
|
|
72
|
+
const matches = Boolean(current && proposal &&
|
|
73
|
+
BINDING_FIELDS.every((field) => current[field] === proposal[field]) &&
|
|
74
|
+
current.maxBatch === proposal.maxBatch && current.maxTokens === proposal.maxTokens &&
|
|
75
|
+
current.maxDailySpendUsd === proposal.maxDailySpendUsd);
|
|
76
|
+
const status = !current ? 'none'
|
|
77
|
+
: current.revoked ? 'revoked'
|
|
78
|
+
: input.currentMode === 'proposal-only' ? 'proposal-only' : 'active';
|
|
79
|
+
// A revoked record must be restored before it can be replaced (store rule); a demoted
|
|
80
|
+
// (proposal-only) record returns to active only through a new generation.
|
|
81
|
+
const approveAction = status === 'none' ? 'create'
|
|
82
|
+
: status === 'revoked' ? 'restore'
|
|
83
|
+
: matches && status === 'active' ? null : 'replace';
|
|
84
|
+
return {
|
|
85
|
+
status,
|
|
86
|
+
current: current ? { ...current, matchesProposal: matches } : null,
|
|
87
|
+
proposal,
|
|
88
|
+
blockers,
|
|
89
|
+
approveAction: blockers.length > 0 && approveAction !== 'restore' ? null : approveAction,
|
|
90
|
+
summary: plainSummary(envelope),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=readinessAuthorityProposal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readinessAuthorityProposal.js","sourceRoot":"","sources":["../../../src/feedback-factory/drain/readinessAuthorityProposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* 1. Post-session scan: fires after each session completes, checks for new worktrees
|
|
10
10
|
* 2. Periodic health scan: runs on interval, detects stale/orphan worktrees
|
|
11
11
|
*
|
|
12
|
+
* Announce on change only: each alert kind remembers the fingerprint of the
|
|
13
|
+
* set it last announced (persisted, so a restart does not re-announce). An
|
|
14
|
+
* unchanged set is re-announced at most once per `reminderIntervalMs`. Before
|
|
15
|
+
* this, the same two notices about one unmerged branch went out ~550 times a
|
|
16
|
+
* day (docs/research/jev/field-notes/2026-09-30-idea4-notification-tiering.md).
|
|
17
|
+
*
|
|
12
18
|
* Part of the Claude Code Feature Integration Audit (Item 1: Worktree Support).
|
|
13
19
|
*/
|
|
14
20
|
import { EventEmitter } from 'node:events';
|
|
@@ -52,6 +58,8 @@ export interface WorktreeMonitorConfig {
|
|
|
52
58
|
pollIntervalMs?: number;
|
|
53
59
|
/** Max worktree age before flagging as stale (ms). Default: 86400000 (24h). */
|
|
54
60
|
staleThresholdMs?: number;
|
|
61
|
+
/** Re-announce an unchanged, still-open finding at most this often (ms). Default: 86400000 (24h). */
|
|
62
|
+
reminderIntervalMs?: number;
|
|
55
63
|
/** Callback for sending alerts */
|
|
56
64
|
alertCallback?: (message: string) => Promise<void>;
|
|
57
65
|
}
|
|
@@ -60,6 +68,8 @@ export declare class WorktreeMonitor extends EventEmitter {
|
|
|
60
68
|
private interval;
|
|
61
69
|
private stateFile;
|
|
62
70
|
private lastReport;
|
|
71
|
+
private announcedFile;
|
|
72
|
+
private announced;
|
|
63
73
|
constructor(config: WorktreeMonitorConfig);
|
|
64
74
|
/** Start periodic health scanning. */
|
|
65
75
|
start(): void;
|
|
@@ -124,6 +134,11 @@ export declare class WorktreeMonitor extends EventEmitter {
|
|
|
124
134
|
* on a non-zero exit / timeout (matching the old spawnSync `result.stdout ?? ''`).
|
|
125
135
|
*/
|
|
126
136
|
private gitCommand;
|
|
137
|
+
/** True when `items` differ from the last announced set, or the reminder interval has passed. */
|
|
138
|
+
private isAnnounceDue;
|
|
139
|
+
/** Record the announced set; an empty set clears it so a reappearance announces again. */
|
|
140
|
+
private markAnnounced;
|
|
141
|
+
/** Returns true when the alert was delivered (or there is no callback to deliver to). */
|
|
127
142
|
private sendAlert;
|
|
128
143
|
private loadState;
|
|
129
144
|
private saveState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/WorktreeMonitor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"WorktreeMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/WorktreeMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* 1. Post-session scan: fires after each session completes, checks for new worktrees
|
|
10
10
|
* 2. Periodic health scan: runs on interval, detects stale/orphan worktrees
|
|
11
11
|
*
|
|
12
|
+
* Announce on change only: each alert kind remembers the fingerprint of the
|
|
13
|
+
* set it last announced (persisted, so a restart does not re-announce). An
|
|
14
|
+
* unchanged set is re-announced at most once per `reminderIntervalMs`. Before
|
|
15
|
+
* this, the same two notices about one unmerged branch went out ~550 times a
|
|
16
|
+
* day (docs/research/jev/field-notes/2026-09-30-idea4-notification-tiering.md).
|
|
17
|
+
*
|
|
12
18
|
* Part of the Claude Code Feature Integration Audit (Item 1: Worktree Support).
|
|
13
19
|
*/
|
|
14
20
|
import { execFile } from 'node:child_process';
|
|
@@ -20,11 +26,14 @@ const execFileAsync = promisify(execFile);
|
|
|
20
26
|
// ── Implementation ─────────────────────────────────────────────────
|
|
21
27
|
const DEFAULT_POLL_INTERVAL = 300_000; // 5 minutes
|
|
22
28
|
const DEFAULT_STALE_THRESHOLD = 86_400_000; // 24 hours
|
|
29
|
+
const DEFAULT_REMINDER_INTERVAL = 86_400_000; // 24 hours
|
|
23
30
|
export class WorktreeMonitor extends EventEmitter {
|
|
24
31
|
config;
|
|
25
32
|
interval = null;
|
|
26
33
|
stateFile;
|
|
27
34
|
lastReport = null;
|
|
35
|
+
announcedFile;
|
|
36
|
+
announced = {};
|
|
28
37
|
constructor(config) {
|
|
29
38
|
super();
|
|
30
39
|
this.config = config;
|
|
@@ -33,6 +42,7 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
33
42
|
fs.mkdirSync(stateDir, { recursive: true });
|
|
34
43
|
}
|
|
35
44
|
this.stateFile = path.join(stateDir, 'last-report.json');
|
|
45
|
+
this.announcedFile = path.join(stateDir, 'announced.json');
|
|
36
46
|
this.loadState();
|
|
37
47
|
}
|
|
38
48
|
/** Start periodic health scanning. */
|
|
@@ -66,10 +76,23 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
66
76
|
report.actions.push(`Copied ${copied} serendipity finding(s) from worktree ${wt.branch ?? wt.path}`);
|
|
67
77
|
}
|
|
68
78
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
report.
|
|
72
|
-
|
|
79
|
+
const items = [
|
|
80
|
+
...report.withUnmergedWork.map(d => `unmerged:${d.worktree.branch}`),
|
|
81
|
+
...report.orphanBranches.map(b => `orphan:${b}`),
|
|
82
|
+
];
|
|
83
|
+
if (items.length > 0) {
|
|
84
|
+
if (this.isAnnounceDue('session', items)) {
|
|
85
|
+
const message = this.formatSessionAlert(session, report);
|
|
86
|
+
report.actions.push(`Alert generated for session ${session.name}`);
|
|
87
|
+
if (await this.sendAlert(message))
|
|
88
|
+
this.markAnnounced('session', items);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
report.actions.push('Alert suppressed: findings unchanged since last announcement');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.markAnnounced('session', []);
|
|
73
96
|
}
|
|
74
97
|
this.saveState(report);
|
|
75
98
|
this.emit('scan', report);
|
|
@@ -153,10 +176,23 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
153
176
|
const age = ages[i];
|
|
154
177
|
return age !== null && age > staleThreshold;
|
|
155
178
|
});
|
|
179
|
+
const items = [
|
|
180
|
+
...staleWorktrees.map(wt => `stale:${wt.branch ?? wt.path}`),
|
|
181
|
+
...report.orphanBranches.map(b => `orphan:${b}`),
|
|
182
|
+
];
|
|
156
183
|
if (staleWorktrees.length > 0) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
184
|
+
if (this.isAnnounceDue('stale', items)) {
|
|
185
|
+
const message = await this.formatPeriodicAlert(report, staleWorktrees);
|
|
186
|
+
report.actions.push(`Stale worktree alert: ${staleWorktrees.length} worktree(s)`);
|
|
187
|
+
if (await this.sendAlert(message))
|
|
188
|
+
this.markAnnounced('stale', items);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
report.actions.push('Stale worktree alert suppressed: findings unchanged since last announcement');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
this.markAnnounced('stale', []);
|
|
160
196
|
}
|
|
161
197
|
this.saveState(report);
|
|
162
198
|
this.emit('scan', report);
|
|
@@ -363,14 +399,42 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
363
399
|
return typeof stdout === 'string' ? stdout : '';
|
|
364
400
|
}
|
|
365
401
|
}
|
|
402
|
+
/** True when `items` differ from the last announced set, or the reminder interval has passed. */
|
|
403
|
+
isAnnounceDue(kind, items) {
|
|
404
|
+
const prev = this.announced[kind];
|
|
405
|
+
if (!prev || prev.fingerprint !== fingerprintOf(items))
|
|
406
|
+
return true;
|
|
407
|
+
const reminder = this.config.reminderIntervalMs ?? DEFAULT_REMINDER_INTERVAL;
|
|
408
|
+
return Date.now() - prev.at >= reminder;
|
|
409
|
+
}
|
|
410
|
+
/** Record the announced set; an empty set clears it so a reappearance announces again. */
|
|
411
|
+
markAnnounced(kind, items) {
|
|
412
|
+
if (items.length === 0) {
|
|
413
|
+
if (!this.announced[kind])
|
|
414
|
+
return;
|
|
415
|
+
delete this.announced[kind];
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
this.announced[kind] = { fingerprint: fingerprintOf(items), at: Date.now() };
|
|
419
|
+
}
|
|
420
|
+
try {
|
|
421
|
+
fs.writeFileSync(this.announcedFile, JSON.stringify(this.announced, null, 2));
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
// Non-fatal — worst case is one repeat announcement after a restart
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
/** Returns true when the alert was delivered (or there is no callback to deliver to). */
|
|
366
428
|
async sendAlert(message) {
|
|
367
|
-
if (this.config.alertCallback)
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
429
|
+
if (!this.config.alertCallback)
|
|
430
|
+
return true;
|
|
431
|
+
try {
|
|
432
|
+
await this.config.alertCallback(message);
|
|
433
|
+
return true;
|
|
434
|
+
}
|
|
435
|
+
catch (err) {
|
|
436
|
+
this.emit('error', err);
|
|
437
|
+
return false;
|
|
374
438
|
}
|
|
375
439
|
}
|
|
376
440
|
loadState() {
|
|
@@ -382,6 +446,15 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
382
446
|
catch {
|
|
383
447
|
this.lastReport = null;
|
|
384
448
|
}
|
|
449
|
+
try {
|
|
450
|
+
if (fs.existsSync(this.announcedFile)) {
|
|
451
|
+
const parsed = JSON.parse(fs.readFileSync(this.announcedFile, 'utf-8'));
|
|
452
|
+
this.announced = parsed && typeof parsed === 'object' ? parsed : {};
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
this.announced = {};
|
|
457
|
+
}
|
|
385
458
|
}
|
|
386
459
|
saveState(report) {
|
|
387
460
|
this.lastReport = report;
|
|
@@ -393,4 +466,7 @@ export class WorktreeMonitor extends EventEmitter {
|
|
|
393
466
|
}
|
|
394
467
|
}
|
|
395
468
|
}
|
|
469
|
+
function fingerprintOf(items) {
|
|
470
|
+
return [...items].sort().join('\n');
|
|
471
|
+
}
|
|
396
472
|
//# sourceMappingURL=WorktreeMonitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeMonitor.js","sourceRoot":"","sources":["../../src/monitoring/WorktreeMonitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorktreeMonitor.js","sourceRoot":"","sources":["../../src/monitoring/WorktreeMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAgG/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E/F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAguDR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,WAAW,GAAE,OAAe,GAC3B,MAAM,CAwUR;AAED,4FAA4F;AAC5F,eAAO,MAAM,6BAA6B,mDAAmD,CAAC;AAE9F;+EAC+E;AAC/E,eAAO,MAAM,6BAA6B,qvBAAquB,CAAC;AAEhxB;;+DAE+D;AAC/D,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;+DAE+D;AAC/D,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD"}
|