auth: Google callback 500 on non-cookie-domain origins — invalid 'domains contains' query path
Kenneth Courtney
availability: validate only the schedule group matching availabilityType
Kenneth Courtney
invites: invitationName — the typed name survives the phone invite
Kenneth Courtney
punch list — media-anywhere primitive P1 (photos + generated images to any surface)
Kenneth Courtney
team: phone on the roster + guarded contact edit for pending invites
Kenneth Courtney
settings: Site Logo control on General tab — disambiguate from Discovery Card badge
Kenneth Courtney
punch list — close LEO media-id P1 + stale header-logo P2; Start-S branding batch
Kenneth Courtney
leo: surface attached media IDs to the model so media tools get args
Kenneth Courtney
punch list — Start-S portal + media-picker leak batch
Kenneth Courtney
media: one tenant-scoped library query for the chat picker
Kenneth Courtney
invites: invite by phone number — copy link, text it, OTP in
Kenneth Courtney
HANDOFF_260722 + punch list update (demo-day live-ops batch)
Kenneth Courtney
vision: retire dead gemini-2.0-flash fallback + auth polish batch
Kenneth Courtney
auth: provider-style code sign-in button + self-service phone + docs
Kenneth Courtney
chat: tenant-scope the media library picker; full composer in LEO sidebar
Kenneth Courtney
auth: degrade gracefully when Twilio rejects CustomFriendlyName (60204)
Kenneth Courtney
auth: portal-branded sign-in texts
Kenneth Courtney
uploads+login: raise 10MB middleware body cap; fix invisible login text in light mode
Kenneth Courtney
migration: tenant-scoped redirects engine — old-site URLs keep working
Kenneth Courtney
dashboard: fold Connections into the Account page
Kenneth Courtney
leo: video attachments no longer crash the stream — acknowledged in text
Kenneth Courtney
auth: sign in by texted code (Twilio Verify) + surface passwordless login
Kenneth Courtney
auth: passwordless email-code sign-in on the login page + Twilio env fallback
Kenneth Courtney
auth: surface passwordless email-code sign-in on the login page
Kenneth Courtney
crm: every lead auto-harvests a Contact — voice and web form
Kenneth Courtney
voice: handle Vapi 'tool-calls' events — tools were silently no-oping
Kenneth Courtney
dashboard: command-center stats match the tenant on the masthead
Kenneth Courtney
punch-list: voice trunk line + tools + per-portal failover shipped
Kenneth Courtney
voice: per-tenant Vapi fallback number + portal pivot
Kenneth Courtney
voice: trunk line never matched + assistant had no callable tools
Kenneth Courtney
punch-list: dashboard settings consolidation audit + costs/bus rename plan
Kenneth Courtney
voice: lead capture as the primary path + preloaded business briefing
Kenneth Courtney
punch-list: phone assistant site-content RAG shipped + proposal-page exposure
Kenneth Courtney
voice: give the phone assistant real tools + site-content RAG
Kenneth Courtney
punch-list: Vapi server.url vs legacy serverUrl trap + dangling assistantId
Kenneth Courtney
punch-list: LEO on Gemini (~10x cheaper) — GOOGLE_AI_API_KEY + flash-lite pin
Kenneth Courtney
punch-list: VAPI voice fixed end-to-end (serverUrl repoint + AI provider order)
Kenneth Courtney
punch-list: ecommerce cross-tenant leak FIXED+verified; category filter leak staged
Kenneth Courtney
multitenant: scope shop category filter to the portal's tenant
Kenneth Courtney
multitenant: tenant-scope carts/addresses/transactions (stop cross-portal leak)
Kenneth Courtney
punch-list: expand cross-tenant leak to carts+addresses+transactions with refs
Kenneth Courtney
chat: optimistic attachment link so channel media survives DB pressure
Kenneth Courtney
punch-list: create_post layout crash (fix staged) + channel media lost on refresh
Kenneth Courtney
leo: create_post guards required content instead of crashing on Layout
Kenneth Courtney
punch-list: cart cross-portal leak, staged link-filter, white-label nav hides
Kenneth Courtney
multitenant: scope link-editor page picker to tenant; land Google login on origin portal
Kenneth Courtney
punch-list: log login-killing idle-in-tx DB jam + 60s guard
Kenneth Courtney
neurocarepro: strip horizontalrule nodes from rendered doc pages
Kenneth Courtney
team: copy-invite-link action on pending invites
Kenneth Courtney
neurocarepro: render proposal docs as on-brand Pages
Kenneth Courtney
handoff — NeuroCare Pro engagement + session platform work
Kenneth Courtney
theme: per-tenant default theme (branding.defaultTheme)
Kenneth Courtney
theme: default the public site to light, not the visitor's OS
Kenneth Courtney
punch-list: MediaText shipped; log Merlin/Core :3000 collision
Kenneth Courtney
blocks: MediaText — two-column text + video section (WordPress parity)
Kenneth Courtney
punch-list: surface pending-invite links in admin UI
Kenneth Courtney
global punch list — single living triage board
Kenneth Courtney
hero: full-screen hero supports video background
Kenneth Courtney
hero: full-screen cover hero type (WordPress-style full-bleed home)
Kenneth Courtney
types: regen payload-types for GoogleReviewsBlock
Kenneth Courtney
railway: pre-deploy checklist, sequence-repair, cost/size reality + trim build context
Kenneth Courtney
chat: LEO bubble header deep-links to full-width Spaces + shows space/channel binding
Kenneth Courtney
provision: reachable portal domains on self-host
Kenneth Courtney
260719 handoff — self-host container/env config map + session work + on-deck
Kenneth Courtney
leo: create_event tool — LEO can now make calendar Events
Kenneth Courtney
chat: render the reuse-image picker in compact mode too
Kenneth Courtney
leo: order-history health query used invalid 'pending' enum
Kenneth Courtney
leo: gate federation out of the enterprise health check when flagged off
Kenneth Courtney
ai: use gemini-flash-latest alias for direct Google Flash tier
Kenneth Courtney
media: coerce media relationship ids to Number in analysis + AI-bus hooks
Kenneth Courtney
comments: coerce page-channel space/tenant ids to Number
Kenneth Courtney
booking: don't clear the deposit form when clicking the current wizard step
Kenneth Courtney
routing: resolve tenants by bound domain aliases, not just primary domain
Kenneth Courtney
booking: confirm booking on deposit payment (server-verified)
Kenneth Courtney
booking: soft-hold expiry so abandoned deposit checkouts free the slot
Kenneth Courtney
reviews: GoogleReviews block (Places API) for pages/posts/products
Kenneth Courtney
stripe: runtime-config provider for NEXT_PUBLIC keys (self-host)
Kenneth Courtney
booking: pass Stripe publishable key from server to deposit step
Kenneth Courtney
booking: drop relationship sort + log provider resolution
Kenneth Courtney
booking: resolve provider to whoever configured availability
Kenneth Courtney
leo: fail over to a direct provider on GATEWAY rate-limit too
Kenneth Courtney
routing: /products redirects to /shop instead of 404
Kenneth Courtney
cart: make Add To Cart visibly confirm + explain disabled state
Kenneth Courtney
checkout: pass Stripe publishable key from server at runtime (self-host)
Kenneth Courtney
checkout: don't reuse cart line-item id as transactions_items id
Kenneth Courtney
re-trigger deploy (prior build hit transient 'bad object' git fetch on Vercel)
Kenneth Courtney
checkout: db-repair-sequences ops endpoint — heal drifted id sequences
Kenneth Courtney
260719 handoff for the next dev thread
Kenneth Courtney
dashboard: hide federation viz + welcome banner on tenant dashboards
Kenneth Courtney
payments: clear error + lazy key resolution when STRIPE_SECRET_KEY missing
Kenneth Courtney
identity: identity-graph schema + migration design (for review)
Kenneth Courtney
image-gen: native Gemini generateContent path (not OpenRouter)
Kenneth Courtney
State of The Angel OS — have/testing/open-items + locked identity graph
Kenneth Courtney
ai: consolidate image-gen onto the existing providerHealth breaker
Kenneth Courtney
ai: fail-soft/fail-up provider chain with passive circuit breaker
Kenneth Courtney
image-gen: IMAGE_PROVIDER env override for node-level provider choice
Kenneth Courtney
federation: de-couple hardcoded node domains → config/DB-driven
Kenneth Courtney
platform: payloadnuke.com is a first-class platform apex
Kenneth Courtney
appointments: List / Calendar view toggle with month grid
Kenneth Courtney
analytics: only mount Vercel Analytics/SpeedInsights on Vercel
Kenneth Courtney
spaces: bare /dashboard/spaces lands on the tenant's default space, not platform '1'
Kenneth Courtney
media: chat-attachment tenant follows the space, not the cookie
Kenneth Courtney
clearwater: shop pagination, Book nav, services dashboard, /products links + Soul Van service
Kenneth Courtney
260718 handoff — self-host live, focus areas (onboarding, monetization, rentals vertical)
Kenneth Courtney
cors: allow *.payloadnuke.com (self-hosted primary node)
Kenneth Courtney
types: regenerate payload-types (commission_endeavor Circle/kind desc)
Kenneth Courtney
local self-host build guide + 260717 handoff; AGENTS build path
Kenneth Courtney
checkout: per-item remove (x) button in the order summary
Kenneth Courtney
deploy: Dockerize Core for Railway (off Vercel) — validated locally end-to-end
Kenneth Courtney
nodes: resolve Merlin's URL dynamically from the registry — kill the hardcoded tunnel
Kenneth Courtney
readme: rewrite as a lean feature map — drop the sprint/dev-push history
Kenneth Courtney
search: proxy Leo's web search through the Merlin node (residential IP + offload)
Kenneth Courtney
nav: promote Spaces to the top of OVERVIEW — Home, Dashboard, Spaces, My Circles
Kenneth Courtney
leo: harmonize COO prompt to the locked model (53) — Endeavor, not Enterprise
Kenneth Courtney
tenants: Circle creation seam + guardian-angel flavor backfill (53) — best-guess answers
Kenneth Courtney
tenants: tenant flavors (53) — Circle/Business/Guardian Angel/Personal Portal as first-class types
Kenneth Courtney
leo: generated images become message attachments — land in the channel gallery
Kenneth Courtney
vocab: lock the canonical model (53) — Enterprise=root, Tenant=primitive, Endeavor=tenant-you-organize-around
Kenneth Courtney
vocab: unify Enterprise/Endeavor toward canonical (53) — pass 1, UI surfaces
Kenneth Courtney
admin: regenerate importMap for R2 — admin was blank across all collections
Kenneth Courtney
addresses: add Remove — the ecommerce hook has no delete
Kenneth Courtney
cards: Leo product/post create-update drops a home-screen card link
Kenneth Courtney
circles: 'Open' hops to the circle's own portal FQDN, not /dashboard/spaces
Kenneth Courtney
dashboard: delete orphaned code from the retired setup wizard (53)
Kenneth Courtney
endeavor-type: one canonical option list (53) — colocated with the union
Kenneth Courtney
branding: one canonical font catalog (53) — kill the drift
Kenneth Courtney
docs+chore: AGENTS.md node-bootstrap runbook + CSP/build-skip refinements
Kenneth Courtney
dashboard: retire the Enterprise Setup wizard, collapse the setup surfaces
Kenneth Courtney
images: allowlist r2.dev for Next/Image — storefront images resolve post-R2
Kenneth Courtney
vision: feed image BYTES to the model, not a rate-limited r2.dev URL
Kenneth Courtney
media: device direct-upload endpoints — large clips past the 4.5MB wall
Kenneth Courtney
deps: resync pnpm-lock for storage-s3 pin — unblocks the R2 build
Kenneth Courtney
media: flip to Cloudflare R2 — cutover
Kenneth Courtney
media: R2 storage wiring (dormant) — direct-upload + zero-egress, ready to flip
Kenneth Courtney
media: allow small video clips (Phase 1) — size-guarded direct upload
Kenneth Courtney
cards: page-published directive — the first real auto-trigger
Kenneth Courtney
auth: passwordless email-OTP login (request + verify)
Kenneth Courtney
cards: directive cards — Core pushes a home-screen card to the device
Kenneth Courtney
vercel: skip prod builds for docs-only pushes (ignoreCommand)
Kenneth Courtney
provision: channel create sends a NUMERIC space id — the real empty-Community-space cause
Kenneth Courtney
diag: probe can run the onboarding preamble first to reproduce the poisoned context
Kenneth Courtney
diag: temp probe-channel-create endpoint — find which create strategy survives prod
Kenneth Courtney
provision: run community-channel writes as super_admin — the real empty-space cause
Kenneth Courtney
provision: community-space channels created reliably — thread req + surface errors
Kenneth Courtney
Merlin deploy truths — vmc-only runner, zombie-restart fix, dynamic tunnel live
Kenneth Courtney
rbac: channels + messages opt out of the multi-tenant access-AND
Kenneth Courtney
afternoon additions — DM unification executed, Merlin auto-deploy verified, named tunnel retired
Kenneth Courtney
channels: repoint merged DM messages BY ID — bulk update ignores relationship where
Kenneth Courtney
channels: one DM thread per conversation — global lookup + unify-dms op (fold phase 3)
Kenneth Courtney
fold verified in prod + dupe-general/stray-DM-space cleanup executed (260713 ~1240)
Kenneth Courtney
260713 midday handoff — DM fold executed, Merlin tunnel pending deploy
Kenneth Courtney
channels: fold DMs into the AI Bus — channel-grained DM privacy (phase 2)
Kenneth Courtney
merlin: media links resolve through Core + cache-first listing (dynamic-tunnel-safe)
Kenneth Courtney
leo: reference-image (image-to-image) generation — put the subject in the scene
Kenneth Courtney
leo: scripture tools survive tool-subsetting for devotional phrasing
Kenneth Courtney
spaces: universal Community space — the town square (public RBAC tier)
Kenneth Courtney
guardian: self-heal under-seeded angels on every claim (empty-channels)
Kenneth Courtney
checkout: local-pickup fulfillment path (fire-sale UX)
Kenneth Courtney
260712 handoff + Card Stage spec
Kenneth Courtney
admin: scope the command center to the current portal (was global)
Kenneth Courtney
dashboard: non-super-admins can switch to their own portals (chooser was empty)
Kenneth Courtney
auth: ?switch=1 forces Google account chooser (Nimue account switching)
Kenneth Courtney
auth: move guardian-angel auto-provision to the shared Google identity resolver
Kenneth Courtney
portals: group guardian-angel vs endeavor portals in the choosers
Kenneth Courtney
auth: auto-provision the user's guardian angel on federated (Nimue) login
Kenneth Courtney
leo-vision: inline image bytes instead of handing the model a URL
Kenneth Courtney
chat: tolerate not-yet-committed media on attach (Nimue image race)
Kenneth Courtney
dashboard: filter the tenant/portal chooser (match brochure PortalSwitcher)
Kenneth Courtney
gallery: click-to-open lightbox on the Gallery block
Kenneth Courtney
dashboard: invitations "Total Sent" tile is filter-independent
Kenneth Courtney
dashboard: invitations list — shared ListControls search/filter + Pager
Kenneth Courtney
admin: consistent list search/columns across all collections
Kenneth Courtney
product: "Contact seller" lead capture + "Buy now" on product pages
Kenneth Courtney
decommission: preserve Vercel Blob objects by default (shared-blob safety)
Kenneth Courtney
teleport: migrate referenced global forms + create drafts as draft
Kenneth Courtney
teleport: content-only write path — recreate tenant + media rows + remapped content
Kenneth Courtney
teleport: media resolvability probe — GET Range at target host, not HEAD at apex
Kenneth Courtney
teleport: cross-instance tenant move — dry-run + node-to-node export
Kenneth Courtney
cart: populate slug/title/gallery/meta so cart items render (not "no longer available")
Kenneth Courtney
admin: backups control panel — list/run/restore via Merlin
Kenneth Courtney
pin Nimue DM-parity root cause in channel-model handoff
Kenneth Courtney
channel & DM model focused-pass handoff (260711)
Kenneth Courtney
leo: system-log every AI CRUD/action tool call
Kenneth Courtney
scripture: load verses from CDN library, not a bundled import
Kenneth Courtney
circles: reuse chooser tenant resolution — show all my circles
Kenneth Courtney
leo: save_contact tool — remember a person for autocomplete + invite
Kenneth Courtney
address-book: /all endpoint — my people across all my tenants
Kenneth Courtney
circles: My Circles — the Life360++ people-first view
Kenneth Courtney
state of play 260711 — consolidation decision + hanging chads
Kenneth Courtney
config: feature flags — federation + endeavors browser off by default
Kenneth Courtney
federation: emit CORS allow-origin from holons endpoint
Kenneth Courtney
dashboard: cross-federation Endeavors browser (Nimue-style)
Kenneth Courtney
chat: reuse-from-channel media picker in Core composer
Kenneth Courtney
dashboard: unified list controls — search + server pager + 30 default
Kenneth Courtney
leo: open_passage — navigate the reader to a Bible passage + verse
Kenneth Courtney
vision: media-analysis URL 404 — the self-writing-from-photos pipeline
Kenneth Courtney
leo: route personal vs business — guardian portal vs commission an endeavor
Kenneth Courtney
search: self-hosted SearXNG as LEO's owned web-retrieval backbone
Kenneth Courtney
leo: act on explicit "do it" for reversible actions, confirm only for irreversible
Kenneth Courtney
leo: context tool subsetting for Gemini — ~30k tokens/turn → ~8k
Kenneth Courtney
leo-vision: send the 1440w variant, not the full-res original, to the vision model
Kenneth Courtney
space-invite: let the portal owner (tenant_admin) invite to their own spaces
Kenneth Courtney
works: unpublish "The Rainmaker" — remove from the soul registry
Kenneth Courtney
provision: personal portals get their own channel set, sorted separate from endeavors
Kenneth Courtney
leo: commission_endeavor — talk to LEO/Nimue, get a minted site + link
Kenneth Courtney
solvency: daily briefing via the generic escalation layer (not Gotify-specific)
Kenneth Courtney
solvency: one number to keep positive — platform revenue kept vs infra cost
Kenneth Courtney
session handoff — the guardian minted, the nervous system quieted
Kenneth Courtney
repair the error-nervous-system test drift — 30 files → 5
Kenneth Courtney
leo-health: pendingOrders queried a nonexistent 'pending' order status
Kenneth Courtney
mock logError in donation-create-intent — 500-path test hung 30s booting Payload
Kenneth Courtney
e2e globalTeardown sweeps timestamped residue users + donationRouting unit coverage
Kenneth Courtney
cors: allow Nimue browser-dev origins (localhost:3002/:3097)
Kenneth Courtney
donations: drop awkward possessive in destination breakdown line
Kenneth Courtney
donations: live transparency breakdown — the form states where THIS portal's gifts actually go
Kenneth Courtney
provision: survive PgBouncer idle-in-transaction kills + ponytail sweep
Kenneth Courtney
meta: tenant-branded unfurls — og tags from page meta on every portal
Kenneth Courtney
guardian: restore Tenants.isGuardianAngel — column confirmed on ALL prod DBs
Kenneth Courtney
session handoff — the organism is alive (first dollar, three-tier channels, monetization)
Kenneth Courtney
book: render service images on the booking page (like products)
Kenneth Courtney
nav: promote revenue CTAs — Book/Shop/Donate stay primary when populated
Kenneth Courtney
dm: generalize agent DMs — Nimue gets her own channel
Kenneth Courtney
guardian: remove the self-provision env flag — it just works now
Kenneth Courtney
guardian: diagnose endpoint — why don't I have a guardian angel?
Kenneth Courtney
works: global work-progress endpoint — /api/works-ops/progress
Kenneth Courtney
guardian: privacy-first naming — first name only, never leak a surname
Kenneth Courtney
messages: Phase 1 — add + backfill channel_ref_id (re-key groundwork)
Kenneth Courtney
reentry: verify_address LEO tool — residency-restriction proximity check + tracking
Kenneth Courtney
billing: billingMode graft — first-party portals bill platform-direct (default)
Kenneth Courtney
providerHealth: catch "Too Many Requests" + status codes so 429 failover fires
Kenneth Courtney
earn-loop: membership readiness check — name the exact blocker to a real dollar
Kenneth Courtney
ai-gateway: real provider failover on 429 — stop the "too many requests" dead-end
Kenneth Courtney
inventory: apply_inventory_count + list_channel_media — close the visual-inventory loop
Kenneth Courtney
media: channel media chooser — re-select images without re-uploading
Kenneth Courtney
vision: multi-image combine in one call — nightly visual inventory
Kenneth Courtney
address-book: Nimue's home surface — roster + list_contacts + gated message_contact
Kenneth Courtney
auth: federated Google id_token endpoint — the cross-node keystone
Kenneth Courtney
Nimue-comes-to-life handoff — cross-portal comms, id_token federation, quest reader
Kenneth Courtney
portal-switcher: filter + most-recent ordering
Kenneth Courtney
portal-switcher: land on the same dashboard page after a switch
Kenneth Courtney
nav: make mobile menu scrollable — items were falling below the fold
Kenneth Courtney
nav: guarantee Works + Learn in the mobile menu
Kenneth Courtney
URGENT: remove isGuardianAngel field — stops tenant-read outage
Kenneth Courtney
dispatch: active quest routing + reroute (Uber-Eats-style)
Kenneth Courtney
set_availability LEO tool + Daily Bread streak progress (both Core, no schema)
Kenneth Courtney
leo: web_search tool — give LEO live web lookup
Kenneth Courtney
planner: Slices 2-4 — scheduling link surfaced, agenda aggregation, get_agenda LEO tool
Kenneth Courtney
planner: Slice 1 — turnkey scheduling link (default availability on angel birth)
Kenneth Courtney
Stripe keys confirmed on both platforms (Connect via Clearwater); note platform-direct guardian sub + webhook-events check
Kenneth Courtney
guardian-angel: guardian-aware invite — the ignition spark
Kenneth Courtney
guardian-angel: Phase 2 — isGuardianAngel marker fixes claim idempotency
Kenneth Courtney
guardian-angel: Phase 1 — ensure is_guardian_angel column (schema-safe)
Kenneth Courtney
overnight funnel handoff — charge side wired, env checklist to go live
Kenneth Courtney
guardian-angel: provision-free-first + Stripe subscription (charge side)
Kenneth Courtney
guardian-angel: personal angels stay out of Discovery (networkVisible=false)
Kenneth Courtney
guardian-angel: default base domain -> spacesangels.com (The Angel OS)
Kenneth Courtney
guardian-angel: gmail<=>angel 1:1 default, a few allowed under soft cap
Kenneth Courtney
guardian-angel: mutable slug — rename portal without breaking sent links
Kenneth Courtney
guardian-angel: opaque slug by default, vanity handle opt-in
Kenneth Courtney
media: every new asset posts to the AI Bus media channel
Kenneth Courtney
guardian-angel: free-tier usage decision layer + status endpoint
Kenneth Courtney
state of The Angel OS 260707 — organism + monetization lifeline
Kenneth Courtney
redeploy to pick up AI_PROVIDER_ORDER env change
Kenneth Courtney
federation-map: click a Diocese to focus it + reveal its endeavors (declutter the whack)
Kenneth Courtney
create_post_from_media: frame a YouTube/Vimeo video + integrate photo analysis
Kenneth Courtney
monetization: self-serve guardian-angel claim endpoint (the Nimue-download mechanic)
Kenneth Courtney
ai: Gemini Pro joins the 'max' fallback chain
Kenneth Courtney
ai-ops: provider switchboard — live reachability probe + green-dot board
Kenneth Courtney
gallery-tables: generate DDL per collection — covers Posts, not just Pages
Kenneth Courtney
ai: direct Google (Gemini) provider — primary cloud brain, binding-order first
Kenneth Courtney
provision: POST /provision-ops/decommission — the deprovision half of the pair
Kenneth Courtney
changelog: live git-history changelog on the dashboard
Kenneth Courtney
provision: owner invite = pending tenant-membership so it shows on team page + uses /tenant-invite URL
Kenneth Courtney
posts: Gallery block + create_post_from_media LEO tool
Kenneth Courtney
leo: an explicit request IS the confirmation — stop re-asking on reversible actions
Kenneth Courtney
provision: Community space named 'Community' + a 'main' default channel
Kenneth Courtney
media-picker: server paginate + filter, optional channel source
Kenneth Courtney
invite: set space-membership tenant from the space (CRON/non-request paths)
Kenneth Courtney
provision: optional ownerEmail — provision a portal AND invite+email its owner in one call
Kenneth Courtney
state of The Angel OS 260706 handoff
Kenneth Courtney
leo: delegate_task ensures the #team channel exists + returns a deep-link
Kenneth Courtney
media: server-side paging + filter on the Media Library (Payload best practice)
Kenneth Courtney
ingest: superset of DOM cards + transcript-only videos (621 unique)
Kenneth Courtney
ingest: make the Viewstats DOM the video-list spine, merge transcripts by id
Kenneth Courtney
ingest: Clearwater transcript parser (dry-run) → Post manifest
Kenneth Courtney
media: auto-analyze every upload → deeply searchable metadata
Kenneth Courtney
escalation: durable AI-Bus escalation sink + budget_exceeded emission
Kenneth Courtney
mark channel-aware routing shipped in 260705 state
Kenneth Courtney
routing: channel-aware brain routing — node:{endeavor}:{nodeId} channels broker to their Merlin node
Kenneth Courtney
state of The Angel OS 260705 handoff
Kenneth Courtney
leo: delegate_task 'field invalid: Content' + coerce string message content collection-wide
Kenneth Courtney
ai-costs: live 'Providers in play' status + AI Settings link
Kenneth Courtney
merlin-console: strip result plumbing, collapse long msgs, Copy/Speak, show-earlier
Kenneth Courtney
settings: consolidate admin settings + real Discovery toggle
Kenneth Courtney