1.0.0 Latest
New Features
- rebuild dashboard sidebar with shadcn
- add normalized query surfaces
- delegate Vercel Stripe metering
- add additive wearables read commands
- prefer normalized wearable query surfaces
- add canonical wearable envelope layer
- add Bryan Johnson sauna onboarding contract
- improve Norwegian 4x4 research framing
- add repo-local GitHub task skill
- add Finnish sauna onboarding
- add privacy-safe ai usage attribution
- refresh red-light research copy
- add red-light onboarding
- recover Finnish sauna source appraisals
- add scheduled log support
- expand bryan johnson sauna evidence
- polish experiment research group cards
- land finnish sauna tranche1 appraisals
- add generic capture primitive
- auto-manage Stripe webhook listener from pnpm dev
- land norwegian 4x4 research landscape
- add source findings takeaways
- use dedicated finnish sauna artwork
- use dedicated bryan johnson artwork
- use dedicated red light artwork
- use dedicated norwegian 4x4 artwork
- land merged local research updates
- merge pro helper research updates
- expand study card summaries
- expand norwegian 4x4 research corpus
- add source-person profile images
- add research evidence metadata
- add red-light evidence metadata
- refine experiment signal prominence copy
- reuse experiment protocol timeline summary
- add hosted vault sync import
- restructure protocol details
- expand finnish sauna corpus
- refresh user-facing experiment copy
- add norwegian 4x4 landing package
- dedupe red light glasses pass4
- add red light glasses landing
- add research pass resume support
- add research workflow script
- source experiment detail from health commons
- add run release-finalize seam
- expand sauna research corpus
- source bryan johnson sauna routine
- cut over dry-sauna commons seed
- add hosted run breadcrumb logs
- add initial health commons package
- add hosted-run control plane
- add runner observability logs
- support best-effort multi-stream csv imports
- make csv sample imports more permissive
- add copy button to homepage install terminal
- materialize due wakes before alarm drain
- add hosted launch pricing plans
- prefill hosted phone country from geo hints
- redesign Connect card and update homepage copy
- land hard-cut migration batch 1
- hard-cut hosted wake docs and harness
- merge how-it-works + experiments into one narrative section
- tone join stages with danger eyebrow, lift form surfaces
- dev-only ?preview= for /join UI review
- rework /join shell to narrow split-panel layout
- polish FAQ, OTP slots, and LP auth CTA
- tidy dashboard sidebar and make LP logo clickable
- add mobile top-bar nav to dashboard layout
- unify /join stages on new design system shell
- roll out new design system to settings, OTP input, FAQ privacy Q
- land native wake executor and payload spill
- land final cutover phases
- cut over live runner wake drains
- stage hosted wake substrate
- land hosted browser snapshot flow
- add email delivery subjects
- add Strava integration
- enable privy captcha on hosted onboarding auth
- expand hosted phone auth countries for byo twilio
- add hosted onboarding playwright stress helper
- narrow outbox mirror authority
- make hosted delivery journal authoritative
- add landing-page signup cta
- add quick start to landing page
- promote landing page to root
- add explicit food unschedule command
- land greenfield control-plane cutover
- add OG/Twitter metatags to LP and replace nav logo with SVG
- unified /design page with Brand and Components tabs
- add dynamic OG image generation
- add SVG logo and favicon
- auto-scan image qr and barcodes
- add landing page with hero and sticky nav
- add shadcn chart component with recharts
- implement dashboard app shell with experiment pages
- set up design system with shadcn base-ui components
Bug Fixes
- harden research thread url capture
- harden cli validation and model recovery
- harden research workspace packaging
- align hosted deploy env workflow
- move sidebar gradient constant to server-safe module
- center mobile header logo
- use logo wordmark in mobile dashboard header
- sidebar spacing and drop logout icon
- align wearable latest summaries
- align experiment prompt guidance
- extend shard wait timeout
- tighten scheduled-log follow-up handling
- ignore nested agent skill directories
- restore main release and hosted e2e checks
- improve local onboarding public-link guidance
- land Finnish sauna detail cleanup and refresh CLI artifacts
- tighten Norwegian 4x4 onboarding guidance
- drop stale review-gpt flag
- separate typing ownership from cleanup handles
- tighten telegram and linq abort handling
- persist safe notification run logs
- repair local e2e lane
- restore assistant-cli subpath source resolution
- split capture add lookup handles
- tighten capture batch handling
- harden cold-start typing ownership
- capture Stripe whsec from stderr too
- add retry safeguards
- preserve provider continuity on resume
- pair usage prices with launch checkout
- preserve native resume during onboarding
- preserve normalized preset and explicit false zdr
- hard-cut provider callers to target policy
- set image sizes and priority on experiment cards
- pass vercel ai key to hosted deploy
- reconcile hosted Stripe webhooks inline
- use authored study findings
- fix hosted local e2e startup
- simplify study card collapsed state
- make the full study row collapsible
- require authored study summaries
- add red-light source findings
- tighten experiments page header copy
- tighten bryan johnson sauna copy and study metadata
- restore study card and enable dev cache
- prefer recent experiment sources on tied n
- validate import manifest from bundle
- prioritize study findings in experiment cards
- inherit homepage opengraph image on join
- swap experiment source sample badges
- pin sauna and 4x4 featured cards
- tighten signal uncertainty copy
- move study sample counts
- explain research stat labels
- tweak signal uncertainty copy
- remove background signal helper copy
- clarify experiment signal hierarchy
- remove protocol signal helper copy
- clarify experiment protocol copy
- show protocol days excluding baseline
- show study years in source badges
- tighten norwegian 4x4 steps
- trim baseline protocol steps
- simplify protocol UI
- trim bryan johnson experiment copy
- clean up source person expert cards
- return structured bound tool failures
- share hosted run messaging activity
- split container runtime loaders
- remove reply sanitizer
- key onboarding to first session
- defer hosted stripe webhook reconciliation
- restore experiments catalog
- remove remaining bank seam casts
- harden sqlite row decoders
- remove telegram connector api casts
- simplify research artifact handling
- require downloadable smoke artifacts
- scope research artifact detection to latest turn
- export failed research turns
- harden research smoke workflow
- harden runtime issue privacy path
- land run-centric ingress protocol seam
- refine first-turn onboarding guidance
- green clean release checks
- consume dashboard snapshot directly
- tighten privacy retention across hosted ingress and runtime
- restore hosted-local e2e hard-cut lanes
- fail closed on ingress and stale outbox resend
- remove durable do bundle cache
- stop renewing agent token export sessions
- drain hosted run follow-up work locally
- always finalize prepared run drains
- preserve direct hosted-run retry arm
- align runtime timer run-drain verification
- land sauna docs cleanup patch
- harden hosted email drain and agent session retries
- fence stale job failures
- land greenfield cutover
- deprecate persisted assistant cron tick ingress
- align run-shaped runner request tests
- hard-close run-drain timer wake seam
- hard-cut hosted jobs to runDrain
- reject partial acquired commits
- require runDrain for runner wake invokes
- isolate write-batch commit boundary
- clear hosted tokens on disconnect
- hard-cut subpath-only root fallbacks
- remove empty workspace import
- stabilize assistant cli and hosted runtime specs
- keep setup shim bin ownership in packages/cli
- prevent hosted local linq cleanup replay
- relax homepage hero wrapping on mobile
- finish legacy hard-cut cleanups
- expand durable runner observability
- handle equals-style root flags
- add safe observability logs
- hard-cut workout measurement alias
- remove assistant outbox and device-sync legacy shims
- remove supplement legacy ingredient fallback
- expose container decode diagnostics
- restore canonical next font loading
- restore deploy migration history
- update hosted onboarding launch pricing
- decouple hosted-web prisma from verify
- restore hosted local e2e lanes
- stabilize verification lanes
- restore duplicate commit e2e lane
- narrow hosted-local runner bundle closure
- stabilize measurement verification fixtures
- prefer PATH vault-cli stubs
- drop typecheck project references
- remove stale assistant-engine helper exports
- preserve local bridge loopback bootstrap
- get verify green again
- fail closed for root chat raw-mode input
- close greenfield cutover gaps
- use static fonts for og image
- self-host hosted fonts
- restore hosted-wake Vercel build
- hard-cut materialization and clean stale docs
- tolerate missing prisma env files
- preserve provider normalization inference
- require finalize proof for snapshot publish
- unify quarantined lifecycle vocabulary
- retry alarm-driven hosted wake drains
- remove legacy route callbacks
- move alias routing ownership to web
- require hosted runtime mutation fences
- require wakeEventId in fetch proofs
- sync loopback prisma schemas with db push
- refetch after quarantine invalidation
- align hosted env wiring
- refetch hosted wake batch after cursor advance
- roll hosted wake quarantine fence
- make terminal prompt prefix non-selectable
- harden wake proof rollout and stale hint refresh
- tighten hosted wake proof fixtures and snapshot refs
- tighten hosted wake terminal proofing
- keep runner authority in the supervisor
- tighten wake boundary contracts
- tighten hosted callback surfaces
- harden hosted wake proof boundaries
- tighten proof and materialization boundaries
- finalize hosted wakes after cursor commit
- scope external event identity by owner
- derive hosted device-sync wake materialization from postgres
- fail closed on runtime root-key repair
- close hosted wake cutover proof lanes
- allow generated next-env review-gpt stubs
- fence stale coalesced wake receipts
- trim dead wake wrappers
- narrow hosted cursor CAS patch
- allow snapshot-only hosted cursor CAS
- land hosted wake and webhook follow-ups
- fail closed on manifest path traversal
- hard-cut cron runtime compat
- fence hosted wake cursor snapshot refs
- reconcile replaced hosted wakes
- harden runner outbound bootstrap stub
- preserve coalesced event identity
- unify deploy boolean env parsing
- fail closed hosted-email public ingress callback errors
- unify encrypted wake payload shape
- split hosted secret ownership
- normalize hosted linq wake payload
- harden hosted Privy verifier config
- enforce single-step hosted wake cursor commits
- verify hosted Privy tokens directly
- trust successful save receipts
- align hard-cut wake parity
- stop treating missing hosted wakes as queued
- remove execution outbox from hosted baseline
- trust Privy identity-token member ids
- keep wake cleanup aligned with v2 cutover
- avoid member lookup on invite-status polls
- make invite status polling single-flight
- prefer outbox mirror for hosted delivery recovery
- drop gateway projection journal snapshots
- prefer direct final wake bundle commits
- cut over active-member Linq webhook replies
- hard-cut hosted ingress wake ownership
- ignore next smoke review artifacts
- drop telegram webhook receipt ownership
- align hosted wake payload schema export
- update hosted annual launch price to 150
- update hosted annual launch pricing
- update hosted launch monthly pricing
- stabilize local hosted wake suites
- stabilize hosted local e2e after wake cutover
- harden murph install smoke path
- commit prisma client link helper
- align hosted runtime with dispatch-first request
- remove hosted crypto test fallbacks
- remove observability vitest fallback
- move missing Privy fallback into test harnesses
- refine homepage hero and hosted auth smoke fallback
- derive shim dispatch fallback from hosted status
- keep quarantined rows terminal
- clean up phone and messaging-setup cards
- shrink oversized primary buttons on /join verify and checkout
- make hosted wake handoff fully best effort
- prune audit bundle binaries
- address frontend-review findings on otp input and sidebar
- restore acceptance green
- drop unreachable hosted email participant guard
- pack runner workspace deps with npm
- pass TSX tsconfig through hosted local launcher
- harden browser-safe query boundaries
- tighten session contract parsing
- restore Linq webhook reply continuity
- harden hosted wake scheduling
- include snapshot aad in session
- fail closed on invalid email subjects
- serialize hosted runner lease claims
- fail closed device-sync runtime config
- normalize hosted email routing
- inline-drain hosted linq webhook dispatch
- preserve active lease on stale finalize retries
- keep hosted email replies owner-only
- harden hosted runtime config handoff
- restore strava release coverage
- preserve hosted-local rapid-turn continuity
- fail closed on missing linux runner alias
- stabilize linux hosted local messaging e2e
- prebuild hosted local runner bundle
- skip vercel link when oidc token is provided
- use workspace tsconfig for hosted dev
- bootstrap hosted dev source resolution
- harden hosted rapid-turn e2e auth
- preserve assistant continuity across rapid turns
- hard-cut hosted runner config surface
- use hosted email send binding
- centralize hosted runtime provider config
- remove duplicate homepage code
- canonicalize homepage route
- update homepage signup headline
- tighten homepage signup cta
- remove hosted phone country setup notices
- finalize hosted cleanup shape
- tolerate runner cleanup destroy races
- enforce proxy auth and drain legacy outbox refs
- restore typecheck path resolution
- refine linq first-contact routing
- clean hosted callback boundary
- prevent repeated linq first-contact retries
- forward isolated runner child logs
- restore release check
- add hosted delivery debug logs
- preserve raw linq reply anchors
- recover stale linq chats and surface delivery errors
- canonicalize hosted webhook dispatch transaction ownership
- recover invalid assistant config from env
- extend runner warm idle ttl
- bound telegram webhook inline drain
- unblock telegram webhook ingress
- fence stale hosted runner results
- suppress phone auth banner during alternate auth
- remove inline device-sync wake state
- align hosted phone entry input sizing
- clarify attachment parse and decode surfaces
- remove /lp hero sign-in button
- replace /lp auth dead links
- backfill parse jobs on deduped captures
- restore repo verification green
- stabilize first-contact e2e script
- tighten cleanup follow-ups
- restore green verification
- preserve linq reply state and target defaults
- make meal schema and list surface truthful
- harden linq reply delivery
- remove hosted runtime dead path
- resolve live cutover merge
- self-heal linq replies and preserve proxy base urls
- restore hosted local runner env parity
- restore pre-activation user env control
- index frontend agent guidance
- ignore cloudflare dry-run artifacts
- log hosted delivery failures
- add worker-safe contracts subpath
- avoid sqlite in worker bundle
Documentation
- finish Vercel Stripe setup notes
- refresh Murph thesis docs
- clarify worktree and audit subagent policy
- note generated artifact landing policy
- note generated artifact landing policy
- clarify experiment mechanisms
- capture hosted cleanup artifacts
- close hosted run-drain cleanup lane
- close hosted security follow-up lane
- finish hosted hard-cut doc cleanup
- clean hosted run doc residue
- hard-cut hosted execution docs
- hard-cut legacy wake lane
- align hosted-run recovery wording
- remove completed legacy cleanup lane
- trim hosted migration wording
- close landed hosted wake cleanup plans
- clarify hosted wake behavior contract
- tighten cutover truth in live docs
- dedupe hosted cutover active state
- remove hosted runner wake wrapper row
- clarify hosted wake message contract
- note ?preview dev aid and reconcile lucide guidance
- review hosted inbound target plan
- lock device sync provider readiness path
- add phone wallet refresh plan
- remove completed outbox cleanup ledger row
- tee up hosted cutover worker pack
- update brand assets, frontend refs, and remove visual-identity.md
- add frontend review audit
Changelog
Full Changelog: v0.2.13...HEAD
- test: cover device cli contracts (db1df96)
- fix: harden research thread url capture (1174210)
- fix: harden cli validation and model recovery (9741ef8)
- Fix hosted device connect provider guard (384eefe)
- chore(deps): bump review-gpt to 0.5.74 (60483dc)
- Update system-prompt.ts (00bf73a)
- chore: land greenfield v1 cleanup batch (b53d304)
- Add conservative Cloudflare container rollout defaults (36d48a0)
- Add Vercel Gateway provider filter config (03f6bf5)
- fix: harden research workspace packaging (416123f)
- test(assistant-runtime): cover hosted turn input refresh (d4a2485)
- Add hosted late input turn adoption (6d3ffe7)
- align cloudflare deploy workflow env surface (8fdda11)
- fix(cloudflare): align hosted deploy env workflow (feb45c6)
- cf (5d8477d)
- test: fix acceptance coverage and artifacts (7151426)
- revert(web): inline sidebar gradient instead of extracting to a module (84b6d26)
- fix(web): move sidebar gradient constant to server-safe module (ffd3d90)
- Add active experiment prompt context (4ff60d9)
- refactor(web): extract sidebar brand gradient constant (a25b7aa)
- fix(web): center mobile header logo (3f92f8e)
- fix(web): use logo wordmark in mobile dashboard header (83c73e5)
- refactor(web): unify sidebar footer and use logo wordmark (23a0961)
- Fix research scaffold review-gpt packaging (ccfee9b)
- refactor(web): sidebar guideline cleanup (4eaab8e)
- fix(web): sidebar spacing and drop logout icon (942744d)
- feat(web): rebuild dashboard sidebar with shadcn (1d7811a)
- chore(agent-docs): clear wearables lane ledger row (5f9aed6)
- fix(query): align wearable latest summaries (ee5702c)
- docs(hosted-ai-billing): finish Vercel Stripe setup notes (39c671e)
- Land canonical experiment run progress and outcome surfaces (c8dbb8f)
- test(assistant-engine): fix turn-input landing coverage (5170f09)
- Make device-sync manifests own job schemas (fe83157)
- Land assistant turn-input local-runtime seam (fc0d677)
- test(cli): cover experiment progress and outcome CLI flow (e61a26a)
- feat(wearables): add normalized query surfaces (1e230b1)
- fix: align experiment prompt guidance (8aee364)
- feat(hosted-ai-billing): delegate Vercel Stripe metering (a1124b4)
- Land device-sync provider manifest registry (7f49095)
- hosted runtime delegated billing port slice (e1319ce)
- Add biomarker dashboard navigation (5158832)
- apps/web persist delegated hosted billing source (76f5a69)
- test(hosted-runtime): cover delegated billing fail-closed paths (79c5651)
- feat(cli): add additive wearables read commands (f783c8c)
- Add resting heart rate biomarker page (0e60491)
- feat(assistant-engine): prefer normalized wearable query surfaces (b36263e)
- feat(importers): add canonical wearable envelope layer (0a31942)
- feat: add Bryan Johnson sauna onboarding contract (78be6cd)
- fix(research): extend shard wait timeout (c6f5993)
- fix: tighten scheduled-log follow-up handling (fe6ee30)
- Fix hosted AI usage reporting secret boundary (06e2126)
- Relax commit helper message requirement (5b31ed2)
- feat(experiments): improve Norwegian 4x4 research framing (c8b39a3)
- fix(repo): ignore nested agent skill directories (8aac3c2)
- fix(ci): restore main release and hosted e2e checks (355d23f)
- chore(repo): close GitHub task skill ledger row (9308658)
- feat(repo): add repo-local GitHub task skill (6984f3b)
- fix(setup-cli): improve local onboarding public-link guidance (c65bdc3)
- docs(product): refresh Murph thesis docs (41ee6bf)
- fix(repo): land Finnish sauna detail cleanup and refresh CLI artifacts (15821f8)
- refactor(research): make init charter-first (139b5f8)
- feat(health-commons): add Finnish sauna onboarding (6795fbf)
- fix(onboarding): tighten Norwegian 4x4 onboarding guidance (e71ddc2)
- feat(hosted): add privacy-safe ai usage attribution (7d7fd0d)
- feat(health-commons): refresh red-light research copy (c17d5a3)
- fix(research): drop stale review-gpt flag (d0f1afc)
- fix(hosted): separate typing ownership from cleanup handles (e95430c)
- chore(research): add research init scaffold (e40722b)
- feat(health-commons): add red-light onboarding (b6c436f)
- Add Norwegian 4x4 experiment onboarding (e7b3bb2)
- feat(health-commons): recover Finnish sauna source appraisals (36906f4)
- fix(hosted-typing): tighten telegram and linq abort handling (f367776)
- Land Norwegian 4x4 study-card and source refresh (a1d2d20)
- fix(hosted): persist safe notification run logs (e50e320)
- fix(hosted): repair local e2e lane (c35a6e7)
- fix(repo): restore assistant-cli subpath source resolution (da8b3c5)
- feat(assistant-engine): add scheduled log support (ff5599b)
- fix(vault-usecases): split capture add lookup handles (9fdc413)
- feat(health-commons): expand bryan johnson sauna evidence (dcda3f1)
- fix(vault-usecases): tighten capture batch handling (27c8b23)
- feat(web): polish experiment research group cards (41dac5e)
- docs(agents): clarify worktree and audit subagent policy (4baf515)
- chore: bump review-gpt to 0.5.73 (452fcaa)
- feat(health-commons): land finnish sauna tranche1 appraisals (2917ed1)
- add new research (ef4bdda)
- feat(core): add generic capture primitive (387064b)
- fix(hosted-runtime): harden cold-start typing ownership (023df1a)
- fix(dev-hosted-local): capture Stripe whsec from stderr too (ed28474)
- feat(dev-hosted-local): auto-manage Stripe webhook listener from pnpm dev (93c675d)
- fix(hosted-usage): add retry safeguards (fd257c4)
- fix(assistant-engine): preserve provider continuity on resume (54af726)
- fix(hosted-onboarding): pair usage prices with launch checkout (7e08c48)
- fix(assistant-engine): preserve native resume during onboarding (7ad8f50)
- fix(assistant-provider): preserve normalized preset and explicit false zdr (05e1c44)
- feat(health-commons): land norwegian 4x4 research landscape (33ec0e7)
- refactor(assistant): hard-cut normalized provider config (e416d65)
- fix(operator-config): hard-cut provider callers to target policy (5e39488)
- refactor(assistant-engine): read provider target and policy directly (9ebf042)
- feat(health-commons): add source findings takeaways (197d350)
- chore(cloudflare): enable smart placement (37c3061)
- fix(web): set image sizes and priority on experiment cards (ddb102b)
- chore(agent-docs): clear completed cloudflare key workflow row (f98546a)
- fix(cloudflare): pass vercel ai key to hosted deploy (3d54f9d)
- refactor(web): simplify experiment artwork resolver (528c7f6)
- feat(web): use dedicated finnish sauna artwork (a1dcb1e)
- feat(web): use dedicated bryan johnson artwork (7073ff5)
- feat(web): use dedicated red light artwork (a2328a4)
- feat(web): use dedicated norwegian 4x4 artwork (6efd0cd)
- fix(web): reconcile hosted Stripe webhooks inline (25688ad)
- chore(repo): clear landed wake residue (7fcfdcd)
- fix(web): use authored study findings (7207aad)
- docs(agents): note generated artifact landing policy (39e05eb)
- docs(health-commons): note generated artifact landing policy (69a6110)
- feat(health-commons): land merged local research updates (26e28c9)
- feat(health-commons): merge pro helper research updates (c13c930)
- fix(cloudflare): fix hosted local e2e startup (1894e07)
- test: isolate cloudflare node runner env (9cadacb)
- fix(web): simplify study card collapsed state (8530d56)
- fix(web): make the full study row collapsible (62038ca)
- feat(web): expand study card summaries (aebf288)
- fix(web): require authored study summaries (c450966)
- fix(health-commons): add red-light source findings (ce42605)
- fix(web): tighten experiments page header copy (62b6cd0)
- feat(health-commons): expand norwegian 4x4 research corpus (23faa32)
- chore(repo): speed up verify acceptance reuse (ea48ac6)
- test: handle Telegram typing fetch in cloudflare runner test (63cf395)
- fix: tighten bryan johnson sauna copy and study metadata (3d320ca)
- Update experiment-header.tsx (49b6879)
- fix(web): restore study card and enable dev cache (c6cfc1c)
- feat(web): add source-person profile images (d21496f)
- chore(typecheck): parallelize workspace preflight (f2c7d87)
- fix(web): prefer recent experiment sources on tied n (95c8a36)
- fix(vault-sync): validate import manifest from bundle (a1c526d)
- fix(web): prioritize study findings in experiment cards (a746fdc)
- chore(health-commons): add Finnish sauna research evidence metadata (66b1b88)
- feat(health-commons): add research evidence metadata (7519684)
- feat(health-commons): add red-light evidence metadata (46743c2)
- docs(health-commons): clarify experiment mechanisms (70c91b6)
- fix(web): inherit homepage opengraph image on join (319ff68)
- fix: swap experiment source sample badges (2a3d7f4)
- fix(experiments): pin sauna and 4x4 featured cards (1306958)
- feat(web): refine experiment signal prominence copy (a4e4f00)
- feat(web): reuse experiment protocol timeline summary (0eaabf6)
- fix(web): tighten signal uncertainty copy (4125876)
- feat(vault): add hosted vault sync import (99f007f)
- fix(web): move study sample counts (56438a9)
- fix(experiments): explain research stat labels (2e879b1)
- fix(web): tweak signal uncertainty copy (b910b25)
- Clean up orphaned hosted web dev servers (16986c3)
- fix(web): remove background signal helper copy (5c84071)
- fix(web): clarify experiment signal hierarchy (728197f)
- fix(web): remove protocol signal helper copy (d5773a8)
- fix(health-commons): clarify experiment protocol copy (762a4cf)
- fix(experiments): show protocol days excluding baseline (ef9b1c2)
- fix(web): show study years in source badges (474b960)
- fix(health-commons): tighten norwegian 4x4 steps (55c6291)
- Fix experiment source labels (b56d714)
- fix(health-commons): trim baseline protocol steps (a56c952)
- fix(experiments): simplify protocol UI (3172886)
- fix(web): trim bryan johnson experiment copy (bee9a72)
- fix(web): clean up source person expert cards (fd01fb3)
- fix(assistant-engine): return structured bound tool failures (229c9e0)
- fix(hosted-runtime): share hosted run messaging activity (dd400ae)
- feat(experiments): restructure protocol details (737eb69)
- fix(cloudflare): split container runtime loaders (1f3594f)
- test(repo): align stale hosted expectations (e4b179c)
- chore(cloudflare): forward hosted assistant zero-data-retention (4d49c94)
- feat(health-commons): expand finnish sauna corpus (1eb418c)
- fix(assistant-engine): remove reply sanitizer (e0ea876)
- refactor(assistant): rename early-session onboarding seams (37a45d5)
- feat(health-commons): refresh user-facing experiment copy (2e4a790)
- fix(assistant-engine): key onboarding to first session (eead0d1)
- test(cloudflare): tighten hosted local e2e stubs (4a47643)
- refactor(web): remove dead hosted run nudge defer plumbing (8a91d3a)
- fix(web): defer hosted stripe webhook reconciliation (353a522)
- test: tighten unsafe assertion seams (8fdbe62)
- fix(web): restore experiments catalog (a3629b1)
- test: remove unsafe linq dispatch assertions (b68a4aa)
- test(web): remove remaining owned seam assertions (c132364)
- rm loading (7e0e64a)
- refactor: trim review-gpt wrapper surface (0c6e5c7)
- test(cloudflare): tighten hosted local helper assertions (943fd50)
- refactor: simplify review-gpt wrapper (1a65160)
- test: remove unsafe connector seam assertions (3832dd1)
- test(cloudflare): tighten assertion boundaries (924e622)
- chore(shared-runtime): remove remaining unknown assertions (1af55cf)
- refactor: remove hosted web unsafe assertions (cf7258b)
- fix(core): remove remaining bank seam casts (1620ce2)
- refactor: remove local review-gpt diagnostics wrapper (801a949)
- fix: harden sqlite row decoders (727aef1)
- refactor: remove redundant JSON boundary unknown casts (3ed17df)
- chore(core): remove redundant json parse unknown casts (c95d668)
- chore: remove redundant assistant-engine json boundary casts (9c8a6ab)
- refactor: wake final research pass (96a2484)
- test(assistantd): tighten typed test fixtures (6c54e77)
- fix(inboxd): remove telegram connector api casts (754ee82)
- fix(tooling): simplify research artifact handling (9f91d5e)
- test(assistantd): tighten service mock typing (cc8e822)
- chore(repo): ignore review-stage scratch files (17d65d4)
- fix(research): require downloadable smoke artifacts (9f5f7f3)
- feat(health-commons): add norwegian 4x4 landing package (4f25631)
- feat(health-commons): dedupe red light glasses pass4 (1bda2e3)
- build(deps): bump review-gpt to 0.5.72 (fec46bb)
- fix: scope research artifact detection to latest turn (c2c803e)
- feat(health-commons): add red light glasses landing (66ff159)
- fix: export failed research turns (a5b14ed)
- feat: add research pass resume support (3a6faed)
- refactor(hosted-onboarding): finish signup welcome notification migration (6b238c7)
- test(assistant-engine): update notification delivery expectations (073633c)
- docs(exec-plan): capture hosted cleanup artifacts (d99cf8e)
- docs(exec-plan): close hosted run-drain cleanup lane (457bffa)
- docs(exec-plan): close hosted security follow-up lane (b46fbe9)
- refactor(hosted-run): finish hard-cut cleanup and proof coverage (8d8950b)
- chore(exec-plan): clear browser-vault hard-cut ledger row (5ed322b)
- refactor(browser-vault): hard-cut replica session flow (ae3d810)
- fix: harden research smoke workflow (903c83c)
- fix(assistant-runtime): harden runtime issue privacy path (e0e66f9)
- test(cloudflare): update browser vault replica coverage (3afd757)
- feat: add research workflow script (2719836)
- test(assistant-runtime): update browser vault hard-cut tests (3201513)
- test(cloudflare-hosted-control): update browser vault session client test (5e0fdd0)
- refactor(web): split experiment protocol and private run detail (5afe010)
- fix(hosted-run): land run-centric ingress protocol seam (7866375)
- fix(assistant-engine): refine first-turn onboarding guidance (1888d76)
- feat(web): source experiment detail from health commons (e1ce37a)
- refactor(browser-vault): hard cut dashboard snapshot contract (d381946)
- fix(repo): green clean release checks (6616a68)
- Fail closed hosted-run commits on incomplete event results (c79a529)
- test(query): fix browser snapshot coverage assertions (d8e9ba2)
- test(cloudflare): use prepared bundle for local e2e (c071bd8)
- test(cloudflare): align browser vault snapshot fixtures (ded87de)
- fix(browser-vault): consume dashboard snapshot directly (d0f99d2)
- refactor(assistant-runtime): hard cut remaining wake naming (82bce4b)
- fix(retention): tighten privacy retention across hosted ingress and runtime (55ea5b0)
- refactor: finish greenfield shape cleanups (3fc1a9d)
- refactor: hard-cut compatibility residue (c203e7b)
- refactor(cloudflare): share serialized lock helper (9c96505)
- chore(deps): bump review-gpt to 0.5.71 (b6912cd)
- refactor(web): remove stale device-sync ingress residue (cb4c106)
- refactor: share package vitest config setup (0b5b5ed)
- refactor(assistant-cli): hard-cut private subpath export (662eb75)
- refactor(hosted-runtime): simplify runner env seams (653db50)
- refactor(assistant-cli): trim private subpath exports (bf738a3)
- refactor(cloudflare): dedupe hosted user crypto context lookup (2ae4ef8)
- refactor: simplify assistant cron stale branches (6550c2d)
- fix(cloudflare): restore hosted-local e2e hard-cut lanes (971ecaf)
- fix(hosted): fail closed on ingress and stale outbox resend (8415529)
- Reject missing hosted run finalizeRequired in Cloudflare (b66cb2a)
- fix(cloudflare): remove durable do bundle cache (fd358bc)
- chore(web): drop stale connect-start test bucket (d9a3ceb)
- Make hosted run finalizeRequired explicit (03cc9d9)
- fix(web): stop renewing agent token export sessions (0326e53)
- fix(assistant-runtime): drain hosted run follow-up work locally (df375bf)
- chore(repo): add hosted-run stale-residue guard (038ade4)
- Preserve hosted device sync wake ingress hints (b64dba6)
- chore(web): remove dead device sync connect start helper (acb133b)
- Rename hosted run wakeIdsJson field (632ba6e)
- test: restore green repo verification (381bf17)
- fix(cloudflare): always finalize prepared run drains (0be0acd)
- fix(cloudflare): preserve direct hosted-run retry arm (97cfb44)
- fix(cloudflare): align runtime timer run-drain verification (358d776)
- fix(health-commons): land sauna docs cleanup patch (2580056)
- refactor(web): centralize invite phone auth flow (3161c0b)
- chore(web): delete dead duplicate ui root (676e01b)
- feat(hosted-execution): add run release-finalize seam (9ca079c)
- docs: finish hosted hard-cut doc cleanup (d34e315)
- refactor(cloudflare): remove local user-runner wake residue (855f9a5)
- docs: clean hosted run doc residue (f58ba42)
- fix(greenfield): harden hosted email drain and agent session retries (cd1a3af)
- chore(repo): drop abandoned ui lane registration (3158d6b)
- refactor(repo): land non-ui route and storage cleanup (74ba227)
- refactor: finish simplification cleanup follow-ups (c850e85)
- feat(health-commons): expand sauna research corpus (1378382)
- refactor(hosted-execution): split parser modules (0db0235)
- refactor: dedupe hosted run elapsed helper (e2254cd)
- refactor(cloudflare): simplify runner outbound helpers (aae7a6a)
- fix(device-syncd): fence stale job failures (eea8a88)
- refactor(vault-usecases): share raw import manifest reader (ec3f2ed)
- fix(boundaries): land greenfield cutover (dd9b857)
- fix(hosted-execution): deprecate persisted assistant cron tick ingress (50ff45c)
- feat(health-commons): source bryan johnson sauna routine (f13ce45)
- refactor(hosted): rename ingress and run boundary (eb2ea66)
- fix(hosted-runtime): align run-shaped runner request tests (da6a278)
- fix(hosted-runtime): hard-close run-drain timer wake seam (6b1793b)
- fix(runtime): hard-cut hosted jobs to runDrain (662bb5a)
- feat(health-commons): cut over dry-sauna commons seed (9a86214)
- feat(cloudflare): add hosted run breadcrumb logs (c19cef6)
- Wire hosted run phase logs into web observability (e657774)
- docs: hard-cut hosted execution docs (143f7a5)
- fix(hosted-run): reject partial acquired commits (20c77ab)
- Simplify hosted run durable statuses (77e5698)
- docs(hosted-run): hard-cut legacy wake lane (71552db)
- docs: align hosted-run recovery wording (ea35107)
- fix(cloudflare): require runDrain for runner wake invokes (eb14cd6)
- refactor(hosted-run): hard cut legacy hosted-wake surface (882b6a3)
- feat(health-commons): add initial health commons package (4cc5938)
- fix(core): isolate write-batch commit boundary (698864d)
- fix(device-sync): clear hosted tokens on disconnect (80e6433)
- Update system-prompt.ts (eb6cb7b)
- feat(hosted-execution): add hosted-run control plane (47dc225)
- fix(repo): hard-cut subpath-only root fallbacks (9224de8)
- chore(assistant-engine): remove file-shaped assistant exports (5025124)
- fix(hosted-execution): remove empty workspace import (66f2ce5)
- refactor: split assistant CLI capability definitions (15e5e62)
- chore(assistant-engine): trim stale tsconfig refs (2fe69e8)
- refactor(scripts): split workspace boundary verifier rules (b2773bd)
- refactor(device-syncd): split config parsing seams (198630c)
- fix(test): stabilize assistant cli and hosted runtime specs (20b8195)
- test: align onboarding prompt expectations (791ea4b)
- fix(cli): keep setup shim bin ownership in packages/cli (60b55dc)
- chore(cloudflare): align runner capacity defaults (b062e9d)
- fix(cloudflare): prevent hosted local linq cleanup replay (1ef4780)
- fix(web): relax homepage hero wrapping on mobile (5c27250)
- docs(exec-plan): remove completed legacy cleanup lane (bb419bb)
- fix(runtime): finish legacy hard-cut cleanups (e300460)
- fix(cloudflare): expand durable runner observability (662e732)
- Refactor hosted wake handoff to nudge semantics (12c0458)
- fix(operator-config): handle equals-style root flags (1fbe254)
- fix(cloudflare): add safe observability logs (1e80cd3)
- fix(cli): hard-cut workout measurement alias (1ba1ecb)
- feat(cloudflare): add runner observability logs (39dfbad)
- fix(runtime): remove assistant outbox and device-sync legacy shims (dca70cb)
- fix(query): remove supplement legacy ingredient fallback (00fdcb7)
- fix(cloudflare): expose container decode diagnostics (040c874)
- fix(web): restore canonical next font loading (67ced6e)
- fix(cloudflare): restore deploy migration history (59032db)
- fix(web): update hosted onboarding launch pricing (84ebb5b)
- fix(cloudflare): decouple hosted-web prisma from verify (84f8c82)
- final (bf4f437)
- chore(agent-docs): close cloudflare e2e ledger row (7ba2256)
- fix(cloudflare): restore hosted local e2e lanes (cc0ee8b)
- fix(repo): stabilize verification lanes (9b795b9)
- fix(cloudflare): restore duplicate commit e2e lane (7d48e13)
- fix(cloudflare): narrow hosted-local runner bundle closure (1ad902c)
- fix(contracts): stabilize measurement verification fixtures (87edf34)
- fix(assistant-engine): prefer PATH vault-cli stubs (3db1de8)
- fix(inboxd): drop typecheck project references (c18873c)
- final shape (5bb4686)
- fix(repo): remove stale assistant-engine helper exports (809c79c)
- test: add hosted-local linq later-reply drain proof (98a26b3)
- chore(agent-docs): clear closed linq reply ledger row (f14b297)
- fix(hosted-assistant): preserve local bridge loopback bootstrap (1e5db99)
- fix(cloudflare): get verify green again (019c4cb)
- test(cli): stabilize cli verification suite (03bd945)
- feat(importers): support best-effort multi-stream csv imports (1091231)
- fix(cli): fail closed for root chat raw-mode input (f07598a)
- test(assistant): narrow public subpaths and remove brittle chat duplicate (2c6f650)
- test: align assistant core facade export assertions (f09a349)
- test(cloudflare): add hosted wake pending-commit recovery proof (45134fb)
- test(hosted-wake): harden migration guard parser (f2f390d)
- fix(hosted-wake): close greenfield cutover gaps (8acd394)
- test(cli): align assistant tests with greenfield contracts (72851fa)
- chore(cli): refresh config schema (b127fec)
- feat(importers): make csv sample imports more permissive (503b60f)
- refactor(cli): finish greenfield compatibility cleanup (f712416)
- test(cli): drop providerBinding test fixtures (572a61b)
- refactor(shared): hard-cut threadId in automation self-delivery slice (138f400)
- fix(web): use static fonts for og image (e390099)
- refactor(assistant): require explicit providers and canonical cron thread ids (7796a9c)
- fix(web): self-host hosted fonts (e9ddef1)
- fix(web): restore hosted-wake Vercel build (03e5409)
- Hard-cut hosted wake proof and runner route leftovers (fe50911)
- fix(hosted-wake): hard-cut materialization and clean stale docs (4b91989)
- fix(web): tolerate missing prisma env files (533ecf5)
- test(vitest): resolve workspace public subpaths from source exports (b1a1add)
- refactor(hosted-email): hard-cut greenfield callback and thread target seams (36e2d31)
- refactor: hard-cut hosted execution compatibility seams (6a08976)
- refactor(hosted-wake): hard-cut poisoned runtime vocabulary (5b9b0b9)
- fix(operator-config): preserve provider normalization inference (0de5717)
- fix(hosted-wake): require finalize proof for snapshot publish (855d4d4)
- refactor(cloudflare): simplify hosted wake retry exits (792dfb9)
- fix(hosted-wake): unify quarantined lifecycle vocabulary (4f4c70b)
- fix(cloudflare): retry alarm-driven hosted wake drains (6b38dbb)
- fix(hosted-email): remove legacy route callbacks (6d0961b)
- fix(hosted-email): move alias routing ownership to web (a98a956)
- docs: trim hosted migration wording (b96c456)
- Remove generic hosted wake append seam (bdad6c7)
- Handle stale hosted wake terminal fences (def566e)
- refactor: hard-cut hosted runner callback routes (35bffdc)
- Harden hosted email ingress wake append (f21259f)
- chore(hosted-wake): hard-cut leftover terminal and runner concepts (d0a165f)
- fix(device-sync): require hosted runtime mutation fences (18fdc0d)
- test(web): add hosted wake quarantine legacy-proof rejection (36a9de1)
- docs(plans): close landed hosted wake cleanup plans (a0bfd6b)
- docs: clarify hosted wake behavior contract (0975e94)
- fix(hosted-wake): require wakeEventId in fetch proofs (de7a4fd)
- fix(dev-hosted-local): sync loopback prisma schemas with db push (09f1d10)
- Update hero-section.tsx (41aa8a8)
- test(hosted-execution): align cron reason assertion (f9a2d96)
- fix(hosted): refetch after quarantine invalidation (d576c65)
- fix(deploy): align hosted env wiring (64edd95)
- chore(web): condense hosted-web prisma migrations (e2213a2)
- fix: refetch hosted wake batch after cursor advance (90fbe87)
- test(cloudflare): align hosted wake refetch tests (fd3d363)
- fix(web): roll hosted wake quarantine fence (df01199)
- test(cloudflare): fence hosted wake test proofs (949df8a)
- test(cli): align release-script audit expectations (9b1d666)
- fix(web): make terminal prompt prefix non-selectable (ab39545)
- test: align cloudflare node-runner assertions (d4f9597)
- fix(hosted): harden wake proof rollout and stale hint refresh (46d4a52)
- fix: tighten hosted wake proof fixtures and snapshot refs (3555e9d)
- fix: tighten hosted wake terminal proofing (641205a)
- test: cover quarantined hosted wake terminal route (69dfd45)
- fix(cloudflare): keep runner authority in the supervisor (30f83c3)
- fix(hosted): tighten wake boundary contracts (68ffc63)
- fix(hosted): tighten hosted callback surfaces (9ffb999)
- test(web): align hosted wake proof coverage (bc927bf)
- feat(web): add copy button to homepage install terminal (6241cfb)
- fix(web): harden hosted wake proof boundaries (79ce0a6)
- fix(hosted-wake): tighten proof and materialization boundaries (4712be3)
- chore: trim hosted boundary tooling residue (04eaf43)
- fix(cloudflare): finalize hosted wakes after cursor commit (8b90c32)
- fix(web): scope external event identity by owner (0a9a1ed)
- chore(agent-docs): dedupe hosted cutover follow-up plans (c991a30)
- docs(hosted): tighten cutover truth in live docs (275276d)
- fix(web): derive hosted device-sync wake materialization from postgres (b035da6)
- docs(plans): dedupe hosted cutover active state (b825d6f)
- chore(agent-docs): archive stale hosted cutover prompts (13573c8)
- fix(cloudflare): fail closed on runtime root-key repair (0c33530)
- refactor: remove dead hosted parser maintenance seams (8311902)
- fix: close hosted wake cutover proof lanes (c9161c9)
- fix(tooling): allow generated next-env review-gpt stubs (1d195d7)
- docs(coordination): remove hosted runner wake wrapper row (235ba68)
- test(cloudflare): guard hosted wake enqueue wrappers (2e5788a)
- fix(web): fence stale coalesced wake receipts (4c142be)
- fix(hosted-execution): trim dead wake wrappers (f071a54)
- refactor(hosted-wake): remove dead edge-triggered behavior (a86d29e)
- fix(apps/web): narrow hosted cursor CAS patch (e64fe8b)
- fix(apps/web): allow snapshot-only hosted cursor CAS (eafbd85)
- fix: land hosted wake and webhook follow-ups (ec6d79c)
- Require hosted wake target confirmation for inline handoff (f267a8d)
- test(cloudflare): cover cleanup after cursor commit (4fa4438)
- Harden hosted wake cursor commits (5b4ba6a)
- fix(vault-usecases): fail closed on manifest path traversal (c51bcd6)
- fix(assistant-engine): hard-cut cron runtime compat (ea95206)
- fix(cloudflare): fence hosted wake cursor snapshot refs (d99c7db)
- refactor(cloudflare): rename gateway projection cache (61e9c63)
- fix(web): reconcile replaced hosted wakes (66e93d2)
- fix: harden runner outbound bootstrap stub (e3bc757)
- fix(hosted-wake): preserve coalesced event identity (c17566f)
- refactor(cloudflare): hard-cut local internal proxy auth (ca5b9f6)
- refactor(assistant-engine): extract cron food auto-log helpers (e1a5e95)
- refactor(cloudflare): clarify wake start modes (449ea03)
- refactor(cloudflare): split runner outbound codec helpers (acb33a5)
- Emit canonical wake materialization hints after system wakes (d0ae588)
- fix(cloudflare): unify deploy boolean env parsing (341d912)
- apps/cloudflare: fail closed on malformed runner bundle refs (a34d134)
- refactor: make hosted device-sync SQL error omission explicit (f72e423)
- refactor(cloudflare): drop runner state ready promise (e4cf10e)
- test(hosted-wake): fix payload unification fixtures (f0f3b09)
- fix(cloudflare): fail closed hosted-email public ingress callback errors (d59b31b)
- Fix hosted wake alarm read retry (804ab51)
- fix(hosted-wake): unify encrypted wake payload shape (01bc879)
- refactor(web): split hosted Privy auth helpers (caa8b77)
- fix(cloudflare): split hosted secret ownership (fdc402d)
- fix(hosted-execution): normalize hosted linq wake payload (6c47746)
- test(cloudflare): cover hosted wake finalize CAS conflicts (9482dc2)
- feat(hosted-execution): materialize due wakes before alarm drain (22e6703)
- chore: bump review-gpt to 0.5.70 (4775fe4)
- Harden hosted wake cleanup cursor CAS (95ab2d7)
- refactor(assistant-runtime): split hosted system wake lanes (462b5ca)
- fix(web): harden hosted Privy verifier config (7363fcf)
- fix: enforce single-step hosted wake cursor commits (c392279)
- docs: clarify hosted wake message contract (70a31e3)
- refactor(hosted-wake): hard-cut compatibility seams (0c0686c)
- fix(web): verify hosted Privy tokens directly (7ee0fbf)
- fix(assistant-engine): trust successful save receipts (06a4640)
- fix(hosted): align hard-cut wake parity (302898c)
- test(cloudflare): align thin-runner pending commit fixtures (3ad0d16)
- test: align hosted runtime parity expectations (3a79bf9)
- chore: bump review-gpt to 0.5.69 (4c1518a)
- fix(web): stop treating missing hosted wakes as queued (bfd93e3)
- fix(web): remove execution outbox from hosted baseline (5eec95d)
- chore(plans): close completed Privy auth lane (d4ebe4f)
- fix(web): trust Privy identity-token member ids (dac0ab9)
- fix(hosted-web): keep wake cleanup aligned with v2 cutover (4ff8009)
- chore: switch review-gpt delay to upstream cli (0dfa355)
- test(web): hard-cut hosted webhook receipt coverage (3cf14e2)
- fix(web): avoid member lookup on invite-status polls (430f8d0)
- refactor: simplify onboarding and split oversized modules (2a3b52f)
- test: tighten assistant delivery record test stubs (813ff40)
- refactor(cloudflare): finish hosted stateless cutover (cf00657)
- refactor(cloudflare): remove obsolete journal scaffolding (14f1c88)
- test(cloudflare): remove hosted effects seam references (579e557)
- fix(web): make invite status polling single-flight (697590c)
- test(assistant-runtime): update committed fallback log expectation (2237b9d)
- refactor(assistant-runtime): relax post-commit export failures (73f983e)
- refactor(cloudflare): fold bundle cache into runner meta (8fc588d)
- fix(assistant-runtime): prefer outbox mirror for hosted delivery recovery (37f47a7)
- fix(cloudflare): drop gateway projection journal snapshots (2e6f24c)
- fix(cloudflare): prefer direct final wake bundle commits (95ace5c)
- refactor(assistant-runtime): prefer single-pass hosted completion (a9de407)
- fix(web): cut over active-member Linq webhook replies (8e63aa0)
- refactor(assistant-runtime): simplify hosted conversation wake normalization (5d690ad)
- chore: remove unused review-gpt presets (df90e2b)
- refactor(hosted): harden wake payload transport (c6fe562)
- chore: stop review-gpt presets from requesting patches (42ca031)
- more hard cut cleanups and fixes (4b3276d)
- refactor(cloudflare): hard-cut wake-native status cleanup (bd97b6a)
- fix(apps/web): hard-cut hosted ingress wake ownership (b0ab4ce)
- refactor(assistant-runtime): cut conversation wake follow-up (01fce08)
- chore(agent-docs): clear hosted hard-cut ledger rows (e25d2a1)
- refactor(hosted): finalize hard-cut integration (e5a38e0)
- refactor(cloudflare): hard-cut hosted runner wake/state lane (5c92b28)
- refactor(assistant-runtime): tighten hosted wake seams (4b1199d)
- refactor(web): drop linq control-plane webhook receipts (cd53b48)
- refactor(runtime-state): remove hosted dispatch-payload scope (9257f58)
- refactor(hosted-execution): trim wake naming residue (3d675f3)
- fix(repo): ignore next smoke review artifacts (a8a3893)
- chore(agent-docs): close hosted local e2e harness lane (fffb3b1)
- refactor(cloudflare): stabilize hosted local e2e harness (1a28545)
- refactor(hosted): finalize greenfield wake cleanup (de121ba)
- refactor(apps/web): remove dispatch-lifecycle shim usage (f5b3de4)
- refactor(hosted-execution): drop wake status dispatch alias (eb82874)
- fix(web): drop telegram webhook receipt ownership (49f9047)
- refactor(cloudflare): drop redundant wake finalize alias (0ca748b)
- refactor(assistant-runtime): isolate conversation wake seam (6525a55)
- refactor(cloudflare): unify hosted local scenario helpers (e0bc0ac)
- chore(web): add Privy logo asset (ee6cbb6)
- fix(web): align hosted wake payload schema export (d9059c4)
- refactor(cloudflare): trim hosted wake dispatch residue (a7cd715)
- refactor: extract hosted local dev stack launcher (e18d1af)
- refactor(hosted-execution): drop legacy wake compatibility (5cfeb7e)
- Split hosted local full-stack and worker-only e2e lanes (bc91bbd)
- refactor(web): tighten hosted wake lifecycle seam (62a4a5b)
- refactor(assistant-runtime): make hosted wake followup explicit (d0be15e)
- update homepage (5964991)
- fix(web): update hosted annual launch price to 150 (60fb605)
- chore(review-gpt): ignore isolated next smoke outputs (37cb749)
- test(cloudflare): align wake-first hosted tests (f5d2fae)
- chore(exec-plan): clear hosted hard-cut ledger row (5ede70c)
- fix(web): update hosted annual launch pricing (5d76dc4)
- refactor(assistant-runtime): finish wake-first hard cut (cfd0952)
- fix(web): update hosted launch monthly pricing (6a16212)
- fix(hosted-e2e): stabilize local hosted wake suites (9232490)
- fix(cloudflare): stabilize hosted local e2e after wake cutover (35a2606)
- test(web): fix hosted hard-cut webhook fixture (51a8020)
- refactor(hosted-execution): remove dispatch compatibility (e696519)
- Hard-cut Cloudflare runner to wake-native flow (5d84136)
- fix(web): harden murph install smoke path (eb03ceb)
- Update site-footer.tsx (01a7dd8)
- fix(web): commit prisma client link helper (b8ffa40)
- chore(hosted): align hard-cut cleanup with wake-first reality (7f6bf4b)
- refactor(hosted): finish hard-cut batch 3 cleanup (f67895e)
- refactor(hosted): finish hard-cut batch 2 (1123535)
- refactor(web): simplify hosted phone geo prefill (3cbde5a)
- feat(web): add hosted launch pricing plans (f5c9ecb)
- refactor(cloudflare): hard-cut thin runner dispatch shims (57adb61)
- fix(assistant-runtime): align hosted runtime with dispatch-first request (04fc113)
- feat(web): prefill hosted phone country from geo hints (2a117e7)
- fix(web): remove hosted crypto test fallbacks (c547cb4)
- refactor(cloudflare): remove node-runner test globals (3dceaab)
- fix(hosted-execution): remove observability vitest fallback (3b72909)
- refactor(web): hard-cut hosted wake append inputs (0d9f16b)
- fix(web): move missing Privy fallback into test harnesses (858b2c5)
- fix(web): refine homepage hero and hosted auth smoke fallback (2d15ca4)
- feat(web): redesign Connect card and update homepage copy (fe921fb)
- feat(hosted): land hard-cut migration batch 1 (1c71a56)
- chore: clear completed thin-shim ledger row (c4d75ff)
- test: align thin-shim dispatch outcome assertions (3ebd363)
- fix(cloudflare): derive shim dispatch fallback from hosted status (60736dd)
- feat(cloudflare): hard-cut hosted wake docs and harness (c402d43)
- fix(hosted-wake): keep quarantined rows terminal (a7a1161)
- refactor: remove legacy hosted wake dispatch schema (18dc33b)
- refactor(apps-cloudflare): hard-cut native wake dispatch shims (e0c8133)
- refactor(assistant-runtime): split hosted wake message lane (3593058)
- refactor(hosted-web): hard-cut wake helper lifecycle (88f91b2)
- refactor(hosted-web): cut provider webhooks to direct hosted wakes (90e866e)
- feat(web): merge how-it-works + experiments into one narrative section (f8f0a4e)
- refactor(web): apply frontend-review fixes on /join (6d9e970)
- docs: note ?preview dev aid and reconcile lucide guidance (a27cf4f)
- fix(web): clean up phone and messaging-setup cards (b2ff98d)
- fix(web): shrink oversized primary buttons on /join verify and checkout (149127d)
- refactor(web): tighten invite shortcut verification card copy and layout (572ad69)
- refactor(web): rewrite active-state feature cards around experiments (e598bda)
- refactor(web): tighten /join copy, drop duplicate setup phrasing (3fb281f)
- feat(web): tone join stages with danger eyebrow, lift form surfaces (e627528)
- feat(web): dev-only ?preview= for /join UI review (aec68b8)
- refactor(web): swap Murph signup badge for mono eyebrow on /join (95a5ad9)
- feat(web): rework /join shell to narrow split-panel layout (910902f)
- feat(web): polish FAQ, OTP slots, and LP auth CTA (1667f1b)
- fix(apps-web): make hosted wake handoff fully best effort (9db0928)
- feat(web): tidy dashboard sidebar and make LP logo clickable (02174a9)
- feat(web): add mobile top-bar nav to dashboard layout (0bb0776)
- feat(web): unify /join stages on new design system shell (5c3d879)
- chore(repo): clear completed audit-bundle ledger row (dc46adc)
- fix(repo): prune audit bundle binaries (c982d73)
- refactor(hosted): hard-cut wake dispatch cleanup (d9fc483)
- fix(web): address frontend-review findings on otp input and sidebar (2c905e5)
- feat(web): roll out new design system to settings, OTP input, FAQ privacy Q (1ec1020)
- fix(repo): restore acceptance green (f378a03)
- feat(hosted-execution): land native wake executor and payload spill (0b706ad)
- discover (d864b3f)
- test(cloudflare): cover long finalize lease handoff (d8b13e4)
- fix(cloudflare): drop unreachable hosted email participant guard (8c5aa6a)
- fix(cloudflare): pack runner workspace deps with npm (fe0424c)
- fix(dev): pass TSX tsconfig through hosted local launcher (2813186)
- feat(hosted-wake): land final cutover phases (1c6fca0)
- feat(hosted-wake): cut over live runner wake drains (5ccc450)
- fix(browser-vault): harden browser-safe query boundaries (0813d1e)
- fix(browser-vault): tighten session contract parsing (0ef5887)
- chore(review-gpt): bump to v0.5.66 (f480222)
- chore(review-gpt): remove prompt-only mode (ef41134)
- fix(hosted): restore Linq webhook reply continuity (f4da794)
- fix(web): harden hosted wake scheduling (b1dd2db)
- fix(browser-vault): include snapshot aad in session (4a2bb00)
- feat(hosted): stage hosted wake substrate (2bbb0ad)
- feat(browser-vault): land hosted browser snapshot flow (91ccdce)
- test(assistant): add email delivery guard proofs (b78759b)
- fix(hosted): fail closed on invalid email subjects (77973b1)
- feat(assistant): add email delivery subjects (247a73e)
- test(cloudflare): cover hosted overlap lease race (217006a)
- fix(cloudflare): serialize hosted runner lease claims (51928b8)
- fix(assistant-runtime): fail closed device-sync runtime config (54268e4)
- chore(ci): drop stale hosted email workflow envs (b2c110a)
- fix(cloudflare): normalize hosted email routing (0090e5b)
- chore(deps): bump review-gpt to 0.5.65 (b6d3e96)
- chore(review-gpt): add failure diagnostics (2580fd5)
- fix(web): inline-drain hosted linq webhook dispatch (a3e6bb5)
- chore: bump review-gpt to 0.5.64 (9cd41fc)
- test(cloudflare): add local smoke duplicate-commit regression (ccfabf6)
- fix(cloudflare): preserve active lease on stale finalize retries (1ee2777)
- docs(architecture): review hosted inbound target plan (cdba5bf)
- fix(cloudflare): keep hosted email replies owner-only (aba43c3)
- fix(device-syncd): harden hosted runtime config handoff (09240bd)
- fix(device-sync): restore strava release coverage (73e51bf)
- fix(cloudflare): preserve hosted-local rapid-turn continuity (69dccf4)
- fix(cloudflare): fail closed on missing linux runner alias (8f8b222)
- fix(cloudflare): stabilize linux hosted local messaging e2e (1a7ee7e)
- fix(cloudflare): prebuild hosted local runner bundle (e53fef4)
- fix(scripts): skip vercel link when oidc token is provided (ca1afcb)
- fix(scripts): use workspace tsconfig for hosted dev (f4bbde9)
- fix(scripts): bootstrap hosted dev source resolution (74dd0e9)
- fix(cloudflare): harden hosted rapid-turn e2e auth (e93fef2)
- feat(device-sync): add Strava integration (40336d3)
- fix(hosted): preserve assistant continuity across rapid turns (7dfdd83)
- fix(device-sync): hard-cut hosted runner config surface (5758b6a)
- fix(cloudflare): use hosted email send binding (1953c49)
- chore: bump review-gpt to 0.5.63 (290060a)
- fix(device-sync): centralize hosted runtime provider config (19e8a29)
- refactor(web): split homepage into sections (9f39707)
- fix(web): remove duplicate homepage code (1a4d799)
- fix(web): canonicalize homepage route (b070225)
- feat(web): enable privy captcha on hosted onboarding auth (6f0bf97)
- fix(web): update homepage signup headline (6a0f8b3)
- fix(web): tighten homepage signup cta (942cc32)
- fix(web): remove hosted phone country setup notices (be16394)
- docs: lock device sync provider readiness path (11f408f)
- feat(web): expand hosted phone auth countries for byo twilio (c634d92)
- refactor(apps-web): hard-cut final device-sync integration cleanup (54aa70d)
- refactor(device-sync): hard-cut webhook preflight seam (7eec355)
- test(device-sync): lock provider seam guardrails (ca04c1b)
- chore(web): remove temporary Playwright stress helper (14fca70)
- refactor(device-sync): de-oura webhook admin config (cdf7981)
- Hard-cut hosted device-sync provider assembly (9b82796)
- feat(web): add hosted onboarding playwright stress helper (6b9cb1e)
- refactor(hosted): remove final dispatch compatibility seams (d6e9419)
- docs: add phone wallet refresh plan (59c6331)
- test: unblock release check (847cf41)
- docs(agent): remove completed outbox cleanup ledger row (89c7b58)
- refactor(web): remove execution outbox transport status (c8a3b5e)
- test(cloudflare): add local telegram hosted e2e (4a1d807)
- chore(repo): add Cloudflare deploy shortcut (ff9c5de)
- fix(hosted): finalize hosted cleanup shape (a05c208)
- refactor(hosted): hard-cut delivery journal authority (b775fa2)
- fix(cloudflare): tolerate runner cleanup destroy races (b046059)
- refactor(hosted): drop legacy outbox compat path (84d89d1)
- feat(hosted-delivery): narrow outbox mirror authority (6eee434)
- fix(hosted): enforce proxy auth and drain legacy outbox refs (415c616)
- fix(workspace): restore typecheck path resolution (2f6f263)
- feat(assistant-runtime): make hosted delivery journal authoritative (4523b1b)
- fix(assistant-engine): refine linq first-contact routing (29efed0)
- fix: clean hosted callback boundary (6351102)
- Align hosted Privy auth completion flows (fc9a72e)
- fix(assistant-engine): prevent repeated linq first-contact retries (445af9a)
- fix(cloudflare): forward isolated runner child logs (bd91b60)
- chore(repo): clear release fix ledger row (8f17476)
- fix(repo): restore release check (17e0f17)
- fix(assistant-runtime): add hosted delivery debug logs (d80573b)
- fix(hosted): preserve raw linq reply anchors (f476915)
- feat(web): add landing-page signup cta (38ef4f1)
- refactor(web): narrow hosted webhook receipt boundary (144535b)
- fix(hosted): recover stale linq chats and surface delivery errors (e4a2fa7)
- fix(web): canonicalize hosted webhook dispatch transaction ownership (3687214)
- feat(web): add quick start to landing page (d467da3)
- chore(hosted): add assistant bootstrap diagnostics (195fb55)
- fix(hosted): recover invalid assistant config from env (b6e921c)
- fix(cloudflare): extend runner warm idle ttl (89cd4d3)
- fix(web): bound telegram webhook inline drain (209b44f)
- fix(web): unblock telegram webhook ingress (094cd5b)
- fix(cloudflare): fence stale hosted runner results (edaec28)
- fix(web): suppress phone auth banner during alternate auth (7caf917)
- fix(hosted-execution): remove inline device-sync wake state (04c8141)
- fix(web): align hosted phone entry input sizing (5bb1a04)
- fix(inbox): clarify attachment parse and decode surfaces (21f0b27)
- refactor(cloudflare): hard cut hosted execution plane (5396346)
- feat(web): promote landing page to root (5387bfd)
- test(cloudflare): share hosted local e2e harness (5f3ccff)
- fix(web): remove /lp hero sign-in button (f3f9551)
- fix(web): replace /lp auth dead links (d1d1c0e)
- feat(cli): add explicit food unschedule command (8ac7134)
- fix(inboxd): backfill parse jobs on deduped captures (2db2a77)
- refactor(web): narrow hosted execution lifecycle reads (16bfc28)
- fix(test): restore repo verification green (9bef2b1)
- test(cloudflare): extract duplicate commit worker fixture (8d1d1a0)
- ci(cloudflare): expand hosted e2e lane (e99a2be)
- fix(cloudflare): stabilize first-contact e2e script (f0fd851)
- ci(cloudflare): add hosted first-contact e2e lane (ee9c3b5)
- fix(hosted): tighten cleanup follow-ups (5e33d8e)
- fix(repo): restore green verification (b9e5ff4)
- fix(hosted): preserve linq reply state and target defaults (9245f24)
- chore(hosted): trim runtime cleanup noise (c719033)
- chore(agent): close meal cli ledger row (d53f477)
- fix(cli): make meal schema and list surface truthful (6b7bb98)
- chore(agent): close hosted texting repro ledger row (a3f4963)
- chore(dev): keep hosted local repro worker-only (8ff8f9f)
- chore(hosted): trim linq repro leftovers (41e762a)
- fix(hosted): harden linq reply delivery (2eb0f0d)
- fix(device-sync): remove hosted runtime dead path (4de3881)
- fix(hosted): resolve live cutover merge (e8a003e)
- feat(hosted): land greenfield control-plane cutover (24b3ece)
- docs(exec-plans): tee up hosted cutover worker pack (1efa1d9)
- docs: update brand assets, frontend refs, and remove visual-identity.md (5374fc6)
- feat(web): add OG/Twitter metatags to LP and replace nav logo with SVG (426d7f6)
- feat(web): unified /design page with Brand and Components tabs (754c377)
- feat(web): add dynamic OG image generation (c93a15a)
- feat(web): add SVG logo and favicon (ec593ac)
- fix(hosted): self-heal linq replies and preserve proxy base urls (91b8df3)
- fix(dev): restore hosted local runner env parity (868e53c)
- feat(parsers): auto-scan image qr and barcodes (4f75889)
- feat(web): add landing page with hero and sticky nav (93bd216)
- fix(hosted): restore pre-activation user env control (543f76b)
- docs(workflow): add frontend review audit (f43a733)
- fix(docs): index frontend agent guidance (5fc71c9)
- refactor(hosted): collapse managed crypto ownership (2d5c701)
- fix(repo-tools): ignore cloudflare dry-run artifacts (9ed3418)
- fix(assistant-runtime): log hosted delivery failures (e352730)
- perf(web): reduce hosted billing checkout latency (cfb2f74)
- fix(assistant-runtime): add worker-safe contracts subpath (e654ca3)
- fix(cloudflare): avoid sqlite in worker bundle (7e632b0)
- chore(web): update design system showcase and add TODOS (1e41b0b)
- feat(web): add shadcn chart component with recharts (8459cf9)
- feat(web): implement dashboard app shell with experiment pages (df2b16e)
- feat(web): set up design system with shadcn base-ui components (4bcc0be)