Files
Keysat c2b84a1f26 architect: LP Objections page — UI trigger for the grounding pass (v0.1.0:66)
New admin "LP Objections" page (frontend ObjectionsPage + nav). Pick a segment (or
All LPs) and Run grounding: the Architect mines matched LP emails + notes on the local
model, scrubs every identifier through the redaction boundary, and asks Claude for the
recurring objections + honest rebuttals (substantiated/hand-wavy flagged). Renders the
de-identified draft + an "N identifiers protected" badge; fail-closed statuses
(local_model_unavailable / scrub_unavailable / claude_not_configured / rehydrate_failed)
show a clear message. Uses the existing /api/architect/ground route. Verified in preview:
page + segment selector + Run; the local minimize/scrub legs actually ran against real
Spark on synthetic input and fail-closed correctly at the (key-less) Claude step;
success rendering verified with a mocked ok response.

NOT yet deployed — start-cli RPC to the box hit a transient transport error post a
StartOS hiccup (curl works, start-cli doesn't); CRM healthy at v0.1.0:65 meanwhile.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 18:48:24 -05:00

20 lines
1.0 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
// LP Objections page: a UI trigger for the Architect's grounding pass. An admin picks
// a segment (or All LPs) and runs grounding — the Architect mines matched LP emails and
// notes on the local model, removes every identifier through the redaction boundary,
// and asks Claude for the recurring objections + honest rebuttals. Only de-identified
// themes leave Ten31. Uses the existing /api/architect/ground route; no schema change.
export const v_0_1_0_66 = VersionInfo.of({
version: '0.1.0:66',
releaseNotes: {
en_US: [
'New LP Objections page: run the Architect grounding pass over your matched LP email',
'to surface the recurring objections (and the strongest honest rebuttals) for any',
'segment. Everything sensitive is de-identified on your own hardware before Claude sees',
'it — only objection themes leave Ten31. Results are a draft for your review.',
].join(' '),
},
migrations: { up: async () => {}, down: async () => {} },
})