diff --git a/context/current-state.md b/context/current-state.md index 4bda825..8471ee1 100644 --- a/context/current-state.md +++ b/context/current-state.md @@ -2,9 +2,13 @@ v:1 # current-state -ACTIVE: 2026-07-27 [CC]. THREE separate sessions today. **(1) THIS SESSION, the Clerk sign-in blocker is ROOT-CAUSED and it was never a Clerk misconfiguration.** Two distinct faults, both GROUNDED by live curl against Clerk's own API. **Fault A, the Vercel URL can never authenticate:** the bundle carries `pk_live_Y2xlcmsuc3R0aWxzb2x1dGlvbnMuY29tJA` which decodes to `clerk.sttilsolutions.com`, a Clerk PRODUCTION instance, and production Clerk rejects any Origin that is not that domain or a subdomain. `Origin: https://signal-ui-xi.vercel.app` returns HTTP 400 `origin_invalid`; `Origin: https://signal.sttilsolutions.com` returns HTTP 200. The missing Google button is a SYMPTOM not a second bug: the `/v1/environment` call that would list `oauth_google` is the one being rejected. **Pilot readiness is therefore 12/13, not 13/13, for as long as the Vercel link is the one under test** — that settles the question left open on 2026-07-07. **Fault B, a successful sign-in lands on the wrong site:** Clerk's `after_sign_in_url` is `https://sttilsolutions.com` (the marketing site) and `sign_in_url` is `https://accounts.sttilsolutions.com/sign-in` (hosted portal, not the app's embedded card), so even on the working domain auth succeeds and dumps the user on the company homepage. Fixing B needs `CLERK_SECRET_KEY` via the Backend API; `~/.claude/automation/set-clerk-secret.sh` was written for it (hidden-prompt pattern cloned from set-nocodb-token.sh, syntax-checked, verifies against api.clerk.com and prints only the HTTP status). Clerk itself is HEALTHY: DNS correct, `oauth_google` ENABLED, email is first factor, **password is NOT a first factor** (email code or Google only, so typing a password was never going to work), signup public, no allowlist. **Cause behind the cause:** `signal-ui/src/main.jsx:10` THROWS on a missing key while `insight-engine/frontend/src/main.jsx:45` returns ``; the throw is why a pk_live had to be baked into the bundle at all. Adopting the IE degrade-gracefully pattern is scoped, NOT built. Also this session: **Playwright MCP restored** (AIOS Group D item 12, `✔ Connected`, tools load on next restart) and **the KG question settled by `challenger`** — 16 entities / 11 triples / 0 expired, every fact dated 07-26 or 07-27, so it is a 2-day-old fresh store rather than a damaged large one. Verdict: mostly empty, build it up, do NOT retire. **ALL KG data lives only in the `-wal` sidecar** (main `.sqlite3` is 4096 bytes and contains no tables), so any copy or backup taken without the sidecar silently yields a valid empty database, which is almost certainly the mechanism behind "KG found empty 2026-07-27". Backup including the sidecar at `~/.mempalace/backup-2026-07-27/`, verified readable at 11 triples. `~/.mempalace/palace/` does not exist at all, so Chroma semantic search is absent while the KG is fine: two separate stores, only one broken, and conflating them is why the reports contradicted each other. scp/SFTP re-confirmed WORKING by three live probes plus sshd_config; the KG triple is false and `vps-safe-commands/SKILL.md` is already corrected; KG NOT modified, awaiting Kisa's ruling. **(2) EARLIER SESSION, claim-verification build.** Diagnosed one shape across three systems: the policy was real but the enforcement point was missing (the compound relied on Kisa's memory; ground-vs-graft was in all 16 agent files but absent from the main session's own reply path; model routing held only via hand-picked overrides at dispatch). Built the two-half fix: `rate-response` rewritten from 7 checks to ONE claim-honesty gate plus 4 checks, triggering on claim SHAPE rather than confidence, paired with `~/.claude/automation/drift/drift-counter.py` (UserPromptSubmit hook) which scans the transcript mechanically. The DISAGREEMENT between self-report and transcript is the signal, which is why frequency stays absolute. Shapes defined once in `references/claim-shapes.md`. Kisa ruled the options-vs-recommendation scope, resolving a contradiction that spanned 4 files. Also delivered: founder's log created and seeded (11 EARNED entries plus an AVAILABLE index of 332 accelerator notes) and wired into /nuggets and /navaigate-session-brain; copy-review Rule 17 added (readability outside DMEPOS) after `challenger` caught that the first threshold would have condemned the live Signal site; NocoDB token restored via a hidden-prompt script, VERIFIED 200; AIOS Group A COMPLETE, B7 applied (now 6 opus / 10 sonnet), B8 CANCELLED as disproven. Corrected in 4 config files: subagents CAN re-delegate AND call MCP, so the chief-of-staff CLI alias is not required for orchestration. TriLane was never broken and needs no Docker. **(2) EARLIER SESSION: 2026-07-27 [CC]. AIOS/privacy-architecture session, NOT Signal product work. Delivered: STTIL's first data-classification scheme (OPEN/INTERNAL/RESTRICTED, `sttil-vault/Projects/STTIL-data-classification-v1.md`); a dry-run file classifier at `~/.claude/automation/classify/classify.py` (reports only, contains no file-moving code); `~/Documents/Playground/` built; review-hold moved OUT of `~/Documents` to `~/STTIL-Review-Hold/` (iCloud sync risk). Hazel 6.1.2 installed by Kisa, license located and REGISTERED (was on trial). Reference files corrected across two passes after `challenger` caught that the first pass introduced a new false fact. Signal touched only for doc flags, no code change. **PRIOR ACTIVE (still the real product state): 2026-07-07 [CC]. SIGNAL READINESS-MODEL BUILD COMPLETE P1-P6 (final commit 6181de7)**: backend + patient-nested worklist shipped, six independent audits, deployed to Railway + Vercel, live-verified where measurable (171 tests, Pi E2E 33/33, new bundle confirmed serving). All mockup decisions approved incl. the generalized data-gap family. REMAINING: Kisa signed-in click-through (5 probes in ledger). +ACTIVE: 2026-07-28 [CC]. Session started on infra (receipts-to-Mercury email pipeline design, see decisions-ledger.md + machine-setup-plan-2026-07-27.md Item 11), then Kisa directly asked whether infra had been overbuilt at the expense of shipping. Pivoted: receipts work PARKED, dispatched `lead-signal` to find the actual gap between "checklist says 11/13 clean" and "a demo link Kisa could send a prospect today." **Clerk secret RE-CHECKED and still `sk_test_`** (wrong, development instance) — the `after_sign_in_url` fix is still fully blocked on Kisa pulling the `sk_live_` production secret from her own Clerk dashboard and running `~/.claude/automation/set-clerk-secret.sh` in her own terminal; nothing else can substitute for that click. `lead-signal` returned a 5-item ranked punch list, none of it duplicating the checklist: **(1)** nobody has actually watched the live P1-P6 worklist render in a browser since it shipped 2026-07-07 — login has been broken the whole time, so this has zero human verification and must happen the moment the redirect is fixed, not be inferred from code; **(2)** no curated demo dataset exists, only `test-data/gaboro-stress-test.csv` (5,000 rows built for load testing, not for telling a story) — needs a 15-25 row set deliberately hitting every status label including Plan Type Needed; **(3)** no demo narrative/script exists at all, despite being queued as a next-step since 2026-07-07 and never built; **(4)** no async artifact (screenshots or a recording) exists for a prospect like labABLE to forward internally before a live call; **(5)** `docs/pilot-guide-v1.md` is written for a real, live, data-sharing pilot (crosswalk tables, 30-60 day validation) and is the wrong document to hand someone for a day-1 interest-gauging demo — needs a one-page companion, not a rewrite. Scope note carried from Kisa: the demo target is "day-1 pioneers" (labABLE, Robert, other DMEPOS contacts) for feedback/interest, explicitly NOT a real-data pilot yet — that stays gated on the unresolved PHI question with counsel (see Stack section below), so the demo runs on synthetic data only. -NEXT (as of 2026-07-27, sign-in session): **(Kisa) run `bash ~/.claude/automation/set-clerk-secret.sh` in her OWN Terminal** (hidden prompt needs a real tty), then **(Kisa) restart Claude Code** so the Playwright MCP tools load. **(Kisa) rule on the KG scp correction** (proposal below; `challenger` proved the current triple false with three live probes) — DONE 2026-07-28, see decision below, superseded fact carried into decisions-ledger.md marked SUPERSEDED. **(Kisa) confirm `signal.sttilsolutions.com` as the canonical Signal URL** so the readiness checklist can be updated and the Vercel link stops re-causing the sign-in report. **(CC, once CLERK_SECRET_KEY exists)** fix `after_sign_in_url` via the Clerk Backend API, no dashboard; confirm the exact endpoint at that point rather than assuming it. **(CC)** scope the Insight-Engine degrade-gracefully auth pattern into `signal-ui/src/main.jsx` (replace the throw with a keyless demo fallback; unlocks Playwright E2E on the auth path and keyless pilot demos). ~~**(Kisa or CC)** decide on `sqlite3 ~/.mempalace/knowledge_graph.sqlite3 "pragma wal_checkpoint(TRUNCATE);"` to make the KG durable in the main file~~ — DONE 2026-07-28, moot: MemPalace retired entirely same session, see decision below. ~~**(Kisa)** optional COS alias restore... `chief-of-staff.md` now carries the MCP tool names so the alias no longer strips knowledge systems~~ — MOOT 2026-07-28: those MCP tool grants (mempalace) were removed from chief-of-staff.md as part of the retirement, so this note no longer applies either way. **(CC)** graphify: seed survived at `~/.claude/references/graphify-seed-2026-07-08/` (153 nodes, 122 edges) but `~/projects/trilane/graphify-out/` is EMPTY, so the graph is rebuildable from seed rather than from scratch. PRIOR, still open: (Kisa) rule on the KG conflict below. (Kisa) Appwrite retirement step 1 (`docker compose stop`, reversible, frees 1.3GB and 23 of 28 containers). (CC) design the Hazel ruleset once Kisa supplies the workflow design from her other window. (CC/ops-steward) license + subscription register, Hazel registration email needs moving off the lost lokissed@gmail.com account, transaction ID 8Z4LR26B4D8H. **ADDED 2026-07-27 (claim-verification session):** (Kisa) read the 6 Compound Engineering notes and 8 AIOS layer notes in the vault before the next architecture decision, they sat unread while this system was built and any contradiction in them outranks the build. (CC) AIOS Groups C/D/E need RE-DERIVING before execution: the review assumes 15 agents and there are 16, the omitted one is `challenger`, and 4 of its claims are now disproven (B8 cancelled, Docker unnecessary, COS alias unnecessary, MCP/re-delegation available). (CC) watch `drift-counter.py` for a few sessions, thresholds are reasoned not measured; tune `automation/drift/patterns.txt` if it never fires or fires constantly. (Kisa) `accessibility-review` skill is gone for good, source never existed in any repo; Rule 17 covers the gap but reinstall from origin if you want the original. +PRIOR ACTIVE: 2026-07-27 [CC]. THREE separate sessions today. **(1) THIS SESSION, the Clerk sign-in blocker is ROOT-CAUSED and it was never a Clerk misconfiguration.** Two distinct faults, both GROUNDED by live curl against Clerk's own API. **Fault A, the Vercel URL can never authenticate:** the bundle carries `pk_live_Y2xlcmsuc3R0aWxzb2x1dGlvbnMuY29tJA` which decodes to `clerk.sttilsolutions.com`, a Clerk PRODUCTION instance, and production Clerk rejects any Origin that is not that domain or a subdomain. `Origin: https://signal-ui-xi.vercel.app` returns HTTP 400 `origin_invalid`; `Origin: https://signal.sttilsolutions.com` returns HTTP 200. The missing Google button is a SYMPTOM not a second bug: the `/v1/environment` call that would list `oauth_google` is the one being rejected. **Pilot readiness is therefore 12/13, not 13/13, for as long as the Vercel link is the one under test** — that settles the question left open on 2026-07-07. **Fault B, a successful sign-in lands on the wrong site:** Clerk's `after_sign_in_url` is `https://sttilsolutions.com` (the marketing site) and `sign_in_url` is `https://accounts.sttilsolutions.com/sign-in` (hosted portal, not the app's embedded card), so even on the working domain auth succeeds and dumps the user on the company homepage. Fixing B needs `CLERK_SECRET_KEY` via the Backend API; `~/.claude/automation/set-clerk-secret.sh` was written for it (hidden-prompt pattern cloned from set-nocodb-token.sh, syntax-checked, verifies against api.clerk.com and prints only the HTTP status). Clerk itself is HEALTHY: DNS correct, `oauth_google` ENABLED, email is first factor, **password is NOT a first factor** (email code or Google only, so typing a password was never going to work), signup public, no allowlist. **Cause behind the cause:** `signal-ui/src/main.jsx:10` THROWS on a missing key while `insight-engine/frontend/src/main.jsx:45` returns ``; the throw is why a pk_live had to be baked into the bundle at all. Adopting the IE degrade-gracefully pattern is scoped, NOT built. Also this session: **Playwright MCP restored** (AIOS Group D item 12, `✔ Connected`, tools load on next restart) and **the KG question settled by `challenger`** — 16 entities / 11 triples / 0 expired, every fact dated 07-26 or 07-27, so it is a 2-day-old fresh store rather than a damaged large one. Verdict: mostly empty, build it up, do NOT retire. **ALL KG data lives only in the `-wal` sidecar** (main `.sqlite3` is 4096 bytes and contains no tables), so any copy or backup taken without the sidecar silently yields a valid empty database, which is almost certainly the mechanism behind "KG found empty 2026-07-27". Backup including the sidecar at `~/.mempalace/backup-2026-07-27/`, verified readable at 11 triples. `~/.mempalace/palace/` does not exist at all, so Chroma semantic search is absent while the KG is fine: two separate stores, only one broken, and conflating them is why the reports contradicted each other. scp/SFTP re-confirmed WORKING by three live probes plus sshd_config; the KG triple is false and `vps-safe-commands/SKILL.md` is already corrected; KG NOT modified, awaiting Kisa's ruling. **(2) EARLIER SESSION, claim-verification build.** Diagnosed one shape across three systems: the policy was real but the enforcement point was missing (the compound relied on Kisa's memory; ground-vs-graft was in all 16 agent files but absent from the main session's own reply path; model routing held only via hand-picked overrides at dispatch). Built the two-half fix: `rate-response` rewritten from 7 checks to ONE claim-honesty gate plus 4 checks, triggering on claim SHAPE rather than confidence, paired with `~/.claude/automation/drift/drift-counter.py` (UserPromptSubmit hook) which scans the transcript mechanically. The DISAGREEMENT between self-report and transcript is the signal, which is why frequency stays absolute. Shapes defined once in `references/claim-shapes.md`. Kisa ruled the options-vs-recommendation scope, resolving a contradiction that spanned 4 files. Also delivered: founder's log created and seeded (11 EARNED entries plus an AVAILABLE index of 332 accelerator notes) and wired into /nuggets and /navaigate-session-brain; copy-review Rule 17 added (readability outside DMEPOS) after `challenger` caught that the first threshold would have condemned the live Signal site; NocoDB token restored via a hidden-prompt script, VERIFIED 200; AIOS Group A COMPLETE, B7 applied (now 6 opus / 10 sonnet), B8 CANCELLED as disproven. Corrected in 4 config files: subagents CAN re-delegate AND call MCP, so the chief-of-staff CLI alias is not required for orchestration. TriLane was never broken and needs no Docker. **(2) EARLIER SESSION: 2026-07-27 [CC]. AIOS/privacy-architecture session, NOT Signal product work. Delivered: STTIL's first data-classification scheme (OPEN/INTERNAL/RESTRICTED, `sttil-vault/Projects/STTIL-data-classification-v1.md`); a dry-run file classifier at `~/.claude/automation/classify/classify.py` (reports only, contains no file-moving code); `~/Documents/Playground/` built; review-hold moved OUT of `~/Documents` to `~/STTIL-Review-Hold/` (iCloud sync risk). Hazel 6.1.2 installed by Kisa, license located and REGISTERED (was on trial). Reference files corrected across two passes after `challenger` caught that the first pass introduced a new false fact. Signal touched only for doc flags, no code change. **PRIOR ACTIVE (still the real product state): 2026-07-07 [CC]. SIGNAL READINESS-MODEL BUILD COMPLETE P1-P6 (final commit 6181de7)**: backend + patient-nested worklist shipped, six independent audits, deployed to Railway + Vercel, live-verified where measurable (171 tests, Pi E2E 33/33, new bundle confirmed serving). All mockup decisions approved incl. the generalized data-gap family. REMAINING: Kisa signed-in click-through (5 probes in ledger). + +NEXT (as of 2026-07-28, priority pivot to shipping): the chain is strictly ordered, each step needs the one before it. **(1) Kisa** — pull the `sk_live_` secret from Clerk's own dashboard, run `set-clerk-secret.sh` in her own terminal (needs a real tty). **(2) CC** — fix `after_sign_in_url` via the Clerk Backend API the moment (1) lands. **(3) CC/Kisa** — drive the live worklist in an actual browser for the first time since it shipped; this is verification, not a formality, nobody has seen P1-P6 render live. **(4) CC or Pi** — build the 15-25 row curated demo CSV hitting every status incl. Plan Type Needed. **(5) CC** — write the short demo narrative/script (what to click, what to say, how to frame Plan Type Needed as a feature). **(6)** screenshots or a short recording for async sharing. Receipts-to-Mercury pipeline and any further AIOS/infra work stays parked until this chain clears or Kisa reprioritizes again. + +PRIOR NEXT (as of 2026-07-27, sign-in session): **(Kisa) run `bash ~/.claude/automation/set-clerk-secret.sh` in her OWN Terminal** (hidden prompt needs a real tty), then **(Kisa) restart Claude Code** so the Playwright MCP tools load. **(Kisa) rule on the KG scp correction** (proposal below; `challenger` proved the current triple false with three live probes) — DONE 2026-07-28, see decision below, superseded fact carried into decisions-ledger.md marked SUPERSEDED. **(Kisa) confirm `signal.sttilsolutions.com` as the canonical Signal URL** so the readiness checklist can be updated and the Vercel link stops re-causing the sign-in report. **(CC, once CLERK_SECRET_KEY exists)** fix `after_sign_in_url` via the Clerk Backend API, no dashboard; confirm the exact endpoint at that point rather than assuming it. **(CC)** scope the Insight-Engine degrade-gracefully auth pattern into `signal-ui/src/main.jsx` (replace the throw with a keyless demo fallback; unlocks Playwright E2E on the auth path and keyless pilot demos). ~~**(Kisa or CC)** decide on `sqlite3 ~/.mempalace/knowledge_graph.sqlite3 "pragma wal_checkpoint(TRUNCATE);"` to make the KG durable in the main file~~ — DONE 2026-07-28, moot: MemPalace retired entirely same session, see decision below. ~~**(Kisa)** optional COS alias restore... `chief-of-staff.md` now carries the MCP tool names so the alias no longer strips knowledge systems~~ — MOOT 2026-07-28: those MCP tool grants (mempalace) were removed from chief-of-staff.md as part of the retirement, so this note no longer applies either way. **(CC)** graphify: seed survived at `~/.claude/references/graphify-seed-2026-07-08/` (153 nodes, 122 edges) but `~/projects/trilane/graphify-out/` is EMPTY, so the graph is rebuildable from seed rather than from scratch. PRIOR, still open: (Kisa) rule on the KG conflict below. (Kisa) Appwrite retirement step 1 (`docker compose stop`, reversible, frees 1.3GB and 23 of 28 containers). (CC) design the Hazel ruleset once Kisa supplies the workflow design from her other window. (CC/ops-steward) license + subscription register, Hazel registration email needs moving off the lost lokissed@gmail.com account, transaction ID 8Z4LR26B4D8H. **ADDED 2026-07-27 (claim-verification session):** (Kisa) read the 6 Compound Engineering notes and 8 AIOS layer notes in the vault before the next architecture decision, they sat unread while this system was built and any contradiction in them outranks the build. (CC) AIOS Groups C/D/E need RE-DERIVING before execution: the review assumes 15 agents and there are 16, the omitted one is `challenger`, and 4 of its claims are now disproven (B8 cancelled, Docker unnecessary, COS alias unnecessary, MCP/re-delegation available). (CC) watch `drift-counter.py` for a few sessions, thresholds are reasoned not measured; tune `automation/drift/patterns.txt` if it never fires or fires constantly. (Kisa) `accessibility-review` skill is gone for good, source never existed in any repo; Rule 17 covers the gap but reinstall from origin if you want the original. OPEN DISAGREEMENT (2026-07-27): Kisa said "I don't agree entirely" about the Gmail-recovery / ops-steward proposal and stopped the session before saying which part. **Do not treat that plan as agreed.** Ask her before acting on it. @@ -35,6 +39,7 @@ Insight Engine (July 4 deadline = tomorrow) is the active project. Key files: ## Decisions (last +- 2026-07-28 [CC]: Priority pivot — Kisa named the infra/shipping tradeoff directly ("have we overbuilt infra?") mid-session. Ruling applied without further debate: receipts-to-Mercury pipeline and any further AIOS/infra work parked; `lead-signal` dispatched to find the real gap between the pilot-readiness checklist and an actual demo link. Demo scope confirmed as day-1 pioneer interest-gathering on synthetic data, explicitly not a real-data pilot (that stays gated on the PHI question with counsel). - 2026-07-28 [CC]: MemPalace (MCP server + KG + palace) RETIRED, not scoped down. Root cause: the KG held 13 triples in its whole life and none were brand/product facts (the mandated pre-copy check had been querying an empty-for-its-purpose store); the tunnel/hallway graph layer never produced output (keyword taxonomy built for a personal AI-companion, not STTIL content); two of four palace rooms held junk (Obsidian plugin bundle, Granola cache) because mining has no exclusion filter; a single test mine burned 20+ min of CPU and had to be stopped by killing the whole server process, no partial-cancel possible. Verified independently by `challenger` before execution (confirmed: single launch point, 100% content redundant with sttil-vault, zero brand facts in KG; refuted the "no junk found" sub-claim, junk is present). Replacement: `~/.claude/references/decisions-ledger.md` for cross-project facts (the two genuinely unique KG facts, Hazel license location and content_intelligence_scope, were extracted there before deletion); Signal-specific facts (PHI status, Clerk constraint, canonical URL) already lived in this file and needed no migration. The scp/SFTP-disabled KG triple, long known false, is carried into the ledger explicitly marked SUPERSEDED rather than as current. `~/.mempalace/` quarantined to `~/.mempalace.RETIRED-2026-07-28` (not deleted), MCP registration removed and confirmed absent from `claude mcp list`, WAL checkpoint on the KG done as part of the export (moot now but caused no harm). Also fixed same session: NavBot's Telegram bot was down (stale token post-rotation, confirmed via direct Telegram API 401, unrelated root cause from the KG work), restarted clean; the trilane project's `CLAUDE.md` had a live "mine on 'done for the day'" trigger, which is the exact command that caused tonight's runaway CPU burn — removed entirely, not just patched. - 2026-07-07 [Kisa/CC]: Legal bundle rulings applied. Recipient = Clyde Mathes; entity = KJF Professional Services LLC dba STTIL Solutions, Florida LLC, CONFIRMED; arbitration = default dispute posture (NDA 10.2 rewritten to mirror LOI S14). Final-signed-text-rules principle applied: bundle verified against the executed labABLE PDF (signed Daniel Rojas + Arkisia Fenn 6/12/2026; binding sections 3-11; kit-in-kit ABSENT from executed text, discussed concept only; Delaware law on their paper). Signature blocks now Arkisia (Kisa) Fenn. All rulings in KG (legal_entity superseded, dispute_resolution_default, attorney_of_record, Kisa legal_name). Open: LOI 8.4 carve-out keep/drop. Also FIXED same session: TriLane search 500s were a dead OpenRouter key in trilane/backend/.env (embedding AND llm keys), swapped to the working ~/.config/openrouter key, kickstarted, verified live end to end (.env.bak-2026-07-07 backup; key now shared with ask.py, mint a dedicated key later if preferred). @@ -59,9 +64,9 @@ Insight Engine (July 4 deadline = tomorrow) is the active project. Key files: ## Open Threads (max 5) -- CLERK LOGIN (opened 2026-07-07, **ROOT-CAUSED 2026-07-27**): no longer a mystery. Fault A: `signal-ui-xi.vercel.app` cannot authenticate at all because the production Clerk instance rejects its origin (HTTP 400 `origin_invalid`); the absent Google button is a symptom of that rejected `/v1/environment` call. Fault B: `after_sign_in_url` points at `https://sttilsolutions.com`, so a successful sign-in on the working domain still lands off-app. Remaining work is execution, not diagnosis: Kisa runs `set-clerk-secret.sh`, CC fixes B via the Clerk Backend API, and Kisa confirms `signal.sttilsolutions.com` as canonical. Readiness is 12/13 while the Vercel link is the one being tested. -- CONVEX-SIGNAL SPIKE (2026-06-24): design ready (docs/convex-signal-spike-design-2026-06-24.md); separate repo signal-convex; Pi designed. Deps: Kisa's Convex BAA email; repo creation post-approval. Goal: prove Convex on the real product before any platform commitment. -- DATA-PLATFORM DECISION (2026-06-24): NocoDB leads broke (no-PK, corrupted source). Options: repaired-NocoDB / Supabase / Neon / AWS / Convex. Leads = non-PHI. Informed by the Convex spike. Interim: capture works; 2 test rows un-deletable. +- CLERK LOGIN (opened 2026-07-07, **ROOT-CAUSED 2026-07-27, secret RE-CHECKED still test 2026-07-28**): Fault A (origin rejection) resolved by using the canonical `signal.sttilsolutions.com` URL. Fault B (`after_sign_in_url` pointing at the marketing site) still open — `~/.claude/.secrets.env`'s `CLERK_SECRET_KEY` is confirmed still `sk_test_` (50 chars, wrong dev instance), so the Backend API fix cannot run yet. Blocks the entire demo-readiness chain in NEXT above; this is now the single highest-priority open item in the whole project. +- CONVEX SPIKE + DATA-PLATFORM DECISION (2026-06-24, untouched since): Convex spike design ready (docs/convex-signal-spike-design-2026-06-24.md) but gated on Kisa's Convex BAA email; NocoDB leads table also still broken (no-PK, corrupted). Both parked behind the same missing decision — no action expected until Kisa revisits. +- DEMO READINESS (opened 2026-07-28): 5-item gap list from `lead-signal`, see ACTIVE above — curated dataset, narrative script, async artifact, and a live browser check of the P1-P6 UI (never done since ship) are all missing. This is the active work once CLERK LOGIN clears. - LEGAL BUNDLE (2026-07-07): **SENT to Clyde Mathes ~2026-07-23 (confirmed by Kisa 2026-07-26); reply expected within days.** Was previously marked READY TO SEND (signal/pitch/legal/attorney-bundle-2026-07-07, 5 docx + sendable memo; rulings applied: Florida, arbitration, Arkisia Fenn signature; verified against the executed labABLE PDF). Open: LOI 8.4 Partner Concepts carve-out keep/drop, memo already asks counsel about its enforceability. Attorney reply gates the FDA memo ruling, AKS guidance, and any LOI/NDA execution with a pilot partner. (Stale READINESS MODEL thread pruned: P1-P6 complete per ACTIVE.) - labABLE: CRUSH brief SENT 2026-06-27. Watch for their reply; schedule the follow-up call (Mehul open to the proactive auditor-style play). Internal-only prep at Projects/labABLE-next-call-prep-INTERNAL-2026-06-25.md. @@ -81,8 +86,4 @@ Insight Engine (July 4 deadline = tomorrow) is the active project. Key files: State protocol: read = `git pull --rebase` then read this file (warn if Updated > 24h old); write = edit ACTIVE/NEXT, append one author-stamped decision, then commit + push. Full protocol in the `state-sync` skill. Detailed ship-status (what shipped / didn't / why) = docs/ship-status-ledger.md. TriLane = searchable archive, not live state. -## Updated: 2026-07-07 (CC: nuggets checkpoint x2 — legal bundle rulings applied, verified vs executed PDF, ready to send to Clyde Mathes; TriLane search fixed (dead OpenRouter keys swapped); stale readiness Open Thread pruned. Earlier same day: build complete P1-P6; Clerk sign-in blocker gates the click-through.) - -Updated: 2026-07-27 [CC] — claim-verification build (rate-response gate + drift counter + claim-shapes), founder's log seeded, copy-review Rule 17, AIOS Group A complete + B7 applied + B8 cancelled. ACTIVE merged with the earlier session, not overwritten. - -Updated: 2026-07-27 [CC] — sign-in session. Clerk blocker ROOT-CAUSED (production-instance origin rejection + wrong after_sign_in_url); readiness corrected to 12/13 on the Vercel link; Playwright MCP restored; KG state settled by challenger (fresh 2-day store, data lives only in the WAL sidecar, palace/Chroma absent); `set-clerk-secret.sh` written. ACTIVE prepended, earlier sessions preserved. +## Updated: 2026-07-28 [CC] — nuggets checkpoint. Priority pivot from infra (receipts-to-Mercury design, parked) to Signal demo readiness after Kisa flagged possible overbuild; `lead-signal` returned a 5-item gap list; Clerk secret re-confirmed still `sk_test_`, still the top blocker. Consolidated 3 stacked Updated: lines from 07-07/07-27 into this one per the append-drift fix in operating-rules.md; prior history intact in git log.