{"service":"ao-progress-ledger","createdAt":"2026-05-07T07:48:13.886081+00:00","updatedAt":"2026-06-25T16:07:35.577252+00:00","storage":{"dataDir":"/data","stateBytes":385382035,"ledgerBytes":141930580,"snapshotCount":984},"latest":{"id":"6b276940a0083a86","createdAt":"2026-06-25T16:07:35.576301+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T16:06:47.389761+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T16:06:47.504372+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T16:06:47.617376+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T16:06:47.754114+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T16:06:47.852630+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T16:06:47.959302+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T16:06:48.066626+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T16:06:48.095626+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T16:06:48.204217+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T16:06:48.229709+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T16:06:48.336221+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T16:06:48.438124+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T16:06:48.508485+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":{"complaint":"Alan pointed out that the previews and PDFs still showed line-broken generated-note output after the first highlight-wrap fix.","issue":"The first fix corrected new wrapping logic, but existing synced generated PDFs and preview PNGs were already stored, so old note files could keep the previous renderer forever. The app also did not store a layout version or source text for future rebuilds.","changed":"Brain now stores source text and a generated-note layout version, exposes a sync rebuild endpoint, and automatically rebuilds outdated synced generated PDFs and preview PNGs in place. All 21 generated note PDFs now report the new continuous-paragraph layout version.","codexChange":"Added generatedNoteLayoutVersion metadata, sourceText persistence, /api/files/:id/rebuild, and a frontend migration pass; pushed standalone and hub copies; deployed Railway; verified the newest live PDF render and preview PNG.","specNote":"","title":"Brain generated note PDFs and previews rebuilt","provenance":"Current thread screenshot; live sync API verification on 2026-06-24 1:56 PM EDT; commits cda2ae6 and 4fefae5; Railway deployment 7a04aa49-e21c-4772-a081-acadbb02b9dc.","commit":"cda2ae6 / 4fefae5","snapshotId":"","createdAt":"2026-06-24T19:51:24.756252+00:00"}},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T16:06:48.539087+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T16:06:48.629614+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T16:06:48.723Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T16:06:48.735321+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T16:06:48.786164+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T16:06:48.861931+00:00","ok":true,"statusCode":200,"bytes":987132,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T15:49:00.832402+00:00","healthyCount":62,"sourceCount":67,"changedCount":11,"snapshotCount":983},"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:06:51.730764+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T16:06:51.769171+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T16:07:00.368531+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T16:07:00.539061+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T16:07:00.642733+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T16:07:00.923865+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T16:07:01.001876+00:00","ok":true,"statusCode":200,"bytes":15219,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":110,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:01.068003+00:00","ok":true,"statusCode":200,"bytes":262864,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T16:07:01.125889+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:01.327353+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T16:07:01.332032+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"}},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T16:07:01.492820+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"}},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T16:07:01.518937+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T16:07:01.601809+00:00","ok":true,"statusCode":200,"bytes":4454,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T16:07:01.683890+00:00","ok":true,"statusCode":200,"bytes":22550,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:02.404476+00:00","ok":true,"statusCode":200,"bytes":226538,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T16:07:02.462391+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T16:07:02.538616+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T16:07:09.883523+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T16:07:16.996997+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T16:07:24.389163+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T16:07:31.419764+00:00","ok":true,"statusCode":200,"bytes":932220,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:31.841280+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T16:07:31.883264+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T16:07:32.050880+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T16:07:32.142379+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:32.199264+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T16:07:32.424281+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T16:07:32.507026+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T16:07:32.573516+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T16:07:32.618066+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:32.723632+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T16:07:32.783954+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T16:07:32.919176+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan rejected the MINI attribute bubble/chip text boxes, then rejected the scarred replacement layout because it left a weird oversized blank band and too much dead space.","issue":"A3 treated static MINI metadata as decorative rounded chips and then stranded the surviving build facts in a wide empty text strip after the chips were removed.","changed":"A3 now serves a six-image MINI gallery with a compact over-image product bar, no feature-pills, flattened tier labels, and verified 200 image assets. Spec now serves the no decorative text-chip metadata and compact reflow rule, with revision PDF and paper PDF live.","codexChange":"Replaced weak MINI image set, removed static attribute chips, reflowed build facts into a compact overlay, flattened A3 tier markers, added AGENTS/Spec rule requiring chip removal plus compact reflow and desktop/mobile verification, rebuilt Spec paper PDF, deployed A3 and Spec.","specNote":"New Spec revision: 2026-06-24-no-decorative-text-chip-metadata-contract-7e8908475b. Sibling scan found Curtis live count-pill markup and source-level candidates in Talk, Wallguard, FluxCell, Spotify, and Progress; functional controls/state remain exceptions.","title":"A3 MINI gallery and Spec chip-metadata rule","provenance":"Current thread screenshots, A3 live/local screenshots, AO Labs source scan, live route checks, commits a3 5f49b32 and spec 2963c4b.","commit":"a3 5f49b32; spec 2963c4b","snapshotId":"","createdAt":"2026-06-24T22:10:40.694341+00:00"}},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T16:07:33.013139+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T16:07:33.529Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":{"complaint":"Alan asked to improve Imagineer into the career/money/car app instead of leaving the answer as strategy.","issue":"The public home page, ops API, PDF, fallback route, and A3-linked car state all needed one attached work record so Progress would not show source changes without the reason.","changed":"Manual Progress scan 0c5505a32c626b3e changed imagineer_home, imagineer_ops, imagineer_paper, a3_health, a3_queue_snapshot, and progress_summary after the deploy and event write.","codexChange":"Verified the custom-domain route, fallback route, ops API life_loop, paper.pdf, direct PDF route, desktop/mobile renders, and wrote the work event tying the change to the request.","specNote":"No new Spec clause; this implements the existing life-relief/current-step/Progress-ledger rules.","title":"Imagineer life loop public surfaces verified","provenance":"Progress manual scan 0c5505a32c626b3e, live rendered screenshots, live API, PDF text extraction, commits e6648f9 and 11fb43d.","commit":"imagineer-app:e6648f9; aolabs-site:11fb43d","snapshotId":"","createdAt":"2026-06-25T04:28:34.856585+00:00"}},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T16:07:33.542890+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T16:07:33.840470+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T16:07:33.944723+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T16:07:34.105698+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:34.209448+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T16:07:34.322401+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T16:07:34.452534+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T16:07:34.555632+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan asked for a Lily weight input that records the entered weight and the time it was entered.","issue":"Lily had notes photos and chat memory, but no structured weight history, so each new weight would have been another loose note instead of a timestamped record and chart.","changed":"lily.aolabs.io now serves app.js styles.css and index.html with the weight panel code; lily-api Railway deployment 51dd8dc4 exposes /api/weights; read-only production endpoint check returned status 200 and an empty weights array before any production entries were written.","codexChange":"Added authenticated weight list create delete API routes backed by the same persistent store, added a private weight panel with lb input, SVG weight over time chart, latest saved state, and dated rows, and cache busted the deployed frontend.","specNote":"Uses existing Human-Outcome Verification, Personal Media Wall Integrity, Deployment, and Progress Prompt Ledger rules; no new Spec clause needed.","title":"Lily weight tracking added","provenance":"Current Codex thread on 2026-06-25; local API form browser verification; live curl checks; commits d826349 and 6808842; Railway deployment 51dd8dc4.","commit":"d826349 / 6808842","snapshotId":"","createdAt":"2026-06-25T05:03:59.152920+00:00"}},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T16:07:34.742111+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T16:07:34.866695+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T16:07:35.004577+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T16:07:35.140433+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T16:07:35.288437+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T16:07:35.442250+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]},"previous":{"id":"f603e6a8983c30e3","createdAt":"2026-06-25T15:49:00.832402+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","spec_summary","spec_paper","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T15:48:14.485092+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T15:48:14.609444+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T15:48:14.739190+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T15:48:14.881649+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T15:48:14.980415+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T15:48:15.090558+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T15:48:15.200196+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T15:48:15.230794+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T15:48:15.335679+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T15:48:15.461429+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T15:48:15.556973+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T15:48:15.664708+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"}},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T15:48:15.741064+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":{"complaint":"Alan pointed out that the previews and PDFs still showed line-broken generated-note output after the first highlight-wrap fix.","issue":"The first fix corrected new wrapping logic, but existing synced generated PDFs and preview PNGs were already stored, so old note files could keep the previous renderer forever. The app also did not store a layout version or source text for future rebuilds.","changed":"Brain now stores source text and a generated-note layout version, exposes a sync rebuild endpoint, and automatically rebuilds outdated synced generated PDFs and preview PNGs in place. All 21 generated note PDFs now report the new continuous-paragraph layout version.","codexChange":"Added generatedNoteLayoutVersion metadata, sourceText persistence, /api/files/:id/rebuild, and a frontend migration pass; pushed standalone and hub copies; deployed Railway; verified the newest live PDF render and preview PNG.","specNote":"","title":"Brain generated note PDFs and previews rebuilt","provenance":"Current thread screenshot; live sync API verification on 2026-06-24 1:56 PM EDT; commits cda2ae6 and 4fefae5; Railway deployment 7a04aa49-e21c-4772-a081-acadbb02b9dc.","commit":"cda2ae6 / 4fefae5","snapshotId":"","createdAt":"2026-06-24T19:51:24.756252+00:00"}},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T15:48:15.765119+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T15:48:15.858546+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T15:48:15.949Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T15:48:15.961306+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T15:48:15.987538+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T15:48:16.095039+00:00","ok":true,"statusCode":200,"bytes":982969,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T15:08:01.949585+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":982},"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:18.845335+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T15:48:18.881889+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T15:48:25.413452+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T15:48:25.580829+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T15:48:25.695126+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T15:48:25.808589+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T15:48:25.885143+00:00","ok":true,"statusCode":200,"bytes":15219,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":110,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:25.978538+00:00","ok":true,"statusCode":200,"bytes":262864,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T15:48:26.040499+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:26.432306+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T15:48:26.437353+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"}},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T15:48:26.605442+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"}},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T15:48:26.639494+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T15:48:26.714187+00:00","ok":true,"statusCode":200,"bytes":4908,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T15:48:26.796375+00:00","ok":true,"statusCode":200,"bytes":22550,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:27.507849+00:00","ok":true,"statusCode":200,"bytes":225430,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T15:48:27.573025+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T15:48:27.672488+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T15:48:34.962537+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T15:48:42.002468+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T15:48:49.192599+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T15:48:56.301620+00:00","ok":true,"statusCode":200,"bytes":934693,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:56.778860+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T15:48:56.842395+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T15:48:56.997355+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T15:48:57.093436+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:57.124462+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T15:48:57.258441+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T15:48:57.335619+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T15:48:57.398086+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T15:48:57.443818+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:57.525497+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T15:48:57.614443+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T15:48:57.807065+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan rejected the MINI attribute bubble/chip text boxes, then rejected the scarred replacement layout because it left a weird oversized blank band and too much dead space.","issue":"A3 treated static MINI metadata as decorative rounded chips and then stranded the surviving build facts in a wide empty text strip after the chips were removed.","changed":"A3 now serves a six-image MINI gallery with a compact over-image product bar, no feature-pills, flattened tier labels, and verified 200 image assets. Spec now serves the no decorative text-chip metadata and compact reflow rule, with revision PDF and paper PDF live.","codexChange":"Replaced weak MINI image set, removed static attribute chips, reflowed build facts into a compact overlay, flattened A3 tier markers, added AGENTS/Spec rule requiring chip removal plus compact reflow and desktop/mobile verification, rebuilt Spec paper PDF, deployed A3 and Spec.","specNote":"New Spec revision: 2026-06-24-no-decorative-text-chip-metadata-contract-7e8908475b. Sibling scan found Curtis live count-pill markup and source-level candidates in Talk, Wallguard, FluxCell, Spotify, and Progress; functional controls/state remain exceptions.","title":"A3 MINI gallery and Spec chip-metadata rule","provenance":"Current thread screenshots, A3 live/local screenshots, AO Labs source scan, live route checks, commits a3 5f49b32 and spec 2963c4b.","commit":"a3 5f49b32; spec 2963c4b","snapshotId":"","createdAt":"2026-06-24T22:10:40.694341+00:00"}},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T15:48:57.914060+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T15:48:58.429Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":{"complaint":"Alan asked to improve Imagineer into the career/money/car app instead of leaving the answer as strategy.","issue":"The public home page, ops API, PDF, fallback route, and A3-linked car state all needed one attached work record so Progress would not show source changes without the reason.","changed":"Manual Progress scan 0c5505a32c626b3e changed imagineer_home, imagineer_ops, imagineer_paper, a3_health, a3_queue_snapshot, and progress_summary after the deploy and event write.","codexChange":"Verified the custom-domain route, fallback route, ops API life_loop, paper.pdf, direct PDF route, desktop/mobile renders, and wrote the work event tying the change to the request.","specNote":"No new Spec clause; this implements the existing life-relief/current-step/Progress-ledger rules.","title":"Imagineer life loop public surfaces verified","provenance":"Progress manual scan 0c5505a32c626b3e, live rendered screenshots, live API, PDF text extraction, commits e6648f9 and 11fb43d.","commit":"imagineer-app:e6648f9; aolabs-site:11fb43d","snapshotId":"","createdAt":"2026-06-25T04:28:34.856585+00:00"}},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T15:48:58.442246+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"}},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T15:48:58.731000+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T15:48:58.836486+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T15:48:58.988309+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:59.111984+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T15:48:59.222375+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T15:48:59.333106+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T15:48:59.479310+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":{"complaint":"Alan asked for a Lily weight input that records the entered weight and the time it was entered.","issue":"Lily had notes photos and chat memory, but no structured weight history, so each new weight would have been another loose note instead of a timestamped record and chart.","changed":"lily.aolabs.io now serves app.js styles.css and index.html with the weight panel code; lily-api Railway deployment 51dd8dc4 exposes /api/weights; read-only production endpoint check returned status 200 and an empty weights array before any production entries were written.","codexChange":"Added authenticated weight list create delete API routes backed by the same persistent store, added a private weight panel with lb input, SVG weight over time chart, latest saved state, and dated rows, and cache busted the deployed frontend.","specNote":"Uses existing Human-Outcome Verification, Personal Media Wall Integrity, Deployment, and Progress Prompt Ledger rules; no new Spec clause needed.","title":"Lily weight tracking added","provenance":"Current Codex thread on 2026-06-25; local API form browser verification; live curl checks; commits d826349 and 6808842; Railway deployment 51dd8dc4.","commit":"d826349 / 6808842","snapshotId":"","createdAt":"2026-06-25T05:03:59.152920+00:00"}},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T15:48:59.623925+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T15:48:59.752645+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T15:48:59.886695+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T15:49:00.024161+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T15:49:00.214897+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T15:49:00.366812+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]},"issueNotes":{"brain_home":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"},"brain_app_bundle":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"},"brain_custom_domain":{"complaint":"Alan pointed out that the previews and PDFs still showed line-broken generated-note output after the first highlight-wrap fix.","issue":"The first fix corrected new wrapping logic, but existing synced generated PDFs and preview PNGs were already stored, so old note files could keep the previous renderer forever. The app also did not store a layout version or source text for future rebuilds.","changed":"Brain now stores source text and a generated-note layout version, exposes a sync rebuild endpoint, and automatically rebuilds outdated synced generated PDFs and preview PNGs in place. All 21 generated note PDFs now report the new continuous-paragraph layout version.","codexChange":"Added generatedNoteLayoutVersion metadata, sourceText persistence, /api/files/:id/rebuild, and a frontend migration pass; pushed standalone and hub copies; deployed Railway; verified the newest live PDF render and preview PNG.","specNote":"","title":"Brain generated note PDFs and previews rebuilt","provenance":"Current thread screenshot; live sync API verification on 2026-06-24 1:56 PM EDT; commits cda2ae6 and 4fefae5; Railway deployment 7a04aa49-e21c-4772-a081-acadbb02b9dc.","commit":"cda2ae6 / 4fefae5","snapshotId":"","createdAt":"2026-06-24T19:51:24.756252+00:00"},"spec_summary":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"spec_home":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"spec_paper":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"progress_summary":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"},"wavevis_home":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"},"wavevis_custom_domain":{"complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codexChange":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","specNote":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","snapshotId":"","createdAt":"2026-06-25T15:06:50.132253+00:00"},"a3_home":{"complaint":"Alan rejected the MINI attribute bubble/chip text boxes, then rejected the scarred replacement layout because it left a weird oversized blank band and too much dead space.","issue":"A3 treated static MINI metadata as decorative rounded chips and then stranded the surviving build facts in a wide empty text strip after the chips were removed.","changed":"A3 now serves a six-image MINI gallery with a compact over-image product bar, no feature-pills, flattened tier labels, and verified 200 image assets. Spec now serves the no decorative text-chip metadata and compact reflow rule, with revision PDF and paper PDF live.","codexChange":"Replaced weak MINI image set, removed static attribute chips, reflowed build facts into a compact overlay, flattened A3 tier markers, added AGENTS/Spec rule requiring chip removal plus compact reflow and desktop/mobile verification, rebuilt Spec paper PDF, deployed A3 and Spec.","specNote":"New Spec revision: 2026-06-24-no-decorative-text-chip-metadata-contract-7e8908475b. Sibling scan found Curtis live count-pill markup and source-level candidates in Talk, Wallguard, FluxCell, Spotify, and Progress; functional controls/state remain exceptions.","title":"A3 MINI gallery and Spec chip-metadata rule","provenance":"Current thread screenshots, A3 live/local screenshots, AO Labs source scan, live route checks, commits a3 5f49b32 and spec 2963c4b.","commit":"a3 5f49b32; spec 2963c4b","snapshotId":"","createdAt":"2026-06-24T22:10:40.694341+00:00"},"a3_health":{"complaint":"Alan asked to improve Imagineer into the career/money/car app instead of leaving the answer as strategy.","issue":"The public home page, ops API, PDF, fallback route, and A3-linked car state all needed one attached work record so Progress would not show source changes without the reason.","changed":"Manual Progress scan 0c5505a32c626b3e changed imagineer_home, imagineer_ops, imagineer_paper, a3_health, a3_queue_snapshot, and progress_summary after the deploy and event write.","codexChange":"Verified the custom-domain route, fallback route, ops API life_loop, paper.pdf, direct PDF route, desktop/mobile renders, and wrote the work event tying the change to the request.","specNote":"No new Spec clause; this implements the existing life-relief/current-step/Progress-ledger rules.","title":"Imagineer life loop public surfaces verified","provenance":"Progress manual scan 0c5505a32c626b3e, live rendered screenshots, live API, PDF text extraction, commits e6648f9 and 11fb43d.","commit":"imagineer-app:e6648f9; aolabs-site:11fb43d","snapshotId":"","createdAt":"2026-06-25T04:28:34.856585+00:00"},"a3_queue_snapshot":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"},"brain_api":{"complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codexChange":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","specNote":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","commit":"2730935 / cbe60d7","snapshotId":"","createdAt":"2026-06-25T03:25:03.357842+00:00"},"cv_pdf":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"},"imagineer_ops":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"imagineer_home":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"imagineer_paper":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"},"lily_home":{"complaint":"Alan asked for a Lily weight input that records the entered weight and the time it was entered.","issue":"Lily had notes photos and chat memory, but no structured weight history, so each new weight would have been another loose note instead of a timestamped record and chart.","changed":"lily.aolabs.io now serves app.js styles.css and index.html with the weight panel code; lily-api Railway deployment 51dd8dc4 exposes /api/weights; read-only production endpoint check returned status 200 and an empty weights array before any production entries were written.","codexChange":"Added authenticated weight list create delete API routes backed by the same persistent store, added a private weight panel with lb input, SVG weight over time chart, latest saved state, and dated rows, and cache busted the deployed frontend.","specNote":"Uses existing Human-Outcome Verification, Personal Media Wall Integrity, Deployment, and Progress Prompt Ledger rules; no new Spec clause needed.","title":"Lily weight tracking added","provenance":"Current Codex thread on 2026-06-25; local API form browser verification; live curl checks; commits d826349 and 6808842; Railway deployment 51dd8dc4.","commit":"d826349 / 6808842","snapshotId":"","createdAt":"2026-06-25T05:03:59.152920+00:00"},"phd_home":{"complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codexChange":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","specNote":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","commit":"8d32056 / 227f276","snapshotId":"","createdAt":"2026-06-25T06:38:07.775183+00:00"},"aolabs_home":{"complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codexChange":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","specNote":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","commit":"f06d852/1d7a08c/f3e2cc2","snapshotId":"","createdAt":"2026-06-25T16:06:11.257498+00:00"}},"goals":{"imagineer":{"label":"Imagineer state","score":74,"confidence":"credible_but_needs_signal","bottleneck":"Principal signal","bottleneckScore":56,"reviewScore":74,"reviewCount":15,"evidence":{"aiReviews":15,"dailyCycles":1,"journalEntries":33,"portfolioItems":4},"status":"building_position_machine_v1","nextStep":{"title":"Make the FluxCell linkage test.","body":"Capture the note and files in PhD.","why":"","time":"7 minutes","href":"https://phd.aolabs.io/","updatedAt":"2026-06-25T16:07:35.576301+00:00","source":"Principal signal 56/100. Decision score 93/100.","decisionScore":93,"basis":{"currentConstraint":"Principal signal","phdDoc":{"ok":true,"checkedAt":"2026-06-25T16:06:51.769171+00:00","statusCode":200,"url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","title":"PhD Organization","bytes":1519143,"textChars":1513586,"error":null},"youtube":{"ok":true,"checkedAt":"2026-06-25T16:07:31.419764+00:00","statusCode":200,"url":"https://www.youtube.com/@nalalan","title":"","bytes":932220,"textChars":null,"error":null}}}},"curtis":{"label":"Curtis state","status":"inventory_ready","inventoryCount":269,"reviewStatus":null,"sectionCount":null,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone"},"relay":{"label":"Relay state","status":"healthy","pageViews":null,"leads":[],"payments":null,"checkoutClicks":null}},"sourceDocuments":{"phdOrganization":{"ok":true,"checkedAt":"2026-06-25T16:06:51.769171+00:00","statusCode":200,"url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","title":"PhD Organization","bytes":1519143,"textChars":1513586,"error":null,"textPreview":"PhD Organization Goal/Remember Create magical shit: “How did they do it? Only Disney could do it” \"Entertainment should be one of the most important robotics applications\" \" “Shape changing robotic materials” * Academic Plan * Qualifying exams done! I am a candidate! * Proposal next * Fellowships and internships relevant to interests and career goals * Keep doing research! You will do cool things! * Research applications * Shape display * LOG Dates Notes 17-Apr 23-Apr * At NLS still, connection invite to Disney Res","privateSource":true,"publicText":false,"storage":"server_side_scan_source"},"youtube":{"ok":true,"checkedAt":"2026-06-25T16:07:31.419764+00:00","statusCode":200,"url":"https://www.youtube.com/@nalalan","title":"","bytes":932220,"textChars":null,"error":null}},"capture":{"state":"needs_issue_notes","label":"changed rows need notes","latestWork":{"title":"Imagineer source-state surface removed","kind":"change_issue","lane":"ao_labs","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"missing":[]},"workEventCount":73,"completeWorkEventCount":73,"incompleteWorkEventCount":0,"incompleteWorkEvents":[],"changedSourceCount":9,"unnotedChangedSourceIds":["sleep_api","curtis_ops","youtube_nalalan"],"unnotedChangedSourceCount":3,"requiredFields":["source_ids","complaint","issue","codex_change","changed","provenance"],"boundary":"Progress verifies source scans and written work events. It does not automatically ingest every active Codex thread unless Codex writes an event or performs a thread harvest."},"patterns":{"state":"needs_notes","label":"patterns need notes","windowEventCount":73,"familyCount":6,"strongest":[{"id":"public_closure","label":"public closure","count":73,"latestAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["a3_health","a3_home","a3_queue_snapshot","aolabs_home","brain_api","brain_app_bundle","brain_custom_domain","brain_home","cv_pdf","imagineer_home","imagineer_ops","imagineer_paper","lily_home","phd_home","phd_organization_doc","progress_summary","spec_home","spec_paper","spec_summary","wavevis_custom_domain","wavevis_fallback","wavevis_home"],"examples":[{"title":"Imagineer source-state surface removed","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records."},{"title":"Imagineer process-routing fallback verified","createdAt":"2026-06-25T15:47:55.379852+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live."}],"signal":"deploy, deployed, live","action":"Verify the public route, API, PDF, and fallback boundary before treating the work as done."},{"id":"spec_paper_sync","label":"Spec and paper sync","count":72,"latestAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["a3_health","a3_home","a3_queue_snapshot","aolabs_home","brain_api","brain_app_bundle","brain_custom_domain","brain_home","cv_pdf","imagineer_home","imagineer_ops","imagineer_paper","lily_home","phd_home","phd_organization_doc","progress_summary","spec_home","spec_paper","spec_summary","wavevis_custom_domain","wavevis_fallback","wavevis_home"],"examples":[{"title":"Imagineer source-state surface removed","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records."},{"title":"Imagineer process-routing fallback verified","createdAt":"2026-06-25T15:47:55.379852+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live."}],"signal":"spec, paper, pdf","action":"Sync the instruction record, paper state, and live verification in the same work cycle."},{"id":"source_evidence","label":"source evidence","count":54,"latestAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["a3_health","a3_home","a3_queue_snapshot","aolabs_home","brain_api","brain_app_bundle","brain_custom_domain","brain_home","cv_pdf","imagineer_home","imagineer_ops","imagineer_paper","phd_home","phd_organization_doc","progress_summary","spec_home","spec_paper","spec_summary","wavevis_custom_domain","wavevis_fallback","wavevis_home"],"examples":[{"title":"Imagineer source-state surface removed","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records."},{"title":"Imagineer process-routing fallback verified","createdAt":"2026-06-25T15:47:55.379852+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live."}],"signal":"verified","action":"Keep the current source, evidence basis, and freshness state reachable near the claim."},{"id":"interface_shape","label":"interface shape","count":52,"latestAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["a3_health","a3_home","a3_queue_snapshot","aolabs_home","brain_api","brain_app_bundle","brain_custom_domain","brain_home","cv_pdf","imagineer_home","imagineer_ops","imagineer_paper","lily_home","phd_home","phd_organization_doc","progress_summary","spec_home","spec_paper","spec_summary","wavevis_custom_domain","wavevis_home"],"examples":[{"title":"Imagineer source-state surface removed","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records."},{"title":"WaveVis after167 reference-surface checkpoint","createdAt":"2026-06-25T15:06:50.132253+00:00","sourceIds":["wavevis_home","wavevis_custom_domain"],"issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like."}],"signal":"mobile, desktop, row","action":"Preserve the approved surface shape and verify rendered desktop and mobile output."},{"id":"capture_gaps","label":"capture gaps","count":34,"latestAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["a3_health","a3_home","a3_queue_snapshot","aolabs_home","brain_api","brain_app_bundle","brain_custom_domain","brain_home","cv_pdf","imagineer_home","imagineer_ops","imagineer_paper","lily_home","phd_home","phd_organization_doc","progress_summary","spec_home","spec_paper","spec_summary","wavevis_custom_domain","wavevis_home"],"examples":[{"title":"Imagineer source-state surface removed","createdAt":"2026-06-25T16:06:11.257498+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records."},{"title":"Imagineer process-routing fallback verified","createdAt":"2026-06-25T15:47:55.379852+00:00","sourceIds":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live."}],"signal":"progress","action":"Keep complaint, issue, Codex change, observed source movement, source ids, and provenance attached."}],"repeatedSources":[{"sourceId":"wavevis_custom_domain","count":43,"latestAt":"2026-06-25T15:06:50.132253+00:00","examples":["WaveVis after167 reference-surface checkpoint","WaveVis top-footprint after163 checkpoint"]},{"sourceId":"wavevis_home","count":42,"latestAt":"2026-06-25T15:06:50.132253+00:00","examples":["WaveVis after167 reference-surface checkpoint","WaveVis top-footprint after163 checkpoint"]},{"sourceId":"imagineer_ops","count":10,"latestAt":"2026-06-25T16:06:11.257498+00:00","examples":["Imagineer source-state surface removed","Imagineer process-routing fallback verified"]},{"sourceId":"spec_summary","count":10,"latestAt":"2026-06-25T16:06:11.257498+00:00","examples":["Imagineer source-state surface removed","Imagineer process-routing fallback verified"]},{"sourceId":"spec_paper","count":10,"latestAt":"2026-06-25T16:06:11.257498+00:00","examples":["Imagineer source-state surface removed","Imagineer process-routing fallback verified"]},{"sourceId":"brain_home","count":10,"latestAt":"2026-06-25T03:25:03.357842+00:00","examples":["Brain quote and trait-score quality gates tightened","Brain generated note PDFs and previews rebuilt"]},{"sourceId":"brain_app_bundle","count":10,"latestAt":"2026-06-25T03:25:03.357842+00:00","examples":["Brain quote and trait-score quality gates tightened","Brain generated note PDFs and previews rebuilt"]},{"sourceId":"imagineer_paper","count":9,"latestAt":"2026-06-25T16:06:11.257498+00:00","examples":["Imagineer source-state surface removed","Imagineer process-routing fallback verified"]}],"currentChangedSourceIds":["sleep_api","progress_summary","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"unnotedChangedSourceIds":["sleep_api","curtis_ops","youtube_nalalan"],"boundary":"Pattern recognition uses structured Progress events and current scan gaps. It does not automatically read private active Codex chats unless Codex harvests them into an event."},"events":[{"body":"","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codex_change":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","commit":"f06d852/1d7a08c/f3e2cc2","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T16:06:11.257498+00:00","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"spec_note":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","url":""},{"body":"Custom and fallback Imagineer routes both remove the process-routing banner.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live.","codex_change":"Deployed Imagineer Railway, Spec Railway, and AO Labs Pages fallback; verified custom HTML/app/API/PDF, fallback HTML, Spec summary/revisions/revision-PDF/paper-source/paper-PDF, and Progress event capture.","commit":"0040135/f3e2cc2/023986c","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T15:47:55.379852+00:00","issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits imagineer 0040135, spec f3e2cc2, aolabs-site 023986c; Railway deploys de1bfb84 and 5b43f09a; GitHub Pages run 28182097359","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"spec_note":"Internal process notes now belong in durable records or diagnostics unless Alan needs to act on them immediately.","title":"Imagineer process-routing fallback verified","url":"https://aolabs.io/imagineer/"},{"body":"Process-routing note moved out of the visible Imagineer surface and into Spec/Progress/paper records.","changed":"imagineer.aolabs.io now uses Source state wording with no PhD intake banner; API emits compact source state; Spec revision 2026-06-25-internal-process-message-routing-contract is live; fallback source is pushed and Pages publish is in progress.","codex_change":"Removed visible process-routing copy from Imagineer custom app and AO Labs fallback source, updated backend strings, regenerated Imagineer paper PDF, added Internal Process Message Routing Rule to AGENTS and Spec seed, updated/compiled Spec paper, deployed Imagineer and Spec.","commit":"0040135/f3e2cc2/023986c","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T15:46:26.461638+00:00","issue":"Visible Imagineer surface was making Alan read Codex/source-routing plumbing instead of only current state or action.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits imagineer 0040135, spec f3e2cc2, aolabs-site 023986c; Railway deploys de1bfb84 and 5b43f09a","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"spec_note":"New Spec rule routes Codex-continuity/source-routing/sync/capture/deployment/audit notes to durable records or diagnostics unless Alan must act now.","title":"Imagineer process-routing banner removed","url":"https://imagineer.aolabs.io/"},{"body":"","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codex_change":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","created_at":"2026-06-25T15:06:50.132253+00:00","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","kind":"codex_change","lane":"ao_labs","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","url":"https://aolabs.io/wavevis/"},{"body":"After163 keeps the readable source-profile curl and mechanism overlays while softening the Top-view terminal footprint against the June 24 smooth breaking-wave references.","changed":"WaveVis source commit 75c3ef4 and fallback commit 68ecae4 are live. The fallback route serves index-CPqEvwZs.js and the rebuilt 6,834,682 byte architecture PDF; exact June 24 reference match remains open.","codex_change":"Softened the Top-view terminal plan pinch, slightly lightened the 3D guide/throat traces, regenerated current live figures, rebuilt the architecture PDF, deployed WaveVis, mirrored the bundle/PDF to aolabs.io/wavevis, and backfilled this event as a Progress work record.","commit":"wavevis:75c3ef4;fallback:68ecae4","complaint":"Alan told Codex to keep working on the WaveVis sim against the June 24 smooth gridded breaking-wave references and not stop before the deployed artifact improved.","created_at":"2026-06-25T13:57:37.833170+00:00","issue":"The after160 render preserved the curl/throat but the Top view still ended in a harder triangular terminal pinch than the supplied top-view sequence, and Progress treated the after163 post as a note rather than current work.","kind":"codex_change","lane":"ao_labs","provenance":"Local/live after163 screenshots, geometry check, npm build, PDF compile/render pages 12-15, gh-pages deploy 09d0316, fallback Pages run 28174870069.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis top-footprint after163 checkpoint","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"WaveVis source commit 75c3ef4 and fallback commit 68ecae4 are live on the AO Labs fallback route. The live fallback serves index-CPqEvwZs.js, the rebuilt 6,834,682 byte architecture PDF, current after163 side/isometric/front/top figures, and URL-gated cells/connectors overlays.","codex_change":"Kept the source-profile readable surface and mechanism overlay, slightly reduced 3D guide/throat trace opacity, softened the Top view terminal plan pinch, regenerated current live figures, rebuilt the architecture PDF, deployed WaveVis, and mirrored the new bundle/PDF to aolabs.io/wavevis.","commit":"wavevis:75c3ef4;fallback:68ecae4","complaint":"Alan told Codex to keep working on the WaveVis sim against the June 24 smooth gridded breaking-wave references and not stop before the deployed artifact improved.","created_at":"2026-06-25T13:52:25.803590+00:00","issue":"The after160 render was deployed and preserved the curl/throat, but the top view still ended in a harder triangular terminal pinch than the supplied top-view reference sequence, and the paper/source record still named after160.","kind":"note","lane":"ao_labs","provenance":"Local screenshots: _verification/live-sim/wavevis-local-*-after163-*.png. Live fallback screenshots: _verification/live-sim/wavevis-live-fallback-*-after163-68ecae4-*.png. Checks: npm run check:geometry, npm run build, pdflatex/biber/pdflatex/pdflatex, rendered PDF pages 12-15, Pages run 28174870069 success.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis top-footprint after163 checkpoint","url":"https://aolabs.io/wavevis/"},{"body":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until stopped.","changed":"Observed source and public routes changed: wavevis.aolabs.io commit c5c1506, aolabs.io/wavevis fallback commit 67fb958, live fallback HTML now serves index-CugxmtXZ.js and the rebuilt 6743501 byte architecture PDF; live screenshots saved for 3D, Side, Front, Top, mobile, and mechanism overlays.","codex_change":"Changed WaveVis to use the richer source curl profile for the readable surface, narrowed the lateral envelope, tightened crest/terminal lift, lowered the 3D camera to expose the throat, added an isolated 3D throat trace, regenerated proof figures, and updated the architecture paper/PDF with bounded after160 claims.","commit":"wavevis:c5c1506;fallback:67fb958","complaint":"Alan rejected stopping on a still-mismatched WaveVis simulation and wanted the reference images treated as target truth instead of accepting barrel/tunnel-like near matches.","created_at":"2026-06-25T13:28:58.485957+00:00","issue":"Issue being solved: the readable WaveVis surface needed a closer smooth breaking-wave curl while preserving cells, connectors, side/front/top separation, mechanism URL gates, fallback parity, and honest open exact-match wording.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis thread; local handoff _verification/2026-06-24-wavevis-handoff.md; commits c5c1506 and 67fb958; npm run check:geometry; live curl and browser screenshots on June 25, 2026.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Mechanism Integrity, and Human-Outcome Verification rules covered this failure mode; no new Spec rule was needed in this pass.","title":"WaveVis source-profile readable surface","url":"https://aolabs.io/wavevis/?tab=inverse&view=isometric&nocache=67fb958-2"},{"body":"","changed":"aolabs.io/wavevis now serves the after139 bundle index-CWVhlxYJ.js and the 7017713-byte architecture PDF. Live fallback desktop/mobile screenshots show coherent Side, 3D, Front, and Top surface states with surface on and cells/connectors off; mechanism-only URLs still expose cells/connectors. The 3D render remains too barrel-like and mechanism overlay remains jagged versus the June 24 target.","codex_change":"Backfilled the after139 WaveVis deploy note to the current Progress snapshot after the fresh scan changed the snapshot id.","commit":"2c35197;4634a9a","complaint":"Alan told Codex to keep working on WaveVis from the June 24 smooth breaking-wave references and not stop at partial or stale simulator state.","created_at":"2026-06-25T12:36:11.302605+00:00","issue":"The fresh Progress scan saw wavevis_home changed after the after139 deploy. The changed row needs the current checkpoint attached: public fallback is updated, standalone HTTPS remains certificate-blocked, and exact visual match is still open.","kind":"source_issue","lane":"ao_labs","provenance":"Progress scan 39d308560671616f; WaveVis commit 2c35197; AO Labs fallback commit 4634a9a; live fallback screenshots and curl checks on 2026-06-25.","snapshot_id":"39d308560671616f","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after139 live changed-row note","url":"https://aolabs.io/wavevis/?v=4634a9a"},{"body":"","changed":"WaveVis after139 lowers and lengthens the smooth gridded surface proportions, adds Side/3D depth-write cleanup, localized crest and terminal lift, and a center-throat trace. Fallback now serves index-CWVhlxYJ.js and the 7017713-byte architecture PDF. Exact reference match remains open because the live 3D view still reads too barrel-like and the mechanism overlay remains jagged.","codex_change":"Patched LatticeViewer3D and the geometry contract, regenerated proof screenshots and architecture PDF, built, committed, pushed, deployed standalone gh-pages, mirrored the fallback to aolabs.io/wavevis, and captured live desktop/mobile surface and mechanism screenshots.","commit":"2c35197;4634a9a","complaint":"Alan told Codex to keep working on WaveVis from the June 24 smooth breaking-wave references and not stop at partial or stale simulator state.","created_at":"2026-06-25T12:34:26.751667+00:00","issue":"The after130 render was readable but still too barrel-like; the public fallback needed the next verified checkpoint with paper honesty and mechanism toggles preserved.","kind":"source_issue","lane":"ao_labs","provenance":"WaveVis commit 2c35197; AO Labs fallback commit 4634a9a; live fallback screenshots under _verification/live-sim; curl asset/PDF checks on 2026-06-25.","snapshot_id":"aeb1675898be53ef","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after139 readable-proportion checkpoint deployed","url":"https://aolabs.io/wavevis/?v=4634a9a"},{"body":"","changed":"Fallback route serves after130 asset index-B6aeCijC.js and the 7046545-byte architecture PDF; standalone HTTP serves the same app; standalone HTTPS remains blocked by certificate principal mismatch.","codex_change":"Backfilled the after130 WaveVis deploy note to the current Progress snapshot after the fresh scan changed the snapshot id.","commit":"879bf97;89a9d49","complaint":"Alan asked Codex to keep working on WaveVis from the June 24 smooth breaking-wave target and not stop at stale or partial simulator work.","created_at":"2026-06-25T12:01:07.258505+00:00","issue":"Current Progress scan needs the latest WaveVis checkpoint attached to the changed rows: the live fallback is updated and readable, but the human-facing reference match remains open because the isometric render still reads too barrel-like.","kind":"source_issue","lane":"ao_labs","provenance":"Progress scan aeb1675898be53ef; WaveVis commit 879bf97; AO Labs fallback commit 89a9d49; live fallback screenshot verification.","snapshot_id":"aeb1675898be53ef","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after130 live changed-row note","url":"https://aolabs.io/wavevis/?v=89a9d49"},{"body":"","changed":"WaveVis commit 879bf97 and AO Labs fallback commit 89a9d49 now serve asset index-B6aeCijC.js and architecture PDF size 7046545 bytes on the fallback route. Standalone HTTP is live; standalone HTTPS still fails certificate principal verification.","codex_change":"Updated the WaveVis readable surface/wire contract, preserved the side/isometric/front/top views, rebuilt proof figures, revised the architecture PDF to mark the exact-match boundary open, deployed standalone HTTP and mirrored the fallback route.","commit":"879bf97;89a9d49","complaint":"Alan told Codex to keep working on the WaveVis simulator from the 2026-06-24 smooth breaking-wave references and not stop at a partial or stale render.","created_at":"2026-06-25T11:59:09.232898+00:00","issue":"The prior public and paper state did not carry the latest readable full-sheet checkpoint, and the rendered geometry still needed explicit human-facing honesty: less dark/tunnel undercurl, preserved mechanism path, but still too barrel-like versus the smooth gridded plunging-wave reference.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; _verification/2026-06-24-wavevis-handoff.md; June 24 reference PNGs; npm run check:geometry; npm run build; live fallback screenshots under _verification/live-sim/.","snapshot_id":"310d76bbc33c3783","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after130 readable surface checkpoint deployed","url":"https://aolabs.io/wavevis/?v=89a9d49"},{"body":"","changed":"WaveVis commit 37ecabf and AO Labs fallback commit 61f66d9 now serve bundle index-9YtjKQwW.js; fallback asset returns 200 with 1332078 bytes and the architecture PDF returns 200 with 7008738 bytes. Exact reference match remains open.","codex_change":"Tuned the readable reference profile to a shorter lower lip, localized terminal lift, lightened the side/isometric guide grid, removed failed occluding and throat-window cutout experiments, updated render checks, regenerated current-live figures, rebuilt the architecture PDF, and deployed both standalone WaveVis and the AO Labs fallback.","commit":"37ecabf;61f66d9","complaint":"Alan told Codex to keep working and not stop because WaveVis had been left before the sim matched the June 24 breaking-wave references.","created_at":"2026-06-25T11:11:32.079586+00:00","issue":"The public side and isometric renders still read too much like a barrel or tunnel against the supplied smooth gridded breaking-wave references, while earlier fixes also had to preserve mechanism cells, connector invariants, side/cross-section separation, and fallback parity.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, June 24 reference images, _verification/2026-06-24-wavevis-handoff.md, after112 local and live fallback screenshots, npm run check:geometry, npm run build, PDF render checks, WaveVis commit 37ecabf, fallback commit 61f66d9.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Reference-geometry work must preserve the mechanism and keep exact visual-match claims bounded until the human-facing side/isometric render matches the supplied target.","title":"WaveVis readable curl profile tuned","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"wavevis.aolabs.io over HTTP now serves assets/index-mvchFbUI.js and the 7,095,015-byte architecture PDF; aolabs.io/wavevis serves the same bundle and PDF. HTTPS on wavevis.aolabs.io remains blocked by certificate trust.","codex_change":"Depth-tested the front grid against the readable lip, added a front-only pale lit surface cue, controlled cap contours, rebuilt the architecture PDF and current front figure, deployed the standalone gh-pages bundle, and mirrored the same bundle to the AO Labs fallback route.","commit":"71b9825/b33459b","complaint":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until the simulator moves toward the visible target instead of stopping at a code claim.","created_at":"2026-06-25T09:19:54.238797+00:00","issue":"The previous live front view still read as a center-knot or dimpled mound, and the standalone/fallback split could leave Alan looking at stale WaveVis bundles.","kind":"change_issue","lane":"ao_labs","provenance":"WaveVis commit 71b9825, AO Labs fallback commit b33459b, npm run check:geometry, npm run build, live HTTP/fallback route verification, desktop/mobile screenshots under _verification/live-sim.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, prior-fix preservation, human-outcome verification, continuous paper, deployment, and Progress ledger rules apply; this records an improved front-cap checkpoint with exact reference match still open.","title":"WaveVis front cap rendering tuned","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"WaveVis source commit 5f489ca and fallback commit 726b6a0 now serve index-MU4DAtkJ.js and the rebuilt 7,140,132 byte architecture PDF on standalone HTTP and aolabs.io/wavevis.","codex_change":"Raised the front readable projection, narrowed the lifted cap, broadened the cap height falloff, softened the center-dipping lip and front outline, updated guard fragments, regenerated the front figure and architecture PDF, deployed standalone WaveVis, and mirrored the AO Labs fallback route.","commit":"5f489ca / 726b6a0","complaint":"Alan told Codex to keep working on the WaveVis simulator from the June 24 smooth gridded breaking-wave references and not stop while the front view still missed the target.","created_at":"2026-06-25T08:46:42.546169+00:00","issue":"The softened-grid checkpoint improved line weight, but the front view still read too flat and too broad compared with the rounded front lobe in the June 24 reference.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation on 2026-06-25; user-supplied June 24 reference PNGs; npm run build; npm run check:geometry; rendered architecture PDF page 14; live standalone/fallback curl checks; desktop front/side/top/isometric screenshots; mobile front/side screenshots; HTTPS custom-domain certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis front cap projection tuned","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"WaveVis source commit 4fb789b and fallback commit aafafc1 now serve index-DppofZic.js and the rebuilt 7,100,228 byte architecture PDF on standalone HTTP and aolabs.io/wavevis.","codex_change":"Reduced front wire and outline opacity, increased front readable-wire density, rebuilt the architecture PDF/front figure, deployed standalone WaveVis, and mirrored the AO Labs fallback route.","commit":"4fb789b / aafafc1","complaint":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until the simulator visibly moves toward that target without regressing prior mechanism work.","created_at":"2026-06-25T08:29:44.689715+00:00","issue":"The previous front view had the better rounded-width lip but still read with a few heavy construction lines instead of the pale dense grid language of the reference. Exact June 24 front cap match remains open.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation on 2026-06-25; user-supplied June 24 reference PNGs; npm run build; npm run check:geometry; live standalone/fallback curl checks; desktop front/side/top/isometric screenshots; mobile front/side screenshots; HTTPS custom-domain certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis softened front grid deployed","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"WaveVis commit 1c1fcdb and fallback commit c1d2aec now serve bundle index-Uz2BYMaQ.js and the 7085243-byte architecture PDF on standalone HTTP and aolabs.io/wavevis. Live front screenshots show the rounded-width center-dipping front lip; exact June 24 front-reference match remains open.","codex_change":"Reduced front body and cap pinch, kept terminal lip width rounded, made the lip underside dip through the center on the same continuous surface, tightened the renderer guard for rounded-width front lips, regenerated the front figure and architecture PDF, deployed standalone, and mirrored the fallback route.","commit":"1c1fcdb / c1d2aec","complaint":"Alan said to keep working on the WaveVis sim and not stop while the June 24 reference still was not matched.","created_at":"2026-06-25T08:13:57.440022+00:00","issue":"The continuous-front checkpoint removed the pasted shelf but still pinched the terminal lip too tightly, leaving the front view closer to a ribbed mound than the rounded front-cap cue in the supplied reference.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread 2026-06-25; screenshots wavevis-live-fallback-front-c1d2aec.png and wavevis-live-standalone-front-1c1fcdb.png; npm run build; npm run check:geometry; rendered PDF pages 12-15; live curl route checks.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis rounded-width front lip deployed","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"WaveVis commit 3dece04 and fallback commit e253325 serve bundle index-DcQ9BCi_.js; standalone HTTP and aolabs.io/wavevis fallback return the 7089482-byte architecture PDF. Live screenshots verify side/top/isometric preservation and front shelf removal, but the front cap still remains an open mismatch against the June 24 reference.","codex_change":"Removed the detached front-cap geometry path, kept the front view on the same continuous readable surface with denser terminal contours, updated the guard to forbid the pasted-cap layer, refreshed live figures and the architecture PDF, and deployed the standalone and AO Labs fallback bundles.","commit":"3dece04 / e253325","complaint":"Alan supplied the June 24 breaking-wave references, said to remember them, and told Codex to keep working instead of stopping while the simulator still missed the visible target.","created_at":"2026-06-25T08:00:18.838929+00:00","issue":"The previous front-view repair path risked a pasted raised shelf or tower-like cap while WaveVis still needed a smooth continuous gridded breaking-wave read, preserved mechanism checks, public fallback parity, and honest open-reference status.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread 2026-06-25; local and live screenshots in _verification/live-sim; npm run build; npm run check:geometry; rendered architecture PDF pages 13-16; HTTPS curl certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; no new Spec clause was added in this checkpoint.","title":"WaveVis continuous front contour checkpoint shipped","url":"https://aolabs.io/wavevis/"},{"body":"Imagineer no longer asks Alan to type source material into Imagineer. PhD is the intake; Imagineer reads PhD source state into the career/money/car surface.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codex_change":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","commit":"8d32056 / 227f276","complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","created_at":"2026-06-25T06:38:07.775183+00:00","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","phd_home","progress_summary","cv_pdf","a3_queue_snapshot"],"spec_note":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","url":"https://imagineer.aolabs.io/"},{"body":"","changed":"wavevis_home now serves bundle index-D2SNY_KY.js and the updated 6778446-byte architecture PDF on https://aolabs.io/wavevis/; http://wavevis.aolabs.io/ serves the same bundle/PDF; https://wavevis.aolabs.io/ remains blocked by certificate hostname mismatch.","codex_change":"Added a front-only readable projection with reduced front wire density and faint outline trace; regenerated side, isometric, front, and top evidence figures; updated the architecture PDF to state the front-reference mismatch remains open; preserved geometry invariant checks and deployed standalone plus fallback bundles.","commit":"716f49c / 5bf177d","complaint":"Alan told Codex to keep working on the WaveVis simulation from the June 24 smooth breaking-wave references and not stop until steered; the visible front/readable render still carried a jagged trace and the public routes had to stay current.","created_at":"2026-06-25T06:30:52.402656+00:00","issue":"WaveVis needed another reference-geometry pass that improved the front readable view without undoing the prior side/top readable surface, mechanism checks, paper handoff, or fallback-route parity.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation; user-supplied June 24 reference PNGs; WaveVis commit 716f49c; fallback commit 5bf177d; public route checks 2026-06-25 2:28 AM EDT.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Uses existing WaveVis Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Mechanism Integrity, Deployment, Progress ledger, and Continuous Paper rules; no new Spec rule needed because these rules already cover the failure.","title":"WaveVis front readable reference repair shipped","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"aolabs.io/wavevis now serves index-CHVvBkDE.js and wavevis-system-architecture.pdf at 6,870,346 bytes; HTTP/GitHub Pages standalone serves the same bundle/PDF; HTTPS wavevis.aolabs.io remains certificate-blocked.","codex_change":"Set connectors off by default, added URL display-toggle parsing for surface/flatGrid/cells/connectors, replaced top-view side-mesh reuse with a continuous square-sheet plan projection, regenerated simulator figures/PDF, pushed WaveVis 25e99a6 and fallback 7e95e4a, and verified desktop/mobile fallback renders.","commit":"wavevis:25e99a6; aolabs-site:7e95e4a","complaint":"Alan told Codex to keep working on the simulator and not stop after prior passes still left him carrying reference-shape QA.","created_at":"2026-06-25T05:30:08.090349+00:00","issue":"The default WaveVis view still mixed reference-shape work with connector noise, and the top view alternated between a broad cap, clipped triangular fan, or stale fallback bundle instead of a square reference sheet with localized interior deformation.","kind":"codex_change","lane":"imagineer","provenance":"June 24 reference PNGs, _verification/2026-06-24-wavevis-handoff.md, local after28 screenshots/PDF render, npm run build, npm run check:geometry, live fallback screenshots, GitHub Pages deploy run 28148911574.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"No new Spec rule; existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Deployment, Continuation-Grade Project Record, and Progress Prompt Ledger rules cover this.","title":"WaveVis top reference projection shipped","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"Live Imagineer now serves the proof capture bundle, ops API exposes proof_capture plus events_proofs_lead_checks_and_ai_reviews, paper.pdf is 225714 bytes, fallback aolabs.io/imagineer is synced, and the fresh Disney destination check now marks the tracked lead as mismatch until it matches title/company/location again.","codex_change":"Added a FluxCell proof-capture form with file upload, runtime proof storage, proof serving, newest Disney lead re-check, sanitized reviewer state, current-step anchor, updated paper text/PDF, fallback mirror, and Railway deployment.","commit":"57a81f4 / 7c91995","complaint":"Alan asked why not improve Imagineer into the almighty app and then asked to do all the improvements, meaning the app needed to stop being only a status page and become the concrete career-to-money-to-car execution surface.","created_at":"2026-06-25T05:14:48.248273+00:00","issue":"Imagineer showed the right current step, but Alan still had to translate FluxCell work into proof, reviewer state, lead verification, paper continuity, and Progress memory himself.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread; Imagineer commit 57a81f4; AO Labs fallback commit 7c91995; Railway deploy 2026-06-25 01:12 AM ET.","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","phd_home","cv_pdf"],"spec_note":"Uses existing Human-Outcome Verification, Primary Path And Current Step, Job Lead Destination Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules. No new Spec rule needed.","title":"Imagineer proof capture flow shipped","url":"https://imagineer.aolabs.io/"},{"body":"","changed":"lily.aolabs.io now serves app.js styles.css and index.html with the weight panel code; lily-api Railway deployment 51dd8dc4 exposes /api/weights; read-only production endpoint check returned status 200 and an empty weights array before any production entries were written.","codex_change":"Added authenticated weight list create delete API routes backed by the same persistent store, added a private weight panel with lb input, SVG weight over time chart, latest saved state, and dated rows, and cache busted the deployed frontend.","commit":"d826349 / 6808842","complaint":"Alan asked for a Lily weight input that records the entered weight and the time it was entered.","created_at":"2026-06-25T05:03:59.152920+00:00","issue":"Lily had notes photos and chat memory, but no structured weight history, so each new weight would have been another loose note instead of a timestamped record and chart.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread on 2026-06-25; local API form browser verification; live curl checks; commits d826349 and 6808842; Railway deployment 51dd8dc4.","snapshot_id":"","source_ids":["lily_home"],"spec_note":"Uses existing Human-Outcome Verification, Personal Media Wall Integrity, Deployment, and Progress Prompt Ledger rules; no new Spec clause needed.","title":"Lily weight tracking added","url":"https://lily.aolabs.io"},{"body":"","changed":"Live fallback https://aolabs.io/wavevis/ now serves index-Y5Dpd5Si.js and the 6,987,210-byte architecture PDF; HTTP and GitHub Pages standalone routes are current; https://wavevis.aolabs.io/ remains blocked by certificate hostname mismatch.","codex_change":"Refined readable-surface top framing, wire and outline opacity, terminal lateral pinch, and readable-mode mechanism overlay opacity; regenerated current-live paper figures and the architecture PDF; pushed WaveVis commit b303abb and AO Labs fallback commit 0317df5.","commit":"wavevis:b303abb aolabs-site:0317df5","complaint":"Alan told Codex to keep working on the WaveVis sim and not stop, after the June 24 reference images and earlier near-matches left him carrying the visual QA and continuation burden.","created_at":"2026-06-25T04:45:44.193453+00:00","issue":"WaveVis still needed the latest readable surface framed against the supplied smooth breaking-wave target without regressing mechanism constraints, and the public fallback, PDF, and Progress record had to reflect the same current artifact.","kind":"change_issue","lane":"imagineer","provenance":"Codex WaveVis continuation on June 25, 2026; local after15 side/top/isometric/front captures, npm build, geometry check with zero opposite-pair spread and zero connector gaps, PDF render pages 13-16, curl/PDF live route verification, desktop/mobile fallback screenshots.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Deployment, Progress Prompt Ledger, and Continuation-Grade Project Record rules covered this pass; no new Spec clause was needed.","title":"WaveVis readable surface framing shipped","url":""},{"body":"Backfills the public route and paper source ids for the same Imagineer life-loop deployment.","changed":"Manual Progress scan 0c5505a32c626b3e changed imagineer_home, imagineer_ops, imagineer_paper, a3_health, a3_queue_snapshot, and progress_summary after the deploy and event write.","codex_change":"Verified the custom-domain route, fallback route, ops API life_loop, paper.pdf, direct PDF route, desktop/mobile renders, and wrote the work event tying the change to the request.","commit":"imagineer-app:e6648f9; aolabs-site:11fb43d","complaint":"Alan asked to improve Imagineer into the career/money/car app instead of leaving the answer as strategy.","created_at":"2026-06-25T04:28:34.856585+00:00","issue":"The public home page, ops API, PDF, fallback route, and A3-linked car state all needed one attached work record so Progress would not show source changes without the reason.","kind":"change_issue","lane":"ao_labs","provenance":"Progress manual scan 0c5505a32c626b3e, live rendered screenshots, live API, PDF text extraction, commits e6648f9 and 11fb43d.","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","a3_health","a3_queue_snapshot","progress_summary"],"spec_note":"No new Spec clause; this implements the existing life-relief/current-step/Progress-ledger rules.","title":"Imagineer life loop public surfaces verified","url":"https://imagineer.aolabs.io/"},{"body":"Imagineer now keeps the single current FluxCell step while adding a compact career proof, income path, and car-path readout.","changed":"imagineer.aolabs.io now serves life_loop in /api/imagineer/ops-check; the home page renders the compact loop on desktop and mobile; aolabs.io/imagineer fallback and the Imagineer PDF include the same public revision.","codex_change":"Added A3 queue-snapshot ingestion to Imagineer ops, rendered the four-part life loop under the single current step, synced the fallback route, rebuilt the paper PDF, pushed commits e6648f9 and 11fb43d, and deployed Railway.","commit":"imagineer-app:e6648f9; aolabs-site:11fb43d","complaint":"Alan asked why not improve Imagineer, then approved improving Imagineer into the almighty app for career, money, and the car goal.","created_at":"2026-06-25T04:26:31.937334+00:00","issue":"Imagineer was closest to the career app but did not yet connect the current proof action to the money path and A3 car state in one low-friction surface.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread request on 2026-06-25; live API, live page screenshots, fallback page screenshot, and PDF text verification.","snapshot_id":"","source_ids":["imagineer_ops","a3_queue_snapshot","progress_summary"],"spec_note":"Existing Brain/life-relief and primary-current-step rules covered the reusable behavior; no new Spec rule was required for this app-specific implementation.","title":"Imagineer life loop added","url":"https://imagineer.aolabs.io/"},{"body":"","changed":"Live fallback now serves bundle index-GFLPidoe.js, current-render figures, and wavevis-system-architecture.pdf at 7052107 bytes. Desktop/mobile live screenshots show the smooth gridded side render; geometry check preserved zero connector endpoint gap and full rendered arm counts.","codex_change":"Tuned the readable curl profile, changed the surface mesh density and opacities, subdued connector proof lines only in readable surface mode, fixed top-view readable-surface framing, regenerated current-render paper figures, rebuilt the architecture PDF, deployed WaveVis, and synced the AO Labs fallback.","commit":"f4809f1,e604800","complaint":"Alan told Codex to keep working on the WaveVis sim after the prior handoff stopped at preserving the reference target instead of continuing the visible simulator repair.","created_at":"2026-06-25T04:11:34.539411+00:00","issue":"The readable WaveVis render still carried a dark under-curl connector pile and rounded knot that made the June 24 smooth gridded breaking-wave target read as a tunnel/roll rather than a clean surface mesh.","kind":"change_issue","lane":"ao_labs","provenance":"Codex WaveVis continuation on 2026-06-25; commits f4809f1 and e604800; local handoff 46d1c47 and June 24 reference PNGs used as target truth.","snapshot_id":"25b62fe75e03ab4b","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry and human-outcome rules covered this; no new Spec rule added.","title":"WaveVis readable curl surface shipped","url":""},{"body":"","changed":"Working fallback https://aolabs.io/wavevis/ serves index-B9kU1TEB.js, architecture PDF 6889447 bytes, and both reference PNGs at 1556273 and 1265007 bytes. Preferred https://wavevis.aolabs.io/ still returns curl status 000, so it remains blocked.","codex_change":"Copied both exact reference PNGs into WaveVis proofs, verification targets, and public proof paths; updated and recompiled the architecture TeX/PDF with the new reference figures and captions; rebuilt/published WaveVis; pushed source and the AO Labs fallback; kept simulator geometry unchanged because tuning candidates did not improve the human-facing render.","commit":"987c7e8 b3a9f8d","complaint":"Alan said remember and supplied two smooth white grid breaking-wave reference images after the WaveVis handoff, creating a risk that the visual target would remain chat-only instead of becoming a repo, paper, and public verification record.","created_at":"2026-06-25T03:27:33.185675+00:00","issue":"Issue being solved: WaveVis tuning could drift toward metric-only traces, jagged linkage views, or older tunnel-like silhouettes unless the exact smooth continuous square-sheet reference target is preserved beside the simulator and architecture record.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread on 2026-06-24; _verification/2026-06-24-wavevis-handoff.md; exact reference image files from Downloads; commits 987c7e8 and b3a9f8d; build, geometry, PDF render, and live route verification.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, and prior-fix preservation rules apply; no separate Spec wording change was needed in this cycle.","title":"WaveVis reference target preserved","url":"https://aolabs.io/wavevis/"},{"body":"Alan said the selected ADHD/autism quotes and score explanations still felt random, repeated, and not specific enough. Brain now rejects weak or dangling selected phrases, retries AI analysis instead of silently falling back, expands short model phrases to source-contained wording, blocks duplicate autism/ADHD quote pairs, removes generic explanation templates, and rebuilt every existing generated note under the strict quote-quality version.","changed":"All 22 generated Brain notes now return strict-version AI autism and ADHD metadata with distinct source-contained quotes, no known bad fragments, no fallback labels, no duplicate quote pairs, and no old generic explanation wording on the live page/API.","codex_change":"Added strict server-side quote validation, AI retry behavior, short-phrase source expansion, short-note recovery, duplicate quote rejection, and frontend fallback parity; rebuilt existing note metadata/PDF previews; pushed Brain and hub mirrors and deployed Railway.","commit":"2730935 / cbe60d7","complaint":"Selected quotes sometimes looked like meaningless fragments, ADHD examples repeated weak phrases, and repeated/default-looking scores made the analysis feel untrustworthy.","created_at":"2026-06-25T03:25:03.357842+00:00","issue":"The document bank needed quote selection and score explanations to be source-specific, human-readable, non-duplicated, and AI-backed for both old and new entries; fallback/keyword analysis could not look equivalent to real AI analysis.","kind":"codex_change","lane":"ao_labs","provenance":"Current Brain thread complaints and screenshots; live API audit 2026-06-25; Brain commit 2730935; hub commit cbe60d7; Railway deploy e10b982a.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api"],"spec_note":"Uses the existing Document Bank Collage Rule and Human-Outcome Verification Rule: score/quote trust requires stored provenance, specific explanations, existing-record rebuilds, and rendered verification.","title":"Brain quote and trait-score quality gates tightened","url":"https://aolabs.io/brain/"},{"body":"","changed":"Spec now serves revision 2026-06-24-tool-request-failure-recovery-contract and the paper source/PDF include the recovery rule.","codex_change":"Added the Tool Request Failure Recovery Rule to AGENTS, published the full Spec revision, and verified live summary, revision detail, revision PDF, and paper routes.","commit":"fe0aae0","complaint":"Alan showed a repeated Bad Request block after Codex edited files and asked why it kept happening.","created_at":"2026-06-25T01:14:33.924954+00:00","issue":"Low-level tool or request failures were becoming visible transcript friction, and Alan had to ask Codex to stop repeating the failure mode.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, AGENTS.md, spec-app seed revision, and commit fe0aae0.","snapshot_id":"","source_ids":["spec_home","spec_summary","spec_paper"],"spec_note":"Reusable behavior-contract change for Bad Request, malformed payload, rejected edit/write, connector write, deploy, upload, Spec, and Progress request failures.","title":"Tool request failure recovery contract","url":""},{"body":"","changed":"Spec now records that named constraints such as straight collinear opposite equal-pair legs remain hard constraints until Alan explicitly relaxes them; curved surrogate lines or smooth reference surfaces do not satisfy them.","codex_change":"Added a hard-constraint ledger and substitution-disclosure requirement to AGENTS.md, mirrored the full contract into Spec seed, updated the Spec paper/source/PDF, pushed and deployed Spec.","commit":"5ecdab2 0f1bacb","complaint":"Alan said WaveVis visual tuning abandoned the earlier linkage constraint and left him to notice that the collinear opposite equal-pair constraint was no longer being respected.","created_at":"2026-06-25T00:34:38.691447+00:00","issue":"The standing mechanism rules preserved physical constraints generally, but did not force Codex to disclose or ask before substituting a reference-only surface or surrogate curve field for a named hard mechanism constraint.","kind":"change_issue","lane":"ao_labs","provenance":"Current WaveVis thread, root AGENTS.md, spec-app commits 5ecdab2 and 0f1bacb.","snapshot_id":"","source_ids":["spec_home"],"spec_note":"Hard constraint substitution disclosure added after WaveVis reference-surface repair.","title":"Spec hard-constraint substitution rule","url":"https://spec.aolabs.io/"},{"body":"","changed":"Live fallback now serves bundle index-B-6BXBRS.js, updated proof PDF and side/top/isometric/front proof images; custom domain still has certificate principal mismatch.","codex_change":"Changed the readable WaveVis surface to a square reference-sheet domain, added a curled profile with return, hid the oversized top scene grid in surface-only mode, fit surface-only cameras to the readable sheet, preserved mechanism toggles and checks, regenerated proof screenshots and PDF, pushed source, gh-pages, and AO Labs fallback mirror.","commit":"3baa781 c855168","complaint":"Alan rejected the WaveVis render because the curl, tip, overhang, under-curl region, and square-base reference match were still wrong; latest correction named the square base and reference images as the target.","created_at":"2026-06-25T00:17:00.375874+00:00","issue":"Default surface mode still behaved like a tapered or inset patch on the old rectangular mechanism grid, so side and top views did not read like the supplied square gridded breaking-wave reference.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread screenshots, reference images, check:geometry output, commits 3baa781 and c855168, live fallback screenshots in _verification/live-fallback-3baa781.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, and Deployment rules covered the failure; this event records the application and remaining visual boundary.","title":"WaveVis square reference-sheet curl repair","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"Live fallback https://aolabs.io/wavevis serves index-XoITtMkG.js; live side/top/isometric screenshots use that asset; /proofs/wavevis-system-architecture.pdf returns 200 with 4410757 bytes. The preferred https://wavevis.aolabs.io route remains blocked by certificate principal mismatch before HTTP.","codex_change":"Tightened the readable curl profile, lowered the lip tip, reduced side-view line pileup, narrowed the readable wave width relative to height, rebuilt final side/top/isometric/front proof figures, rebuilt the architecture PDF, published the WaveVis GitHub Pages branch, and mirrored the final bundle and proof files to aolabs.io/wavevis.","commit":"da8f231; 35e1a13; 25b88d9","complaint":"Alan supplied the June 24 gridded wave progression reference after repeated rejection that the WaveVis side and 3D views still did not show the curl, downturned tip, and overhang clearly enough, and that prior repairs either hid the mesh, made a jumbled under-curl region, or regressed the whole breaking-wave silhouette.","created_at":"2026-06-24T22:14:32.117587+00:00","issue":"Issue being solved: the public WaveVis surface needed a taller, less stretched full-mesh breaking-wave read with a clearer curled lip while preserving the top-view rounded footprint, full side mesh, mechanism verification, proof PDF, and fallback/custom-domain separation.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread with June 24 reference images; WaveVis commit da8f231; aolabs-site fallback commits 35e1a13 and 25b88d9; npm run build; npm run check:geometry with 4928 rendered nodes, 9700 rendered edges, 4816 depth edges, zero residual; live screenshots live-final-curl-side/top/isometric; live PDF size 4410757; Progress scan 3a69eab7b2d1b31c completed.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, prior-fix preservation, acknowledged-defect repair, and human-outcome verification rules applied; no new Spec rule was needed after the final artifact/proof/Progress loop was closed.","title":"WaveVis final live fallback verified","url":""},{"body":"","changed":"A3 now serves a six-image MINI gallery with a compact over-image product bar, no feature-pills, flattened tier labels, and verified 200 image assets. Spec now serves the no decorative text-chip metadata and compact reflow rule, with revision PDF and paper PDF live.","codex_change":"Replaced weak MINI image set, removed static attribute chips, reflowed build facts into a compact overlay, flattened A3 tier markers, added AGENTS/Spec rule requiring chip removal plus compact reflow and desktop/mobile verification, rebuilt Spec paper PDF, deployed A3 and Spec.","commit":"a3 5f49b32; spec 2963c4b","complaint":"Alan rejected the MINI attribute bubble/chip text boxes, then rejected the scarred replacement layout because it left a weird oversized blank band and too much dead space.","created_at":"2026-06-24T22:10:40.694341+00:00","issue":"A3 treated static MINI metadata as decorative rounded chips and then stranded the surviving build facts in a wide empty text strip after the chips were removed.","kind":"codex_change","lane":"ao_labs","provenance":"Current thread screenshots, A3 live/local screenshots, AO Labs source scan, live route checks, commits a3 5f49b32 and spec 2963c4b.","snapshot_id":"","source_ids":["a3_home","a3_health","a3_queue_snapshot","spec_home","spec_summary","spec_paper"],"spec_note":"New Spec revision: 2026-06-24-no-decorative-text-chip-metadata-contract-7e8908475b. Sibling scan found Curtis live count-pill markup and source-level candidates in Talk, Wallguard, FluxCell, Spotify, and Progress; functional controls/state remain exceptions.","title":"A3 MINI gallery and Spec chip-metadata rule","url":"https://a3.aolabs.io/"},{"body":"","changed":"Live fallback https://aolabs.io/wavevis serves index-COrsYAu-.js, the side/top/isometric views match the local verified screenshots, and /proofs/wavevis-system-architecture.pdf returns 200 with 4426983 bytes. The preferred https://wavevis.aolabs.io route remains blocked/unverified with HTTP 000.","codex_change":"Retuned the readable WaveVis mesh around a sampled curl profile; made the readable surface visible in Top view; reduced stacked side outlines under the curl; kept nodes/edges/mechanism toggles; rebuilt the app bundle and refreshed the public architecture proof PDF and figures.","commit":"142d3a3; ab5e0c9","complaint":"Alan supplied smooth gridded breaking-wave references after repeated rejection that WaveVis still lacked a real side-view curl, downturned tip, and overhang, and that the under-curl region read as jumbled, phallic, triangular, or like a cross-section instead of a full 3D sheet.","created_at":"2026-06-24T21:50:36.426086+00:00","issue":"Issue being solved: the user-facing WaveVis render needed the full mesh to read as a smooth gridded breaking-wave surface in side, isometric, and top views while preserving linkage verification and the fallback/custom-domain split.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread with June 24 reference images; WaveVis commit 142d3a3; aolabs-site fallback commit ab5e0c9; npm run build; npm run check:geometry reporting 4928 rendered nodes, 9700 rendered edges, 4816 depth edges, zero residual; live fallback screenshots live-fallback-curlmesh-side/top/isometric.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, prior-fix preservation, acknowledged-defect repair, and human-outcome verification rules applied; this pass tightened the artifact/proof/Progress loop without needing a new Spec rule.","title":"WaveVis final curl mesh verification","url":""},{"body":"","changed":"Live a3.aolabs.io now serves FX0S4VNE at USD 36,025 with Melting Silver III Metallic, Vescin Beige, Iconic/Favoured, Comfort Package Plus, and 17 inch U-Spoke Grey wheels; new PDF returns 200, old FWC3K9X3 PDF returns 404, queue snapshot car fields match FX0S4VNE, and desktop/mobile overflow checks pass.","codex_change":"Extracted the FX0S4VNE print-route build data and renderer images from MINI USA, generated a verified one-page build PDF, replaced the A3 goal data, assets, copy, and queue snapshot with the Melting Silver III FX0S4VNE build, removed the old FWC3K9X3 files, and kept the hero image uncropped with object-fit contain.","commit":"50238f4","complaint":"Alan had a new MINI build open in Chrome and asked Codex to extract the website images, get the build PDF, and replace the current MINI Cooper.","created_at":"2026-06-24T21:16:49.047182+00:00","issue":"Issue being solved: A3 still served the older FWC3K9X3 Nanuq White MINI build, old PDF, and old images instead of the current Chrome MINI build.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; Chrome MINI tab and MINI USA print route on 2026-06-24; commit 50238f4; Railway deployment 3f11a564-4c1e-4798-af0c-91815225e12e; live route verification.","snapshot_id":"","source_ids":["a3_home","a3_health","a3_queue_snapshot"],"spec_note":"Existing Exact User-Supplied Asset, Financial Decision Evidence, AO Labs Suite, and Human-Outcome Verification rules covered this; no new Spec rule required.","title":"A3 MINI build replaced with FX0S4VNE","url":""},{"body":"","changed":"aolabs.io/wavevis now serves index-DzBVhjyD.js and the updated wavevis-system-architecture.pdf. The custom wavevis.aolabs.io domain remains blocked by certificate mismatch.","codex_change":"Changed the default WaveVis presentation to a smooth full-sheet gridded surface with nodes/edges hidden by default but preserved as toggles; added Front view; retuned the readable curl/lip mesh and view-specific outlines; updated the architecture PDF and public fallback bundle.","commit":"","complaint":"Alan supplied a June 24 smooth gridded breaking-wave reference after repeated rejection that the side/3D view still lacked a real curl, tip, and overhang and that the under-curl region read as jumbled or wrong.","created_at":"2026-06-24T21:02:48.112954+00:00","issue":"Issue being solved: the product view needed to read as a full 3D gridded breaking-wave sheet, not a cross-section, tunnel, side-wall cavity, triangle, or connector pile under the curl.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, supplied June 24 reference image, WaveVis commit afd45d5, aolabs-site fallback commit 8af2221, live fallback screenshot _verification/wavevis-live-fallback-side-final.png, geometry check 4928 nodes / 9700 edges / 4816 depth edges / zero residual.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape, prior-fix, and human-outcome verification rules applied; no new Spec rule was needed.","title":"WaveVis smooth mesh curl update","url":""},{"body":"","changed":"Live a3.aolabs.io serves app.js and styles.css from commit 1092a52; Chrome verified bank-on Daily scan shows 7d cashflow positive 4657 USD from 6280 USD in minus 1623 USD out, 1513 USD purchases, 3140 USD credits/returns, and 0 USD net purchase out; hero/title/pill overflow false on desktop and mobile.","codex_change":"Reduced the desktop hero track and image rows, allowed the MINI title and chips to wrap inside the card, and added a Daily scan summary row with cashflow in/out, purchases, credits/returns, and net purchase out.","commit":"1092a52","complaint":"Alan showed the A3 hero clipping the MINI name and asked why a positive rate was possible without enough detail.","created_at":"2026-06-24T20:06:44.254128+00:00","issue":"Issue being solved: the A3 hero had too much empty space and nowrap title overflow, while Daily scan did not expose the cashflow in/out and credits/returns basis behind a positive short-window rate.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; Alan screenshots on 2026-06-24; commit 1092a52; Railway deployment 88b5e273-d92d-427c-8275-7c26164c22a7; live Chrome verification on a3.aolabs.io.","snapshot_id":"","source_ids":["a3_home","a3_health","a3_queue_snapshot"],"spec_note":"Existing Financial Decision Evidence and Human-Outcome Verification rules covered this; no new Spec rule required.","title":"A3 hero and daily scan basis","url":"https://a3.aolabs.io"},{"body":"","changed":"Brain now stores source text and a generated-note layout version, exposes a sync rebuild endpoint, and automatically rebuilds outdated synced generated PDFs and preview PNGs in place. All 21 generated note PDFs now report the new continuous-paragraph layout version.","codex_change":"Added generatedNoteLayoutVersion metadata, sourceText persistence, /api/files/:id/rebuild, and a frontend migration pass; pushed standalone and hub copies; deployed Railway; verified the newest live PDF render and preview PNG.","commit":"cda2ae6 / 4fefae5","complaint":"Alan pointed out that the previews and PDFs still showed line-broken generated-note output after the first highlight-wrap fix.","created_at":"2026-06-24T19:51:24.756252+00:00","issue":"The first fix corrected new wrapping logic, but existing synced generated PDFs and preview PNGs were already stored, so old note files could keep the previous renderer forever. The app also did not store a layout version or source text for future rebuilds.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread screenshot; live sync API verification on 2026-06-24 1:56 PM EDT; commits cda2ae6 and 4fefae5; Railway deployment 7a04aa49-e21c-4772-a081-acadbb02b9dc.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"","title":"Brain generated note PDFs and previews rebuilt","url":"https://aolabs.io/brain/"},{"body":"","changed":"Observed source change: cv.aolabs.io now serves the 20260624 GRIE PDF and preview image; both cv.aolabs.io/alan-nguyen-pham-cv.pdf and aolabs.io/cv/alan-nguyen-pham-cv.pdf return the new 61795-byte PDF containing the GRIE entry.","codex_change":"Added the poster presentation to the CV research outputs, regenerated the CV PDF and page preview, updated cv.aolabs.io to the 20260624 GRIE CV artifact, mirrored the CV PDF in aolabs.io/cv, and deployed both GitHub Pages sites.","commit":"2202f76 / 425413a","complaint":"Alan supplied the 2025 WPI GRIE poster image and asked to update cv.aolabs.io with the detail instead of leaving the CV stale.","created_at":"2026-06-24T17:26:15.853309+00:00","issue":"Issue being solved: the public CV did not include the 2025 WPI Graduate Research Innovation Exchange poster presentation for the Sarrus-linkage morphing soft robotic structure.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread with supplied poster image; WPI event page verified Feb. 21, 2025 GRIE/3MT details; commits cv-app 2202f76 and aolabs-site 425413a; live curl/PDF text/desktop/mobile checks on 2026-06-24.","snapshot_id":"","source_ids":["cv_pdf"],"spec_note":"","title":"CV GRIE poster entry","url":"https://cv.aolabs.io/alan-nguyen-pham-cv-20260624-grie-poster.pdf"},{"body":"","changed":"Brain now tokenizes highlighted and normal text word-by-word, cache-busts the app script to 20260624-highlight-wrap, and serves the fix through the hub route and standalone Pages route after deployment.","codex_change":"Removed the bold-segment special case in tokenizePdfSegments, mirrored the app bundle to aolabs.io/brain, pushed both repos, redeployed Railway, and verified the Moana/ocean sample wraps inline on the public renderer.","commit":"ef01539 / 00f6abc","complaint":"Alan showed Brain note/PDF highlights forcing a new line before the selected phrase.","created_at":"2026-06-24T17:21:46.997930+00:00","issue":"The PDF and thumbnail wrapper treated highlighted text as one unbreakable bold segment, so a selected autism/ADHD phrase could jump to a new line even when normal word wrapping should keep it inline.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread screenshots; public browser QA on 2026-06-24 1:19 PM EDT; commits ef01539 and 00f6abc; Railway deployment 75e06686-4d5d-43c9-808a-ae5720995548.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"","title":"Brain note highlight wrapping fixed","url":"https://aolabs.io/brain/"},{"body":"","changed":"wavevis.aolabs.io repo ddc50a6; aolabs-site fallback e978d69; live fallback serves index-BDPVeHJX.js; live screenshot shows Side active with clean curl/barrel overlay; custom domain still blocked by certificate hostname mismatch.","codex_change":"Added a side-only clean sheet/barrel wire overlay with a masked hollow throat, reduced old side-projection opacity to context, preserved full side-render node/edge scope, rebuilt the architecture PDF, and deployed the fallback bundle.","commit":"wavevis:ddc50a6 aolabs-site:e978d69","complaint":"Alan said the Side view still had a weird jumbled region under the curl and provided a clean gridded breaking-wave reference with visible curl, tip, and overhang.","created_at":"2026-06-24T01:30:25.635476+00:00","issue":"Side projected full-depth connector clutter through the hollow barrel, so the human-facing view read as a knot/cavity instead of a clean breaking-wave sheet.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread screenshots/reference image; local and live side screenshots; npm run build; npm run check:geometry; GitHub Pages deploy 28068367130.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry and prior-fix-preservation rules cover this: verify the human-facing full side render and preserve the full 4928-node/9700-edge side scope while cleaning the under-curl region.","title":"WaveVis side curl cleanup","url":"https://aolabs.io/wavevis/?view=side"},{"body":"","changed":"Live fallback serves index-BmDvf04C.js; side proof figure is 52,784 bytes; architecture PDF is 4,312,839 bytes; geometry check reports 4,928/4,928 nodes and 9,700/9,700 full rectangular edges. wavevis.aolabs.io remains certificate-blocked, so aolabs.io/wavevis is the verified public route.","codex_change":"Removed the Side center trace overlay, kept the trace only in the 3D/isometric view, raised Side mesh/node/surface opacity, regenerated the side proof figure and architecture PDF, rebuilt WaveVis, and deployed the AO Labs fallback bundle.","commit":"wavevis 0bcf11c; aolabs-site af836da","complaint":"Alan said Side still looked like only a cross-section/profile and needed the full mesh, not just the trace.","created_at":"2026-06-23T22:15:57.364023+00:00","issue":"The renderer kept full graph data but made the Side mesh nearly invisible and drew a dominant center curl trace, so the product view read like a profile instead of a full 3D mesh.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; Alan reference/side screenshots; local/live visual screenshots; npm build; geometry check; GitHub Pages run 28060336713.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis Side full-mesh repair","url":""},{"body":"","changed":"Fallback route now serves asset index-C95jvmS1.js, PDF length 4320417, updated isometric figure length 89428, and the old current-live-cross-section figure returns 404. Custom domain remains certificate-blocked.","codex_change":"Removed Cross Section from the visible controls and view type path, made old slice URLs fall back to Side, removed the profile-only renderer branch, reframed 3D around the active curl with faint full-sheet surface and red terminal lip, regenerated Side/3D/Top proof figures, and rebuilt the architecture PDF.","commit":"wavevis 52de96c; fallback 3355f63","complaint":"Alan said the 3D view did not show the drawn overhang/curl, Side must be a full-3D side camera view with the curl visible, and Cross Section should stop existing as a product concept.","created_at":"2026-06-23T21:56:18.247614+00:00","issue":"WaveVis still had a hidden profile/debug view path and stale proof artifacts, while the live Side and 3D views could read as a sheet overview or cavity instead of the breaking-wave overhang.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, local screenshots, npm build, npm run check:geometry, GitHub Pages deployment 28059656982, live curl verification.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"WaveVis view semantics: Side and 3D are full-sheet 3D camera outcomes; profile/debug substitutes are not product views.","title":"WaveVis full-3D curl view repair","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"https://aolabs.io/wavevis/ now serves asset index-BmnrrL8O.js; live PDF length is 4348991 bytes; current-live-side.png and reference-breaking-wave-line.png return 200. Geometry checks pass with 4928 nodes, 9700 edges, zero rendered-neighbor residual, zero bowl pockets, top-footprint collapse ratio 1.1, reference max residual 0.2002, RMS 0.1149, terminal-drop ratio 0.9593, and no bad slider cases.","codex_change":"Retuned the default inverse-sheet profile to the supplied line reference, strengthened the terminal lip rendering, tightened terminal side-wall suppression, widened the side-overhang aspect gate for the new reference, regenerated proof figures, added the exact supplied reference image to proof assets, rebuilt the architecture PDF, pushed WaveVis source b8ba66d, deployed the standalone bundle, and mirrored the built fallback in aolabs-site commit 3b90eaa.","commit":"","complaint":"WaveVis side shape still missed the breaking-wave curl, tip, and overhang; the visible result read as a mound/cave/dimple/body-part silhouette instead of the supplied June 23 breaking-wave line reference.","created_at":"2026-06-23T20:59:03.729238+00:00","issue":"Reference-geometry tuning was fixing local defects while losing the full target: broad arch, inward curl, downturned hook tip, smooth interior throat, long low return, full connected linkage, non-triangular top footprint, and public fallback parity.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread on 2026-06-23; supplied image C:\\Users\\phama\\Downloads\\ChatGPT Image Jun 23, 2026, 04_38_28 PM.png; npm run check:geometry; npm run build; pdflatex/biber PDF compile; curl live fallback checks; commits b8ba66d and 3b90eaa.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis curl reference geometry repair","url":""},{"body":"","changed":"Visible a3 job rows now use Disney Research postdoc/scientist targets and a research scientist/postdoc search target; future runs reject ordinary Engineer titles unless Alan explicitly reopens that lane.","codex_change":"Updated morning-wisdom-email sources.md and automation.toml with a scientist/researcher/postdoc title gate; sent corrected Gmail message without ordinary Engineer-title career rows.","commit":"","complaint":"Alan said ordinary Engineer positions imply follower/implementation work and the lane should be scientist, researcher, postdoc, and Disney Research research-scientist work.","created_at":"2026-06-23T20:48:42.133809+00:00","issue":"The corrected MINI morning email still used Engineer-title job rows for OpenAI/Rhoda/Westmag even though Alan wants a research-scientist trajectory.","kind":"note","lane":"ao_labs","provenance":"Current Codex thread, Gmail sent message 19ef63d5f5511bf9, automation memory 2026-06-23 04:48 PM ET, live A3 queue snapshot, live PhD files, Disney Research/Disney Careers destination checks.","snapshot_id":"","source_ids":["a3_queue_snapshot","phd_home","progress_summary"],"spec_note":"","title":"Morning queue scientist-lane correction","url":""},{"body":"","changed":"Live A3 now serves MINI Cooper S with build code FWC3K9X3 and price 39825 USD; queue snapshot car target changed from Audi A3 to MINI Cooper.","codex_change":"Restored the MINI Cooper S Hardtop 2 Door target in A3 source/UI/API, refreshed stale queue snapshots when the target changes, deployed to Railway, updated the morning-email source contract, and sent a corrected Gmail email.","commit":"4d7e79b","complaint":"Alan said he does not really want an Audi anymore and wants the MINI Cooper back in a3.aolabs.io and the morning email.","created_at":"2026-06-23T20:30:41.773226+00:00","issue":"A3 and the morning queue were still carrying the old Audi target, making Alan correct the car preference manually.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; A3 commit 4d7e79b; Railway deploy 1f9d4570-0f3a-45b4-9071-dfd6ee980080; Gmail message 19ef62a7c065a593.","snapshot_id":"","source_ids":["a3_home","a3_health","a3_queue_snapshot"],"spec_note":"","title":"A3 MINI Cooper target restored","url":"https://a3.aolabs.io"},{"body":"","changed":"Observed source change: imagineer_ops moved to active_listing_last_checked_at 2026-06-18T16:00:32+00:00 and imagineer_paper now serves SHA-256 A90AFFC9CDFEC61C9F61AE5B5AF901F9A71A07A7CBEC6F6DC3C8554BF79980DC on custom and fallback routes.","codex_change":"Verified the Disney lead destination, refreshed Progress/Imagineer/PhD/WaveVis/FluxCell state, deployed the canonical Imagineer checkout through Railway, synced the AO Labs fallback PDF, and verified desktop/mobile profile render plus PDF hash parity.","commit":"02e2d0f / 87f12f1","complaint":"Automation refresh required the live Imagineer profile, source graph, verified lead, research queue, paper, and fallback routes to reflect current evidence instead of stale deployment state.","created_at":"2026-06-23T19:52:57.240078+00:00","issue":"Issue being solved: the June 18 source and paper were already current locally, but production still served the June 17 ops/PDF state until Railway auth recovered and the deploy was rerun.","kind":"change_issue","lane":"imagineer","provenance":"imagineer-profile-refresh automation run on 2026-06-23; Railway deploy c9ed6a73; aolabs-site commit 87f12f1; Progress snapshot bcd2ad7ee5088bc2.","snapshot_id":"bcd2ad7ee5088bc2","source_ids":["imagineer_ops","imagineer_paper","progress_summary","phd_organization_doc"],"spec_note":"Keep Imagineer live deploy, custom PDF, fallback PDF, verified lead, and research queue as separate closure gates.","title":"Imagineer stale deploy closed","url":""},{"body":"Brain ADHD score-card cleanup exposed a reusable document-bank failure: neighboring analysis cards looked copied and padded when first sentences repeated and low fallback scores defaulted to the same value. The fix updated Brain and added a Spec rule requiring rendered set-level QA for autism and ADHD score cards.","changed":"Live Spec summary now serves revision 2026-06-22-document-bank-trait-analysis-set-qa-contract-1415306675; live Spec paper PDF rebuilt to 258818 bytes; Progress scan 02a3a479488bfddd marks spec_summary and spec_paper changed.","codex_change":"Updated AGENTS.md Document Bank rule, created a full Spec seed snapshot, appended the revision metadata without reordering older seed entries, updated and compiled the Spec paper, committed and deployed Spec, and verified live revision and PDF routes.","commit":"9c1f9bd","complaint":"Alan said many ADHD explanations started with the same I read phrasing, too much whitespace remained, and seeing several neighboring 12/100 scores made the scoring look copied, suspicious, and low quality.","created_at":"2026-06-23T00:08:24.329293+00:00","issue":"Document-bank score-card QA covered nuanced scores and provenance, but did not explicitly require set-level checks for repeated openers, repeated low-score runs, clipping, or padded whitespace.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread Brain complaint; Brain commits 7ec6489 and b2af986; Spec commit 9c1f9bd; Spec deploy 9e7c5d54; Progress snapshot 02a3a479488bfddd.","snapshot_id":"02a3a479488bfddd","source_ids":["spec_home","spec_summary","spec_paper","brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"New rule: trait-score explanations must vary first sentences, remove repeated I read openers, use content-sensitive low-signal autism and ADHD fallback scores, and verify rendered card sets for repeated score runs, repeated first sentences, clipping, and padded analysis whitespace.","title":"Document-bank trait analysis set QA contract","url":"https://spec.aolabs.io/api/revisions/2026-06-22-document-bank-trait-analysis-set-qa-contract-1415306675"},{"body":"","changed":"https://aolabs.io/brain/ and http://brain.aolabs.io/ now serve app.js/styles.css cache key 20260622-adhd-quality3; public rendered desktop/mobile checks show 19 cards, zero \"I read\" ADHD starts, max repeated ADHD score run 2, max repeated ADHD first sentence 2, no clipped analysis, no excessive blank analysis blocks, and equal autism/ADHD paragraph heights. Railway deployment c5264f39 is online with AI enabled. HTTPS brain.aolabs.io still has the existing certificate hostname mismatch.","codex_change":"Updated Brain fallback ADHD scoring to use content-sensitive low-signal baselines, broadened ADHD evidence patterns for task-starting, setup, motivation, focus, time, and organization cues, varied the card explanation leads, removed repeated \"I read\" starts, changed analysis blocks from fixed 12-line height to per-card synced natural height, and strengthened the backend AI prompt so future uploads avoid copied paragraph starts.","commit":"brain 7ec6489 / aolabs-site b2af986 / railway c5264f39","complaint":"Alan said many ADHD explanations started with the same \"I read\" phrasing, looked copied and pasted, had too much whitespace, and showed suspicious repeated 12/100 ADHD scores.","created_at":"2026-06-22T23:53:33.907177+00:00","issue":"Brain old saved entries were falling back to browser-side ADHD analysis because they lacked stored ADHD AI metadata; that fallback used a repeated opener, a fixed low baseline, and fixed-height analysis blocks that made the cards feel generic and padded.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread on June 22, 2026; local rendered browser metrics and Chrome screenshots; public rendered checks on https://aolabs.io/brain/ and http://brain.aolabs.io/; curl route checks; Railway status; Progress scan ba5747923fe2ce61.","snapshot_id":"ba5747923fe2ce61","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"Document-bank ADHD/autism explanations need varied, note-specific human language; fallback scores must not collapse multiple unrelated entries to the same low number without content-sensitive evidence, and fixed card heights must not create padded whitespace.","title":"Brain ADHD card language and score cleanup","url":"https://aolabs.io/brain/"},{"body":"","changed":"https://aolabs.io/brain/ and http://brain.aolabs.io/ now serve the 20260622-analysis-quality frontend. Rendered desktop/mobile checks on both public routes show 21 cards, zero duplicate selected-quote paragraphs, zero bad helper phrases, equal autism/ADHD paragraph heights, no clipping, and no horizontal overflow. Railway backend deployment 10a60e1e is active and /api/health reports AI enabled. HTTPS brain.aolabs.io still has a certificate trust mismatch.","codex_change":"Updated Brain card rendering so selected quotes are removed from the paragraph, stale helper phrases and metadata fragments are scrubbed, each trait paragraph can pull cleaner supporting details from saved note text, autism and ADHD analysis boxes share the same height, and the backend AI normalizer now prompts for non-repeated chosen phrases plus richer input-specific details for future uploads.","commit":"brain 14eb962 / aolabs-site f4c5453 / railway 10a60e1e","complaint":"Alan showed that Brain repeated the same selected ADHD quote in the score paragraph, said the details were too scarce, and said the overall analysis quality felt bad.","created_at":"2026-06-22T21:43:20.642581+00:00","issue":"Generated-note cards were technically scoring autism/ADHD but the explanation layer still reused visible quotes, leaned on boilerplate, and sometimes exposed stale metadata-style analysis fragments instead of giving a note-specific human read.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread and screenshot complaint on June 22, 2026; local Chrome render audit; public Chrome render audit on aolabs.io/brain and brain.aolabs.io; Railway status and health checks.","snapshot_id":"4317101774d93d43","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"Document-bank score explanations must not repeat the selected quote, must avoid helper labels and stale metadata fragments, and must include enough note-specific detail to feel unique for each upload.","title":"Brain analysis card quality cleanup","url":"https://aolabs.io/brain/"},{"body":"Alan rejected the WaveVis shape after repeated narrow fixes: the top view had become a large triangle, the curl did not read as a breaking wave, the tip did not turn down enough, and a later pass still looked instantly rejectable because the return read as a flat tongue or closed loop rather than an open curl.","changed":"aolabs.io/wavevis now serves bundle index-BvZOEFWn.js with the reopened curl profile; side proof PNG and architecture PDF return 200. wavevis.aolabs.io remains blocked by SNI/certificate failure.","codex_change":"Reopened and shortened the terminal curl return in the default profile, lowered the visual weight of the inner curl overlay, regenerated side/top/overlay/isometric/cross-section proof figures, rebuilt the architecture PDF, pushed WaveVis source, and mirrored the new bundle to the AO Labs fallback route.","commit":"0a73367;33074da","complaint":"Alan said the result was instantly rejectable: fixed the big triangle but still did not know what it made; the curl/dip was weak, the tip needed to point down, the top view had looked like a big triangle, and the whole shape still failed the breaking-wave target.","created_at":"2026-06-22T21:39:47.673492+00:00","issue":"WaveVis shape tuning was overfitting named defects while losing the global breaking-wave silhouette. The public usable route also had to stay separated from the broken custom-domain route.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread on 2026-06-22; WaveVis commit 0a73367 and AO Labs fallback commit 33074da; live curl/PDF checks.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Whole-Shape Regression, and Prior-Fix Preservation rules apply: local shape defects must be repaired inside the whole visual target while preserving mechanism cells, fallback parity, and paper state.","title":"WaveVis curl shape repair","url":"https://aolabs.io/wavevis/?v=33074da-final"},{"body":"","changed":"Live spec.aolabs.io now reports revision 2026-06-22-missed-spec-capture-backfill-contract-282fa12fcf as latest with revision count 105; paper source is dated 2026-06-22 and includes the missed-capture rule; revision and paper PDF routes return PDFs.","codex_change":"Added the Missed Spec-Capture Backfill Rule to AGENTS, created the full Spec snapshot, added revision metadata with sync_missing, updated paper source and PDF, pushed and explicitly deployed Spec, then verified live summary, detail, revision PDF, paper source/PDF, and desktop/mobile render.","commit":"a6a7111","complaint":"Alan had to say update spec after the reusable failure was already visible, and live Spec was still serving an older revision than the local seed and paper source.","created_at":"2026-06-22T21:28:25.645440+00:00","issue":"Issue being solved: Spec auto-capture existed but did not force a missed-capture audit, local/live Spec reconciliation, paper-source update, live deploy verification, and Progress backfill when Alan had to ask again.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; AGENTS.md; spec-app commit a6a7111; live Spec API/detail/PDF/paper/render checks on 2026-06-22 5:24-5:30 PM ET; live Progress summary showed capture needs_issue_notes and patterns needs_notes before backfill.","snapshot_id":"","source_ids":["spec_summary","spec_home","spec_paper","progress_summary"],"spec_note":"Reusable lesson: a terse update spec request after an auto-capture trigger means Codex must audit and backfill the missed capture path instead of treating it as a narrow wording edit.","title":"Missed Spec-capture backfill contract","url":""},{"body":"","changed":"Observed source change: https://aolabs.io/brain/ and http://brain.aolabs.io/ now serve app.js and styles.css with the 20260622-balanced-analysis-size3 asset key; rendered desktop and mobile checks show 21 cards with equal 107.5px autism/ADHD analysis boxes, zero clipping, and zero horizontal overflow.","codex_change":"Balanced the visible card analysis text through complete-sentence card summaries, gave autism and ADHD analysis paragraphs the same seven-line visual box, cache-busted the Brain bundle, mirrored the change into the aolabs.io/brain fallback, and manually triggered GitHub Pages builds.","commit":"","complaint":"Alan asked to make the ADHD and autism paragraphs the same size after the Brain cards made the two trait analyses feel visually uneven.","created_at":"2026-06-22T16:19:31.940343+00:00","issue":"Issue being solved: the autism and ADHD analysis text used the same font but different content length, so cards had mismatched paragraph weight and could feel inconsistent across generated notes and source PDFs.","kind":"change_issue","lane":"ao_labs","provenance":"Codex thread on June 22, 2026; brain.aolabs.io commit 08e18e7 and aolabs-site commit 66f10ce; live browser verification on aolabs.io/brain and http://brain.aolabs.io.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_custom_domain"],"spec_note":"Document-bank collage cards need equal trait-analysis treatment across autism and ADHD when both scores are shown.","title":"Brain trait analysis paragraph sizing","url":""},{"body":"","changed":"Live fallback serves the adhd-complete-phrase bundle; 19 generated PDFs verified with previews and both autism/ADHD highlight colors; sample cards now show complete ADHD phrases including \"I would really want to focus on one thing while driving\" and \"everything basically has a warm up period\".","codex_change":"Replaced word-count phrase cuts with complete phrase boundary logic, removed metadata from generated-note ADHD scoring, added ADHD start/warm-up and focus evidence floors, cleaned card wrapping, regenerated all 19 generated PDFs/previews, and deployed the backend analyzer so future uploads return ADHD fields.","commit":"caed85a / bfd698a","complaint":"Alan showed Brain screenshots where the ADHD phrase was cut at a half sentence like \"that's kind\" and where PDF/card text appeared to introduce random line breaks, then said the ADHD score needed to be good.","created_at":"2026-06-22T15:54:11.605380+00:00","issue":"The generated-note selector could truncate phrases by word count, split off phrase tails like \"while driving\", include parenthetical starts, and fall back to metadata for older synced PDFs when ADHD AI metadata was missing.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread screenshots and live verification on June 22, 2026; commits brain caed85a and aolabs-site bfd698a; Railway deployment efaf1682.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"Document-bank scoring/highlighting must reject half-sentence selected phrases, metadata-derived fallback phrases, dangling connector endings, and UI wrapping rules that make selected signals look randomly broken.","title":"Brain ADHD score and phrase-boundary repair","url":"https://aolabs.io/brain/"},{"body":"","changed":"Live fallback now serves bundle index-Bo1xxLn1.js; the architecture PDF and current-live-top figure include the June 22 top-footprint repair; top view stays rounded instead of filled as a large wedge.","codex_change":"Separated vertical curl masks from the top-plan footprint mask, added lateral footprint relief, disabled top-view surface fill, de-emphasized folded-face edges in top view, added a top-footprint roundness gate, regenerated proof figures and the architecture PDF, pushed source, deployed the standalone bundle, and mirrored the fallback route.","commit":"c05cf43 / 435f3d6","complaint":"Alan asked why the top view looked like a big triangle after repeated breaking-wave shape corrections.","created_at":"2026-06-22T07:19:35.485036+00:00","issue":"The top projection reused the side/curl taper and side-view rendering emphasis, so the center advanced while the sides tapered into a triangular fan even when the side curl was closer.","kind":"change_issue","lane":"imagineer","provenance":"wavevis commit c05cf43; aolabs-site commit 435f3d6; Progress snapshot 5ed5035a4d709089; local checks npm run check:geometry and npm run build; live fallback HTML/asset/PDF/browser checks on 2026-06-22 3:14-3:17 AM ET.","snapshot_id":"5ed5035a4d709089","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, and prior-fix preservation rules apply; this event logs the top-view triangle failure and the added top-footprint gate.","title":"WaveVis top footprint repair","url":""},{"body":"","changed":"19 synced generated PDFs verified with both autism and ADHD highlight colors; 19 generated cards verified with previews; public fallback bundle now serves adhd-clean-pdf3. HTTPS custom domain still has certificate name mismatch while http://brain.aolabs.io/ and https://aolabs.io/brain/ return 200.","codex_change":"Aligned ADHD card language to the same quote-first pattern as autism, rendered autism highlights warm pink and ADHD highlights dark blue, rebuilt the synced generated PDFs/previews, and changed the frontend to analyze synced generated PDFs from file text instead of stale metadata.","commit":"90dee08 / b114aaf","complaint":"Alan said the ADHD description felt weird compared with autism, then asked that all generated PDFs and previews be updated with the new autism and ADHD bolding.","created_at":"2026-06-22T07:11:05.158659+00:00","issue":"Synced generated-note cards could compute ADHD from stale autism metadata before reading the actual PDF, which made the selected quote and explanation feel copied or wrong.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; commits brain 90dee08 and aolabs-site b114aaf; live browser/PDF checks on June 22, 2026.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"Document-bank generated-note analysis must keep autism and ADHD explanations parallel, phrase-specific, preview-verified, and sourced from the actual saved PDF text when synced metadata is stale.","title":"Brain PDF bank autism and ADHD highlight cleanup","url":"https://aolabs.io/brain/"},{"body":"","changed":"Pushed brain.aolabs.io gh-pages commit 040ca0b and aolabs.io/brain fallback commit 687b9a9. Live fallback route now serves the 20260622 ADHD bundle and renders ADHD scores on desktop and mobile; API health is live but stored file metadata still lacks ADHD fields until Railway auth is refreshed.","codex_change":"Added ADHD score badges and explanations, overall ADHD score, AI/API schema fields for ADHD analysis, browser ADHD fallback scoring, dual-trait PDF/thumbnail highlight rendering, warm salmon autism bolds, dark blue ADHD bolds, and legacy-record guards that skip ADHD quote selection when original source text is unavailable.","commit":"","complaint":"Alan asked for ADHD scoring in the same style as the autism scoring, then asked for autism bolds to be dark salmon warm pink and ADHD bolds to be a satisfying dark blue.","created_at":"2026-06-22T06:32:52.979191+00:00","issue":"Brain needed parallel ADHD scoring, overall ADHD state, ADHD card explanations, and distinct trait highlight colors without reintroducing random or misleading bold phrases on older synced notes.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, local source verification, Playwright desktop/mobile checks, live aolabs.io/brain route check, and Railway status invalid_grant check on June 22, 2026.","snapshot_id":"","source_ids":["brain_home","brain_app_bundle","brain_api","brain_custom_domain"],"spec_note":"Document-bank score work should keep trait-specific highlights visually distinct and avoid guessed quote selections when source text is unavailable.","title":"Brain ADHD scoring and highlight colors","url":""},{"body":"WaveVis breaking-wave shape repair: the visible lip now curls and the free tip points down while the full linkage array and no-pocket checks stay intact.","changed":"WaveVis source commit 0a0e455 and AO Labs fallback commit 1e8186a now serve bundle index-C26qwDue.js; public PDF length is 3799700 bytes; live fallback desktop/mobile screenshots show the curled lip and lower tip.","codex_change":"Moved terminal tip detection to the local minimum after the first low curl point, sharpened the default terminal path, split crest-to-tip and inner-return side rendering, updated proof figures/PDF, and kept mechanism/no-pocket gates active.","commit":"wavevis 0a0e455; aolabs-site 1e8186a","complaint":"Alan said the curl was not curling, the tip was not tipping, prior passes looked like a cave/dimple or a phallic protrusion, and shape tuning kept regressing the whole target.","created_at":"2026-06-18T21:22:38.164046+00:00","issue":"The previous terminal-lip generator and side renderer could pass nearby metrics while the human-facing silhouette still read as a rounded mass/cavity instead of a breaking-wave curl with a low pointed nose.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, local rendered proof images, npm run check:geometry, npm run build, GitHub Pages publish, AO Labs fallback verification.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Covered by existing Reference-Geometry Outcome, Prior-Fix Preservation, Human-Outcome Verification, Acknowledged Defect Repair, and Deployment rules; no new instruction source edit was needed in this app-only pass.","title":"WaveVis curl and tip repair","url":"https://aolabs.io/wavevis/?tab=inverse&view=side"},{"body":"","changed":"Local source and pushed commit record active_listing_last_checked_at=2026-06-18T16:00:32+00:00, June 18 profile copy, June 18 manuscript text, June 18 Disney bibliography note, and local PDF hash A90AFFC9CDFEC61C9F61AE5B5AF901F9A71A07A7CBEC6F6DC3C8554BF79980DC. Live API and PDF remain stale at June 17 and hash 5D283B64F461AE4170A3EB0FF9D9D6E447B0CCAB70C0E7B599658E77AA508927.","codex_change":"Updated the bounded Imagineer evidence set, rebuilt the PDF, committed 02e2d0f, pushed origin/main, and fast-forwarded the canonical local checkout.","commit":"02e2d0f","complaint":"Recurring Imagineer automation must refresh the profile and paper from current evidence without preserving stale job-lead timestamps.","created_at":"2026-06-18T16:14:16.049168+00:00","issue":"The Disney Careers destination page verified live on June 18, but the public Imagineer Railway deployment still serves the June 17 source and PDF because Railway CLI auth is invalid_grant and no linked project is available.","kind":"work","lane":"ao_labs","provenance":"Disney Careers destination page HTTP/body verification; Progress snapshot 593e0477f8e1858f at 2026-06-18T15:58:34Z; WaveVis and FluxCell route checks; git commit 02e2d0f; Railway CLI invalid_grant/no linked project.","snapshot_id":"","source_ids":["imagineer_ops","imagineer_paper","progress_summary","phd_organization_doc"],"spec_note":"","title":"Imagineer June 18 evidence refresh blocked on Railway deploy","url":""},{"body":"Verified fallback: https://aolabs.io/wavevis/ is current. Blocked/uncertain: https://wavevis.aolabs.io/ still fails normal HTTPS certificate verification with SEC_E_WRONG_PRINCIPAL / hostname mismatch, so the custom domain is not the verified route.","changed":"WaveVis source commit 8551ff0; AO Labs fallback commit 8093f0a; live fallback route serves asset index-BzxV8was.js; live proof PDF returns 200; gh-pages app route serves the same asset. Custom domain host serves the new bundle only with certificate verification bypassed.","codex_change":"Restored the curated custom Moana-ocean profile as the default, reshaped the terminal control points into a lower curved lip, split the side renderer into a muted full linkage body plus terminal curl, widened side camera framing for mobile, repaired the proof-figure centerline extraction, regenerated figures/PDF, and mirrored the verified bundle to the AO Labs fallback route.","commit":"wavevis 8551ff0; aolabs-site 8093f0a","complaint":"Alan said the WaveVis shape still read like a cave because it had side walls, asked for a lower tip, warned it must not look phallic, and wanted a beautiful arched breaking-wave curl.","created_at":"2026-06-17T19:19:39.132826+00:00","issue":"The prior repair reduced the cavity but still failed the whole human-facing shape: the side view could read as a wall/cave or protruding tongue instead of an arched breaking wave with a lower downturned terminal lip.","kind":"change_issue","lane":"imagineer","provenance":"npm run check:geometry; npm run build; npm run deploy; local desktop/mobile screenshots wavevis-chrome-desktop-final-framed-arched-low-curl.png and wavevis-chrome-mobile-final-framed-arched-low-curl.png; live fallback desktop/mobile screenshots wavevis-live-fallback-desktop-final.png and wavevis-live-fallback-mobile-final.png; PDF pages 10-13 rendered from proofs/wavevis-system-architecture.pdf; curl HTTPS checks on aolabs.io/wavevis and wavevis.aolabs.io.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Prior-Fix Preservation, Human-Outcome Verification, Acknowledged Defect Repair, and Whole-Shape Regression rules cover this pass; no new AGENTS/Spec rule added.","title":"WaveVis arched curl profile deployed on fallback","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"AO Labs fallback route serves the updated WaveVis bundle and paper PDF; desktop/mobile fallback screenshots show the curved low return branch. wavevis.aolabs.io remains TLS-blocked. Spec commit is pushed but live spec.aolabs.io still serves the June 14 revision because Railway auth is invalid_grant and live revision upload timed out.","codex_change":"Updated WaveVis default breaking-wave trace and side renderer so the terminal lip includes a low return branch after the forward-most point; updated validation, proof figures, WaveVis architecture PDF, root AGENTS.md, Spec seed snapshot, and Spec paper source/PDF.","commit":"wavevis 0a40032; aolabs ac4ac33; spec 2943384","complaint":"Alan said the WaveVis result still did not match the target, that fixing the cavity regressed the whole shape, and that the interior needed to be curved rather than angular.","created_at":"2026-06-17T16:20:34.357045+00:00","issue":"The side render had to preserve the whole breaking-wave silhouette and mechanism while adding a smooth curved interior throat and avoiding cavity, angular cutout, and protruding silhouette reads.","kind":"change_issue","lane":"imagineer","provenance":"WaveVis commit 0a40032; AO Labs fallback commit ac4ac33; Spec commit 2943384; live fallback asset C-HxYN3M; public fallback desktop/mobile screenshots; spec summary still latest June 14 after push.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain","spec_summary","spec_paper"],"spec_note":"Added Whole-Shape Regression Rule: a named shape defect is one constraint inside the full reference-geometry acceptance test; WaveVis must preserve flat sheet, rising face, crest, downward curl, curved interior throat, smooth return, lateral fade, connected linkage, and prior accepted mechanism state.","title":"WaveVis curved interior repair and whole-shape guard","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"Updated active listing checked-at state to 2026-06-17T13:14:47+00:00, refreshed profile lead copy, refreshed manuscript/references for the June 17 Progress/research read, rebuilt and deployed the paper PDF.","codex_change":"Committed ac5614f, deployed Railway deployment aa10e373-8569-4a41-a44a-1b21106bfb00, verified live API checked-at timestamp and live PDF hash parity.","commit":"","complaint":"Recurring automation must refresh the live Imagineer profile and source graph from current evidence, with clicked Disney lead verification before profile or paper decisions.","created_at":"2026-06-17T13:25:13.297615+00:00","issue":"The live profile and manuscript still carried the June 16 Disney lead verification date after the June 17 Progress scan and clicked Disney destination check.","kind":"profile_refresh","lane":"imagineer","provenance":"Progress manual scan baa5fa7ceb0d790f at 2026-06-17T13:13:47Z; Disney destination HTML fetched 2026-06-17T13:14:47Z; PhD export fetched 2026-06-17T13:15:32Z; live API/PDF verified after Railway deploy.","snapshot_id":"","source_ids":["imagineer_ops","imagineer_paper","progress_summary","phd_organization_doc"],"spec_note":"No new Spec rule needed; existing Imagineer refresh, destination-page verification, Progress ledger, and deployment-verification rules directly covered this run.","title":"Imagineer June 17 profile refresh deployed","url":"https://imagineer.aolabs.io/profile.html"},{"body":"","changed":"wavevis.aolabs.io source commit c4f8cf9; aolabs.io fallback commit ca917b3; live fallback now references index-DJtG7Phh.js; proof figure/PDF routes return 200.","codex_change":"Adjusted the source-baked custom profile points for a shorter tucked downturned terminal lip, preserved profile scale, regenerated the architecture proof figures/PDF, deployed the standalone bundle, and mirrored the same bundle to the AO Labs fallback route.","commit":"","complaint":"Alan said the WaveVis curl/dip still was not close: it needed more curl, more point, should point down like a breaking wave, and the current visible shape looked phallic rather than wave-like.","created_at":"2026-06-17T08:21:37.223051+00:00","issue":"The inverse-sheet side render had to preserve the full mechanism while moving the terminal lip away from a rounded protrusion, cave/dimple, or horizontal tongue.","kind":"work_event","lane":"ao_labs","provenance":"Current thread complaint sequence, npm run check:geometry, npm run build, local and public desktop/mobile screenshots, GitHub Pages deploy runs 27675524056 and 27675559311.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis breaking-wave curl tightened","url":""},{"body":"Blocked/uncertain: https://wavevis.aolabs.io/ still fails certificate verification with SEC_E_WRONG_PRINCIPAL / hostname mismatch after the repaired bundle was deployed. Use https://aolabs.io/wavevis/ as the verified public route until the custom-domain certificate check passes.","changed":"No custom-domain recovery yet; the blocked state is recorded separately from the live fallback repair.","codex_change":"Verified the custom domain separately after deploying the source and fallback; left the fallback as the public route.","commit":"","complaint":"Alan should not have to distinguish fallback success from custom-domain failure after WaveVis shape work.","created_at":"2026-06-17T05:25:51.644353+00:00","issue":"Preferred WaveVis route remains unavailable even though the AO Labs fallback route is live and current.","kind":"source_issue","lane":"ao_labs","provenance":"curl -I https://wavevis.aolabs.io/ returned SEC_E_WRONG_PRINCIPAL on June 17, 2026; fallback live asset is index-30H0mG2n.js.","snapshot_id":"","source_ids":["wavevis_custom_domain"],"spec_note":"","title":"WaveVis custom domain still TLS-blocked","url":"https://wavevis.aolabs.io/"},{"body":"","changed":"Fallback bundle now serves the tighter terminal-curl default with 4928 rendered nodes, 9700 rendered edges, zero rendered-neighbor residual, zero bowl pockets, startup side aspect 1.69, max height 14.75, max overhang 16.27, max tensile strain 4.073, and an open-downturned checked user lip-dip case.","codex_change":"Raised the generated body, sharpened and lowered the terminal lip profile, lowered the inner return, narrowed the terminal lateral carrier, regenerated the current side/overlay/isometric/cross-section figures and architecture PDF, pushed the WaveVis source, deployed gh-pages, and mirrored the verified bundle to the AO Labs fallback route.","commit":"","complaint":"Alan told Codex to keep going after the WaveVis curl/dip still did not match the reference closely enough.","created_at":"2026-06-17T05:25:03.562933+00:00","issue":"The prior generated-profile default made the centerline deeper, but the human-facing side render still read too much like a thick canopy because off-center terminal rows covered the lip/dip.","kind":"change_issue","lane":"ao_labs","provenance":"WaveVis commit 439c135; AO Labs fallback commit c4e49b7; figures proofs/figures/current-live-side.png and current-live-reference-overlay.png; paper proofs/wavevis-system-architecture.pdf; live fallback asset index-30H0mG2n.js.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Prior-Fix Preservation, Human-Outcome Verification, and Acknowledged Defect Repair rules applied; no new AGENTS/Spec rule added because the failure class is already covered.","title":"WaveVis terminal curl and lateral carrier tightened on fallback","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"Fallback bundle now serves the generated-profile side view with 4928 rendered nodes, 9700 rendered edges, zero rendered-neighbor residual, zero bowl pockets, startup side aspect 1.6657, max height 13.42, and max tensile strain 3.96.","codex_change":"Changed the inverse-sheet default from the stored custom trace to the generated Moana lip/body profile, lowered the generated lip/throat profile within the passing shape gate, narrowed the side-view focus rows, dimmed the projected surface/nodes/off-center rows, regenerated the WaveVis paper figures/PDF, and rejected stronger dip candidates that crossed the long-strip side-shape gate.","commit":"","complaint":"Alan told Codex to keep going after rejecting the WaveVis curl/dip as still not close enough.","created_at":"2026-06-17T01:13:01.152739+00:00","issue":"The previous custom-trace default and first generated pass still read too much like a barrel/canopy in the full side view; the curl/dip had to be judged from the rendered side artifact, not only the centerline math.","kind":"change_issue","lane":"ao_labs","provenance":"WaveVis commit f2534af; AO Labs fallback commit dee43ed; screenshots _verification/curl-dip-repair-7-live; paper proofs/wavevis-system-architecture.pdf.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Prior-Fix Preservation, Human-Outcome Verification, and Acknowledged Defect Repair rules applied; no new AGENTS/Spec rule added because the failure class is already covered and this pass adds rendered comparison plus failed-candidate rejection.","title":"WaveVis generated curl profile deployed on fallback","url":"https://aolabs.io/wavevis/"},{"body":"Uncertainty: custom domain still fails TLS SEC_E_WRONG_PRINCIPAL; fallback route is the verified public route. This pass is closer to the reference curl/dip but is not claimed as photorealistic physical validation.","changed":"Fallback route now serves asset index-DE3SEKx3.js; live side render verified at desktop and mobile; live proof PDF and current-live side, reference, isometric, and cross-section figures match local dist SHA-256.","codex_change":"Deepened the stored open-curl reference trace, regenerated source figures and PDF, and dimmed the side-view projected surface, nodes, and side rows so the curl silhouette reads first while preserving the full linkage cells and connectors.","commit":"bc7787c / b474415","complaint":"Alan rejected the prior WaveVis curl/dip closeout with repeated question marks after saying the shape was still not close enough.","created_at":"2026-06-16T17:58:17.354595+00:00","issue":"The visible side view still read as a gray swept canopy with a weak and kinked curl, even though the previous geometry gates passed.","kind":"change_issue","lane":"ao_labs","provenance":"WaveVis commit bc7787c; AO Labs fallback commit b474415; check:geometry; build; paper compile; live screenshots in _verification/curl-dip-repair-4-live.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry Outcome, Prior-Fix Preservation, Human-Outcome Verification, and Acknowledged Defect Repair rules applied; no new AGENTS/Spec rule added because the failure class is already covered and this pass adds the concrete rendered check.","title":"WaveVis deeper curl silhouette deployed on fallback","url":"https://aolabs.io/wavevis/"},{"body":"","changed":"wavevis main commit 16c38b0; aolabs-site fallback commit ea257d5; live fallback serves index-B6iJ5y7m.js; live PDF and current-live side/reference/isometric/cross-section figures match dist by SHA-256.","codex_change":"Updated the stored custom profile trace and matching proof overlay to produce a heavier rounded cap and deeper bounded pendant return; regenerated source-rendered proof figures and rebuilt the architecture PDF; deployed the WaveVis Pages bundle and mirrored the same dist to aolabs.io/wavevis.","commit":"","complaint":"Alan said the WaveVis curl/dip was not that great after the previous closer shape.","created_at":"2026-06-16T15:37:58.254193+00:00","issue":"The visible side-view curl still read too weak; an aggressive dip trace initially created bowl-pocket failures, so the repair needed a stronger bounded pendant return without losing full linkage visibility.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread complaint on 2026-06-16; npm run check:geometry; npm run build; local and live Chrome screenshots at desktop 1365x900 and mobile 390x844; curl/TLS checks.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry Outcome, Prior-Fix Preservation, Mechanism Integrity, and Acknowledged Defect Repair rules covered this repair; no new Spec rule was needed.","title":"WaveVis curl dip profile repaired on fallback","url":""},{"body":"Snapshot-bound note for the June 16 deployed Imagineer ops and paper rows.","changed":"imagineer_ops now reports active_listing_last_checked_at 2026-06-16T13:14:24+00:00; imagineer_paper now serves SHA256 95805668F6C9618CC09A8BFF30100359F3F0C27C032399BA020522323F0B27A5; progress_summary records the post-deploy scan.","codex_change":"Bound the deployed Imagineer profile/PDF refresh to the latest Progress snapshot after verifying production served the June 16 API state and matching PDF hash.","commit":"624bb9d","complaint":"Automation requested that the live Imagineer profile, source graph, lead gate, paper, and Progress record be refreshed from current evidence.","created_at":"2026-06-16T13:28:20.136135+00:00","issue":"After deployment, the Progress scan changed Imagineer ops and paper rows; those rows needed the June 16 prompt-grounded issue note attached to the same snapshot rather than only the earlier pre-deploy scan.","kind":"change_issue","lane":"imagineer","provenance":"Post-deploy Progress snapshot e0d2da6ba9182430 at 2026-06-16T13:27:03.562920+00:00; live API/PDF checks; desktop/mobile Playwright checks; commit 624bb9d; Railway deployment cdb975f3-4464-4088-a269-31948a52f54d.","snapshot_id":"e0d2da6ba9182430","source_ids":["imagineer_ops","imagineer_paper","progress_summary"],"spec_note":"Existing rules covered the issue; this is a snapshot-bound Progress note, not a new Spec revision.","title":"Imagineer June 16 live deployment verified","url":"https://imagineer.aolabs.io/profile.html"},{"body":"One verified lead remains Principal Ride Development Engineer, Design Assurance, Walt Disney Imagineering, Glendale. Research queue remains source-state only: PhD export reachable with FluxCell/EPM/pneumatic-mechanical/overhang notes; WaveVis fallback and proof PDF live; WaveVis custom domain certificate-blocked; FluxCell custom domain unresolved and fallback 404.","changed":"Live API now reports active_listing_last_checked_at 2026-06-16T13:14:24+00:00; live profile renders Jun 16 lead text, 67 sources, readiness 74/100, Principal signal 56/100, current FluxCell action, and six role-fit lanes; live paper.pdf hash matches the rebuilt local PDF.","codex_change":"Updated the bounded Imagineer refresh set for June 16 evidence, rebuilt imagineer-autonomous-position-system.pdf, committed and pushed the change, fast-forwarded the Railway-linked checkout, and deployed production.","commit":"624bb9d","complaint":"Automation requested a current live Imagineer profile and source-graph refresh from present evidence, with clicked Disney lead verification before any profile or paper decision.","created_at":"2026-06-16T13:25:52.884391+00:00","issue":"The live profile and manuscript still carried the June 15 checked-page and source-queue evidence while the June 16 run verified the same WDI lead, a fresh Progress snapshot, and a current WaveVis fallback proof route.","kind":"change_issue","lane":"imagineer","provenance":"Automation imagineer-profile-refresh on 2026-06-16; Progress snapshot 25635d437b6b0a2e; Disney Careers clicked destination HTTP 200; commit 624bb9d; Railway deployment cdb975f3-4464-4088-a269-31948a52f54d; desktop/mobile Playwright render checks.","snapshot_id":"25635d437b6b0a2e","source_ids":["imagineer_ops","imagineer_paper","progress_summary","phd_organization_doc","wavevis_home","wavevis_custom_domain"],"spec_note":"Existing lead-destination verification, source-of-truth, deployment, paper continuity, and Progress ledger rules covered this refresh; no new Spec rule was needed.","title":"Imagineer June 16 profile refresh deployed","url":"https://imagineer.aolabs.io/profile.html"},{"body":"","changed":"wavevis commits 48da088 and 6b7f585; fallback commits 0bd817a and 534fe14; live fallback now serves assets/index-DaV2q0i3.js; proof PDF and current-live figures hash-match the rebuilt local dist artifacts.","codex_change":"Retuned the stored open-curl trace to a fuller profile with a lower inner return, moved the side camera to a true side-on reference direction, reduced side-view rail dominance, regenerated proof figures and the architecture PDF, deployed the standalone build, and mirrored the exact bundle to aolabs.io/wavevis/.","commit":"wavevis 48da088,6b7f585; aolabs-site 0bd817a,534fe14","complaint":"Alan asked to get the WaveVis reference-wave shape even closer after the prior render still did not match the supplied Moana-like curl closely enough.","created_at":"2026-06-16T05:05:53.011881+00:00","issue":"The side view still read too much like a rail-defined mechanical tunnel instead of a fuller localized open curl, and the public fallback had to be kept current separately from the blocked custom domain.","kind":"change_issue","lane":"ao_labs","provenance":"Current thread request on 2026-06-16; npm run check:geometry; npm run build/deploy; live desktop/mobile Chrome screenshots; live fallback PDF/figure hash checks; custom-domain TLS check returned SEC_E_WRONG_PRINCIPAL.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, prior-fix-preservation, and human-outcome verification rules covered this repair; no new Spec rule was needed.","title":"WaveVis closer open-curl shape deployed to fallback","url":"https://aolabs.io/wavevis/"},{"body":"Alan said the WaveVis target shape was not even close and asked to match it perfectly. Codex retuned the inverse-sheet default to the stored broad open-curl trace, flipped the side camera to the reference-facing direction, reduced the tunnel-like rim dominance in the side render, preserved connector/cell invariants, rebuilt the architecture PDF, and deployed the fallback route.","changed":"WaveVis fallback served the new bundle index-BE-UAM7D.js; live PDF and current-live figures hash-matched local; custom domain remained blocked by SEC_E_WRONG_PRINCIPAL.","codex_change":"Changed the default inverse-sheet profile to the stored broad open-curl trace, made profileMode input explicit, flipped the side camera to the reference-facing direction, smoothed the side contour, reduced side-view rim dominance, kept full node/edge array and connector closure, regenerated the proof figures/PDF, and deployed the fallback bundle.","commit":"5c792ba; 1e5760f","complaint":"Alan said the rendered WaveVis shape was not even close and asked for a perfect match.","created_at":"2026-06-16T02:24:45.592970+00:00","issue":"The side view read like a thin swept sail/tunnel instead of the broad rounded Moana-like curl, while prior mechanism invariants had to stay intact.","kind":"change_issue","lane":"wavevis","provenance":"Codex thread, WaveVis commit 5c792ba, fallback commit 1e5760f, check:geometry pass, local/live Chrome screenshots, live hash checks.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry and prior-fix-preservation rules covered this repair; no new Spec rule was needed.","title":"WaveVis breaking-wave side-profile repair","url":"https://aolabs.io/wavevis/"},{"body":"Alan said the WaveVis shape still did not match and asked to make it perfect. The fallback route now serves the retuned broad open-curl linkage, rebuilt paper PDF, and reference-overlay figure; the custom domain remains blocked by certificate mismatch.","changed":"Live fallback now serves asset index-BV1uZh94.js, a broad open-curl Side view, rebuilt architecture PDF length 3838476, and current-live-reference-overlay.png length 38413. Custom domain HTTPS still fails SEC_E_WRONG_PRINCIPAL.","codex_change":"Retuned the inverse-sheet lip profile and height compensation, added a current-vs-reference overlay figure, tightened geometry gates, rebuilt figures/PDF, deployed gh-pages, and mirrored the fallback bundle.","commit":"wavevis 201eba3; aolabs-site 64876e7","complaint":"Alan said the WaveVis shape still did not match and asked why Codex would not match the shape, then asked to make it perfect.","created_at":"2026-06-15T21:13:06.237857+00:00","issue":"The human-facing side view still read as a wrong reference shape unless Codex compared the rendered full linkage to the target silhouette while preserving the mechanism.","kind":"change_issue","lane":"ao_labs","provenance":"wavevis commit 201eba3; aolabs-site commit 64876e7; npm run check:geometry; npm run build/deploy; live desktop/mobile screenshots; live PDF and overlay SHA256 match local.","snapshot_id":"","source_ids":["wavevis_home"],"spec_note":"Existing Reference-Geometry Outcome, Prior-Fix Preservation, Acknowledged Defect Repair, Paper Continuity, and Deployment rules covered this failure; no new Spec rule was needed.","title":"WaveVis broad-curl reference shape shipped","url":"https://aolabs.io/wavevis/"},{"body":"Alan said the WaveVis shape still did not match. Codex repaired the source target rather than only describing the mismatch: reduced over-inflated curl height, kept the left-tucked open throat, added a broad side-aspect gate, regenerated figures/PDF, deployed GitHub Pages, and mirrored the live aolabs.io fallback.","changed":"Live fallback serves index-Do5GIx1A.js; current side figure and PDF hashes match local; custom wavevis.aolabs.io still fails TLS SEC_E_WRONG_PRINCIPAL.","codex_change":"Reduced active curl height compensation, added side-overhang aspect bounds, preserved openThroatVisible and noVisibleDimplePocket checks, regenerated side/isometric/cross-section figures, rebuilt PDF, pushed WaveVis 692d686 and fallback 717e824.","commit":"wavevis 692d686; aolabs-site 717e824","complaint":"Alan asked why WaveVis would not match the shape after the previous repair still rendered too upright and chute-like.","created_at":"2026-06-15T18:40:31.307233+00:00","issue":"The prior acceptance gate verified absence of a pocket/chute but did not require the full side silhouette to be broad enough to read as the intended breaking-wave shape; the high-lip height compensation made the visible sheet too vertical.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; npm run check:geometry; local UI reload; live fallback asset/PDF/figure hash checks on 2026-06-15.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, human-outcome verification, prior-fix preservation, and fallback/custom-domain split rules cover this failure; no new Spec rule added.","title":"WaveVis broad open-throat curl repair live on fallback","url":"https://aolabs.io/wavevis/"},{"body":"Alan logged into Railway. Codex redeployed spec-app, fixed the seed order so the continuation-grade project-record contract sorts as latest, redeployed again, and verified live Spec summary, revision PDF, paper PDF, and paper source routes now expose the continuation-grade rule.","changed":"Live Spec summary now reports latest_revision.title = Continuation-grade project record contract. Live revision PDF contains the contract. Live /paper.pdf and /paper/source.md contain continuation-grade project-record language.","codex_change":"Used restored Railway auth, deployed spec-app, set the continuation-grade seed order to 1000049, committed 45f89b8, pushed, redeployed, and verified live routes.","commit":"spec 45f89b8","complaint":"The Spec record must actually publish the continuation-grade PDF/project-record lesson, not remain as a pushed-but-stale source change.","created_at":"2026-06-15T17:36:03.961710+00:00","issue":"The first redeploy merged the record but did not make it latest because the seed order was lower than later records; before Railway login, deployment was blocked by invalid_grant.","kind":"change_issue","lane":"source","provenance":"Railway status/deploy output; live Spec summary polling; revision PDF text extraction; paper PDF/source text extraction.","snapshot_id":"","source_ids":["spec_summary","spec_paper"],"spec_note":"The previous blocked Spec-publication state is resolved for this revision.","title":"Spec continuation-grade record live after Railway redeploy","url":"https://spec.aolabs.io/api/spec/summary"},{"body":"Verified Disney job ID 10134485 from the clicked destination page on June 15 at 9:14 AM ET; refreshed Progress, research queue, profile source fields, manuscript, and public PDF. No application, outreach, referral, Disney relationship, external validation, or completed prototype was created.","changed":"Updated active lead checked-at fields to 2026-06-15T13:14:03+00:00, refreshed the static profile sentence, updated manuscript evidence-lock language to the June 15 Progress scan and research queue state, rebuilt the PDF, pushed commit 89afd26, and deployed Railway production deployment 15602082-e4fb-4222-88a9-fdb6ae00103c.","codex_change":"Bounded edit set only: backend/app/services/imagineer_system.py, profile.html, manuscripts/imagineer_nature_style/main.tex, manuscripts/imagineer_nature_style/references.bib, and imagineer-autonomous-position-system.pdf.","commit":"89afd2607fb79e3b47f67917ea1047a4e2d3fc97","complaint":"Automation requested a current Imagineer profile refresh from live evidence with strict destination-page job verification and source-bound research queue handling.","created_at":"2026-06-15T13:23:06.751235+00:00","issue":"Previous live profile and paper state carried older Disney checked-at evidence; each run must poll leads and distinguish source-state from completed prototype progress.","kind":"profile_refresh","lane":"imagineer","provenance":"Progress scan 20d52b2a75b0f108 at 2026-06-15T13:12:23Z; Disney Careers destination HTTP 200 for 10134485; older Disney 10146734/93733641696 destination 404 Job Not Found; PhD export hash CD9388FE64A645DA39EAF5971089010A3EF3D3089D609174DA43C5E894EAB010; live PDF hash 5236241FAF39C17293EB7A2032C8D188C3E63B9180DA5037536A24C07BC82AF7.","snapshot_id":"20d52b2a75b0f108","source_ids":["imagineer_ops","imagineer_paper","progress_summary","phd_organization_doc"],"spec_note":"No new Spec rule needed; this run followed the existing lead destination verification, source-state honesty, paper continuity, and live deployment closure rules.","title":"Imagineer June 15 profile refresh deployed","url":"https://imagineer.aolabs.io/profile.html"},{"body":"","changed":"Live fallback now serves asset index-Ck9rH9VD.js; old index-n1nmQkPB.js is 404; live architecture PDF SHA256 matches local 08C86E0FBE859771710CEF822A334E3DF5FBE21CAE249ABBC5F870EA13250C5F; public current-live figure routes return 200. Custom domain still fails TLS with SEC_E_WRONG_PRINCIPAL.","codex_change":"Retuned the generated terminal lip geometry, added terminalFaceHasRun to the source and regression checker, regenerated source-rendered side/isometric/cross-section figures, rebuilt the architecture PDF, published the WaveVis app gh-pages branch, and mirrored the new bundle plus PDF/figures to aolabs.io/wavevis.","commit":"d2ac23e; aolabs-site 46c821a","complaint":"Alan asked to continue work on wavevis.aolabs.io after repeated visible failures around cavities, dimples, side walls, stale fallback publication, and claims that outpaced the rendered mechanism.","created_at":"2026-06-15T04:53:45.056707+00:00","issue":"WaveVis needed the actual public artifact to improve without undoing the preserved mechanism: remove the closed under-lip pocket and near-vertical chute failure, keep the full linkage array visible, preserve side/cross-section separation and connector invariants, publish the fallback route Alan can use, and keep exact Moana-reference matching open rather than overclaimed.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; WaveVis commit d2ac23e; aolabs-site fallback commit 46c821a; npm run check:geometry; npm run deploy; GitHub Pages build 27524754420; live curl/PDF hash checks on 2026-06-15 12:51 AM ET.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis/Progress rules apply: verify the human-facing rendered artifact and mechanism invariants, keep fallback/custom-domain health separate, update/check the architecture paper, and do not claim exact reference match from code intent alone.","title":"WaveVis terminal-lip repair and fallback publication","url":"https://aolabs.io/wavevis/"},{"body":"Alan asked for the WaveVis PDF to carry the whole restart context for a fresh WaveVis chat. Codex expanded the architecture PDF, mirrored the fallback PDF, added the continuation-grade project-record rule to AGENTS/Spec seed, and updated the Spec paper source/PDF locally. WaveVis fallback PDF is live. Spec source is pushed but live Spec is still stale because Railway auth is expired and auto-deploy has not picked up the commit.","changed":"Live WaveVis fallback PDF hash A73F9BC87D1F2DA9865D75D04D31895BA5B00946AF63B2E9AA276CCA9D2B9160 includes fresh-chat start, build/deploy runbook, verified/open state, and simulator-not-prototype caveat. Spec live still shows 2026-06-12 after polling.","codex_change":"Expanded WaveVis architecture PDF, mirrored the AO Labs fallback PDF, added the Continuation-Grade Project Record Rule to AGENTS/Spec seed, updated Spec paper source/PDF, and pushed WaveVis bbe4297, AO Labs fallback a5ba003, Spec c93855d.","commit":"wavevis bbe4297; site a5ba003; spec c93855d","complaint":"The PDF must describe everything needed for a new WaveVis chat to continue without Alan re-teaching current state, source files, resources, and open defects.","created_at":"2026-06-14T16:00:28.949160+00:00","issue":"The previous architecture record was not sufficient as a restart handoff, and Spec publication can remain stale unless deploy verification is explicit.","kind":"change_issue","lane":"source","provenance":"Current thread; AGENTS.md:1233; WaveVis PDF hash/text checks; Spec summary polling; Railway invalid_grant.","snapshot_id":"","source_ids":["wavevis_fallback","wavevis_custom_domain","spec_summary","spec_paper"],"spec_note":"Continuation-grade project records are now local and pushed in Spec seed; live Spec publication remains blocked until Railway auth/deploy recovers.","title":"WaveVis architecture PDF made continuation-grade","url":"https://aolabs.io/wavevis/proofs/wavevis-system-architecture.pdf"},{"body":"Disney job ID 10134485 reverified from the clicked Disney Careers page on 2026-06-14 at 9:16 AM ET. Source, profile copy, manuscript, references, and PDF were updated and pushed in commit 2cdd7a1. Railway CLI deploy is blocked by invalid_grant / login required, so live profile and paper routes still serve older June 12 evidence.","changed":"Updated lead checked-at evidence to 2026-06-14 9:16 AM ET, preserved the active Disney lead, kept expired job ID 10146734 reference-only, recorded current Progress counts, PhD queue freshness, WaveVis fallback health, WaveVis custom-domain certificate block, and FluxCell DNS boundary.","codex_change":"Edited backend/app/services/imagineer_system.py, profile.html, manuscripts/imagineer_nature_style/main.tex, manuscripts/imagineer_nature_style/references.bib, rebuilt imagineer-autonomous-position-system.pdf, committed and pushed 2cdd7a1, fast-forwarded the canonical local checkout, and verified live routes stayed stale after three polls.","commit":"2cdd7a1","complaint":"Automation requested a current Imagineer profile/source-graph refresh from live evidence, with clicked job destination verification before any profile or paper decision.","created_at":"2026-06-14T13:24:27.312850+00:00","issue":"The verified source update exists locally and on GitHub, but the public Imagineer deployment remains stale because Railway OAuth is expired and no deployment token is configured.","kind":"blocked_deploy","lane":"imagineer","provenance":"Progress snapshot 437bd70dfbd9220e; Disney Careers browser check; live route polls through 2026-06-14 9:23 AM ET; Railway CLI invalid_grant.","snapshot_id":"437bd70dfbd9220e","source_ids":["imagineer_ops","imagineer_paper","phd_organization_doc","wavevis_home","wavevis_custom_domain"],"spec_note":"No new Spec rule: the existing deployment and job-lead destination verification rules already covered this failure mode; this run applied them and logged the blocked public state.","title":"Imagineer June 14 lead refresh blocked from live deploy","url":"https://imagineer.aolabs.io/profile.html"},{"body":"","changed":"Live aolabs.io/wavevis now serves bundle index-n1nmQkPB.js. Browser screenshots verified side, slice, and isometric views: full array visible, curled lip visible from side, flat perimeter present, no visible side wall filling the tube in the tested preset, and cross-section remains separate.","codex_change":"Fixed side rendering so side is a camera view of the full 3D linkage array, restored full-grid visibility in isometric instead of side-view scoping, tightened the camera fit for the taller default wave, mirrored the new built bundle to aolabs.io/wavevis, and verified the architecture PDF route remains live.","commit":"18d2c03; aolabs-site 4d1a3c9","complaint":"Alan said WaveVis still showed cavities, dimples, side walls covering the tube/curl, zigzags, missing full linkage cells, and side view behaving like a cross section instead of the side of the 3D array.","created_at":"2026-06-14T06:39:06.162576+00:00","issue":"WaveVis needed the human-facing render to preserve the mechanism while moving toward a localized Moana-like plunging wave: flat perimeter, full rectangular linkage array, each interior cell connected through four legs, side/cross-section separation, no side wall covering the underside curl, no hidden broken parts, and no stale public fallback bundle.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread; WaveVis commit 18d2c03; aolabs-site fallback commit 4d1a3c9; npm run build/deploy; check-inverse-sheet; live public screenshots and PDF HEAD check on 2026-06-14.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Reusable lesson: WaveVis reference-geometry work is not done until the rendered full linkage sheet in the actual public route preserves mechanism cells, side/cross separation, no-wall/no-cavity constraints, and prior controls while visibly moving toward the Moana wave reference.","title":"WaveVis full-array side view and Moana-wave repair","url":"https://aolabs.io/wavevis/"}],"ledger":[{"kind":"event","created_at":"2026-06-25T06:30:52.402656+00:00","reason":null,"event":{"body":"","changed":"wavevis_home now serves bundle index-D2SNY_KY.js and the updated 6778446-byte architecture PDF on https://aolabs.io/wavevis/; http://wavevis.aolabs.io/ serves the same bundle/PDF; https://wavevis.aolabs.io/ remains blocked by certificate hostname mismatch.","codex_change":"Added a front-only readable projection with reduced front wire density and faint outline trace; regenerated side, isometric, front, and top evidence figures; updated the architecture PDF to state the front-reference mismatch remains open; preserved geometry invariant checks and deployed standalone plus fallback bundles.","commit":"716f49c / 5bf177d","complaint":"Alan told Codex to keep working on the WaveVis simulation from the June 24 smooth breaking-wave references and not stop until steered; the visible front/readable render still carried a jagged trace and the public routes had to stay current.","created_at":"2026-06-25T06:30:52.402656+00:00","issue":"WaveVis needed another reference-geometry pass that improved the front readable view without undoing the prior side/top readable surface, mechanism checks, paper handoff, or fallback-route parity.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation; user-supplied June 24 reference PNGs; WaveVis commit 716f49c; fallback commit 5bf177d; public route checks 2026-06-25 2:28 AM EDT.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Uses existing WaveVis Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Mechanism Integrity, Deployment, Progress ledger, and Continuous Paper rules; no new Spec rule needed because these rules already cover the failure.","title":"WaveVis front readable reference repair shipped","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T06:32:04.301496+00:00","reason":null,"snapshot":{"id":"e62ae0af6ebfc433","createdAt":"2026-06-25T06:32:04.301496+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T06:31:17.893495+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T06:31:18.022213+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T06:31:18.121066+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T06:31:18.249975+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T06:31:18.340315+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T06:31:18.466152+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T06:31:18.563071+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T06:31:18.589066+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T06:31:18.690015+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T06:31:18.718121+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T06:31:18.815049+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T06:31:18.920645+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T06:31:19.009148+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T06:31:19.039159+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T06:31:19.149769+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T06:31:19.258Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T06:31:19.268890+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T06:31:19.319590+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T06:31:19.426167+00:00","ok":true,"statusCode":200,"bytes":882000,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T05:31:16.750914+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":964},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:31:21.877148+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T06:31:21.916109+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T06:31:27.545836+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T06:31:27.664844+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T06:31:27.782804+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T06:31:27.967492+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T06:31:28.067450+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:31:28.126521+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T06:31:28.213800+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:31:28.359432+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T06:31:28.477519+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T06:31:28.582847+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T06:31:28.607122+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T06:31:28.688198+00:00","ok":true,"statusCode":200,"bytes":6919,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T06:31:28.794634+00:00","ok":true,"statusCode":200,"bytes":22182,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:31:29.364390+00:00","ok":true,"statusCode":200,"bytes":225714,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T06:31:29.430921+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T06:31:29.534093+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T06:31:37.534535+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T06:31:45.029261+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T06:31:52.632294+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T06:32:00.392347+00:00","ok":true,"statusCode":200,"bytes":933823,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:32:00.653449+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T06:32:00.695339+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T06:32:00.813804+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T06:32:00.906670+00:00","ok":true,"statusCode":200,"bytes":618,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:32:00.961246+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T06:32:01.170501+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T06:32:01.245223+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T06:32:01.324320+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T06:32:01.365688+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:32:01.464125+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T06:32:01.542463+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T06:32:01.688656+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T06:32:01.801450+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T06:32:02.290Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T06:32:02.301946+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T06:32:02.637653+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T06:32:02.738068+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T06:32:02.865054+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:32:02.966322+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T06:32:03.076857+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T06:32:03.185609+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T06:32:03.312142+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T06:32:03.429101+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T06:32:03.560853+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T06:32:03.688539+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T06:32:03.830557+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T06:32:03.972410+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T06:32:04.112071+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T06:38:07.775183+00:00","reason":null,"event":{"body":"Imagineer no longer asks Alan to type source material into Imagineer. PhD is the intake; Imagineer reads PhD source state into the career/money/car surface.","changed":"Live imagineer.aolabs.io and aolabs.io/imagineer now show PhD source intake, one Open phd action, no input controls, no proof_capture API object, and a 225762-byte updated paper PDF; ops-check reports 47 PhD notes and 133 files without raw note text.","codex_change":"Removed the visible manual proof form and proof upload routes, added PhD app-state/file source reads with counts, freshness, and public-safe topic flags, kept one Open phd primary action, updated the backend API, rebuilt the paper PDF, mirrored the fallback route, deployed Railway, and verified custom/fallback desktop-mobile behavior.","commit":"8d32056 / 227f276","complaint":"Alan corrected the workflow: he will most likely input only into PhD, and Imagineer should source from PhD and related AO Labs state instead of requiring manual Imagineer input.","created_at":"2026-06-25T06:38:07.775183+00:00","issue":"The previous Imagineer proof-capture form created a second intake surface and made Alan carry the burden of deciding where to type career evidence.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread on 2026-06-25; live API and rendered browser checks; PDF render inspection; commits 8d32056 and 227f276; Railway deploy 526bfddc-09c8-434c-a1ea-358a0fb2ba2f.","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","phd_home","progress_summary","cv_pdf","a3_queue_snapshot"],"spec_note":"No new Spec clause needed; this implements the existing Brain/PhD source accommodation, Primary Path, Rejected Feature Removal, Human Outcome Verification, Continuous Paper, and Progress Prompt Ledger rules.","title":"Imagineer switched to PhD source intake","url":"https://imagineer.aolabs.io/"}},{"kind":"scan","created_at":"2026-06-25T06:39:15.293081+00:00","reason":null,"snapshot":{"id":"922348e5cc66381a","createdAt":"2026-06-25T06:39:15.293081+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T06:38:28.129884+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T06:38:28.254103+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T06:38:28.412326+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T06:38:28.418557+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T06:38:28.514720+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T06:38:28.619836+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T06:38:28.725793+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T06:38:28.732735+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T06:38:28.825862+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T06:38:28.833014+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T06:38:28.934323+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T06:38:29.065141+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T06:38:29.159309+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T06:38:29.165957+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T06:38:29.260591+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T06:38:29.348Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T06:38:29.358408+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T06:38:29.411777+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T06:38:29.514375+00:00","ok":true,"statusCode":200,"bytes":886436,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T06:32:04.301496+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":965},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:38:31.850398+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T06:38:31.891514+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T06:38:41.187256+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T06:38:41.201393+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T06:38:41.297866+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T06:38:41.436274+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T06:38:41.532898+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:38:41.632184+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T06:38:41.690424+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:38:41.701434+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T06:38:41.706179+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T06:38:41.801005+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T06:38:41.807863+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T06:38:41.905180+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T06:38:41.979673+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:38:42.731011+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T06:38:42.813717+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T06:38:42.912204+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T06:38:50.464578+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T06:38:57.683665+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T06:39:05.218975+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T06:39:12.337400+00:00","ok":true,"statusCode":200,"bytes":932785,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:39:12.632027+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T06:39:12.701092+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T06:39:12.714999+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T06:39:12.784458+00:00","ok":true,"statusCode":200,"bytes":618,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:39:12.837604+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T06:39:12.939107+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T06:39:13.009316+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T06:39:13.067573+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T06:39:13.133727+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:39:13.241047+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T06:39:13.328226+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T06:39:13.340111+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T06:39:13.414401+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T06:39:13.905Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T06:39:13.918252+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T06:39:14.252656+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T06:39:14.342899+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T06:39:14.355399+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T06:39:14.443194+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T06:39:14.555236+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T06:39:14.659801+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T06:39:14.792412+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T06:39:14.804751+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T06:39:14.920852+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T06:39:15.026126+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T06:39:15.160464+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T06:39:15.172513+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T06:39:15.184207+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"scan","created_at":"2026-06-25T07:18:23.495260+00:00","reason":null,"snapshot":{"id":"3ac6ee082ffa7d5b","createdAt":"2026-06-25T07:18:23.495260+00:00","reason":"scheduled","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","relay_intent_7d","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T07:17:36.068578+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T07:17:36.202319+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T07:17:36.290366+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T07:17:36.436010+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T07:17:36.528537+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T07:17:36.641307+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T07:17:36.747759+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T07:17:36.770792+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T07:17:36.864538+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T07:17:36.891957+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T07:17:36.980183+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T07:17:37.120263+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T07:17:37.211093+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T07:17:37.233571+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T07:17:37.341167+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T07:17:37.435Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T07:17:37.446916+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T07:17:37.474073+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T07:17:37.553432+00:00","ok":true,"statusCode":200,"bytes":886474,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T06:39:15.293081+00:00","healthyCount":62,"sourceCount":67,"changedCount":9,"snapshotCount":966},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:17:39.980095+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T07:17:40.040951+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T07:17:46.435408+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T07:17:46.587635+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T07:17:46.692610+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T07:17:46.832534+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T07:17:46.928622+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:17:47.022660+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T07:17:47.105952+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:17:47.258618+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T07:17:47.263618+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T07:17:47.371269+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T07:17:47.398298+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T07:17:47.481429+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T07:17:47.560656+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:17:48.288674+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T07:17:48.349182+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T07:17:48.450689+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T07:17:56.244004+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T07:18:04.111623+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T07:18:11.917473+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T07:18:19.312106+00:00","ok":true,"statusCode":200,"bytes":932290,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:18:19.558211+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T07:18:19.649626+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T07:18:19.787548+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T07:18:19.858177+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:18:19.908473+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T07:18:20.138294+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T07:18:20.217079+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T07:18:20.279665+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T07:18:20.318737+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:18:20.407548+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T07:18:20.472211+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T07:18:20.618071+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T07:18:20.707417+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T07:18:21.210Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T07:18:21.222927+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T07:18:21.550883+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T07:18:21.645719+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T07:18:21.790323+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T07:18:21.869888+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T07:18:21.988674+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T07:18:22.070678+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T07:18:22.202173+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T07:18:22.599183+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T07:18:22.706656+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T07:18:22.839570+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T07:18:22.973913+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T07:18:23.146962+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T07:18:23.286022+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T08:00:18.838929+00:00","reason":null,"event":{"body":"","changed":"WaveVis commit 3dece04 and fallback commit e253325 serve bundle index-DcQ9BCi_.js; standalone HTTP and aolabs.io/wavevis fallback return the 7089482-byte architecture PDF. Live screenshots verify side/top/isometric preservation and front shelf removal, but the front cap still remains an open mismatch against the June 24 reference.","codex_change":"Removed the detached front-cap geometry path, kept the front view on the same continuous readable surface with denser terminal contours, updated the guard to forbid the pasted-cap layer, refreshed live figures and the architecture PDF, and deployed the standalone and AO Labs fallback bundles.","commit":"3dece04 / e253325","complaint":"Alan supplied the June 24 breaking-wave references, said to remember them, and told Codex to keep working instead of stopping while the simulator still missed the visible target.","created_at":"2026-06-25T08:00:18.838929+00:00","issue":"The previous front-view repair path risked a pasted raised shelf or tower-like cap while WaveVis still needed a smooth continuous gridded breaking-wave read, preserved mechanism checks, public fallback parity, and honest open-reference status.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread 2026-06-25; local and live screenshots in _verification/live-sim; npm run build; npm run check:geometry; rendered architecture PDF pages 13-16; HTTPS curl certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; no new Spec clause was added in this checkpoint.","title":"WaveVis continuous front contour checkpoint shipped","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T08:01:32.854863+00:00","reason":null,"snapshot":{"id":"d618ba24964b9690","createdAt":"2026-06-25T08:01:32.854863+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T08:00:45.896989+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T08:00:46.044847+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T08:00:46.157954+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T08:00:46.297015+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T08:00:46.395775+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T08:00:46.496066+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T08:00:46.596428+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T08:00:46.629350+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T08:00:46.716791+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T08:00:46.740752+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T08:00:46.828878+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T08:00:46.929871+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T08:00:47.021942+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T08:00:47.050700+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T08:00:47.146678+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T08:00:47.238Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T08:00:47.248755+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T08:00:47.300497+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T08:00:47.382723+00:00","ok":true,"statusCode":200,"bytes":887642,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T07:18:23.495260+00:00","healthyCount":62,"sourceCount":67,"changedCount":9,"snapshotCount":967},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:00:49.674472+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T08:00:49.739244+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T08:00:57.343437+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T08:00:57.492879+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T08:00:57.598576+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T08:00:57.832020+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T08:00:57.922011+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:00:57.986845+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T08:00:58.042029+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:00:58.192952+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T08:00:58.326681+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T08:00:58.429895+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T08:00:58.458203+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T08:00:58.554178+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T08:00:58.666732+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:00:59.495629+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T08:00:59.582665+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T08:00:59.678716+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T08:01:07.076179+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T08:01:14.187575+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T08:01:21.373905+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T08:01:28.451965+00:00","ok":true,"statusCode":200,"bytes":932725,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:01:28.736981+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T08:01:28.798401+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T08:01:28.937467+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T08:01:29.033045+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:01:29.070755+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T08:01:29.319900+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T08:01:29.394037+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T08:01:29.480525+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T08:01:29.521018+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:01:29.603251+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T08:01:29.663492+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T08:01:30.026549+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T08:01:30.142649+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T08:01:30.686Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T08:01:30.700143+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T08:01:31.038846+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T08:01:31.135617+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T08:01:31.292269+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:01:31.394425+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T08:01:31.516850+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T08:01:31.598834+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T08:01:31.706827+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T08:01:31.984191+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T08:01:32.106030+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T08:01:32.244043+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T08:01:32.381480+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T08:01:32.524149+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T08:01:32.655349+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T08:13:57.440022+00:00","reason":null,"event":{"body":"","changed":"WaveVis commit 1c1fcdb and fallback commit c1d2aec now serve bundle index-Uz2BYMaQ.js and the 7085243-byte architecture PDF on standalone HTTP and aolabs.io/wavevis. Live front screenshots show the rounded-width center-dipping front lip; exact June 24 front-reference match remains open.","codex_change":"Reduced front body and cap pinch, kept terminal lip width rounded, made the lip underside dip through the center on the same continuous surface, tightened the renderer guard for rounded-width front lips, regenerated the front figure and architecture PDF, deployed standalone, and mirrored the fallback route.","commit":"1c1fcdb / c1d2aec","complaint":"Alan said to keep working on the WaveVis sim and not stop while the June 24 reference still was not matched.","created_at":"2026-06-25T08:13:57.440022+00:00","issue":"The continuous-front checkpoint removed the pasted shelf but still pinched the terminal lip too tightly, leaving the front view closer to a ribbed mound than the rounded front-cap cue in the supplied reference.","kind":"change_issue","lane":"imagineer","provenance":"Current Codex thread 2026-06-25; screenshots wavevis-live-fallback-front-c1d2aec.png and wavevis-live-standalone-front-1c1fcdb.png; npm run build; npm run check:geometry; rendered PDF pages 12-15; live curl route checks.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis rounded-width front lip deployed","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T08:15:38.613359+00:00","reason":null,"snapshot":{"id":"890ccf2ebb38bd20","createdAt":"2026-06-25T08:15:38.613359+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T08:14:51.688718+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T08:14:51.811005+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T08:14:51.908771+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T08:14:52.020667+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T08:14:52.108118+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T08:14:52.227772+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T08:14:52.340680+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T08:14:52.364071+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T08:14:52.481917+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T08:14:52.505801+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T08:14:52.593401+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T08:14:52.697587+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T08:14:52.787600+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T08:14:52.811820+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T08:14:52.915604+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T08:14:52.977Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T08:14:52.988898+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T08:14:53.040568+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T08:14:53.144002+00:00","ok":true,"statusCode":200,"bytes":918695,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T08:01:32.854863+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":968},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:14:55.126997+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T08:14:55.187947+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T08:15:02.591568+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T08:15:02.736108+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T08:15:02.857511+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T08:15:02.979427+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T08:15:03.080326+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:03.186759+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T08:15:03.251685+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:03.394655+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T08:15:03.399358+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T08:15:03.517433+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T08:15:03.548101+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T08:15:03.643446+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T08:15:03.721794+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:04.491915+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T08:15:04.550247+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T08:15:04.648132+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T08:15:12.346276+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T08:15:19.459086+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T08:15:27.032515+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T08:15:34.704109+00:00","ok":true,"statusCode":200,"bytes":932069,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:35.002859+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T08:15:35.072574+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T08:15:35.277333+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T08:15:35.365064+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:35.397091+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T08:15:35.526481+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T08:15:35.611715+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T08:15:35.676019+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T08:15:35.721372+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:35.796407+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T08:15:35.855226+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T08:15:35.984843+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T08:15:36.091591+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T08:15:36.612Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T08:15:36.625575+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T08:15:36.965854+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T08:15:37.062304+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T08:15:37.230303+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:15:37.330741+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T08:15:37.427465+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T08:15:37.534713+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T08:15:37.680365+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T08:15:37.820890+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T08:15:37.946895+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T08:15:38.076521+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T08:15:38.213731+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T08:15:38.346985+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T08:15:38.485663+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T08:27:36.242035+00:00","reason":null,"event":{"body":"","changed":"wavevis.aolabs.io source commit 4fb789b; aolabs.io fallback commit aafafc1; live routes serve index-DppofZic.js and the rebuilt 7,100,228 byte architecture PDF.","codex_change":"Reduced front wire and outline opacity, increased front readable-wire density, rebuilt the architecture PDF/front figure, deployed standalone WaveVis, and mirrored the AO Labs fallback route.","commit":"","complaint":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until the simulator visibly moves toward that target without regressing prior mechanism work.","created_at":"2026-06-25T08:27:36.242035+00:00","issue":"The previous front view had the better rounded-width lip but still read with a few heavy construction lines instead of the pale dense grid language of the reference. Exact June 24 front cap match remains open.","kind":"note","lane":"ao_labs","provenance":"Local build and npm run check:geometry passed; live standalone HTTP and AO Labs fallback headers verified; desktop front/side/top/isometric screenshots and mobile front/side screenshots captured under _verification/live-sim; HTTPS custom subdomain remains certificate-blocked.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis softened front grid deployed","url":""}},{"kind":"scan","created_at":"2026-06-25T08:28:41.223232+00:00","reason":null,"snapshot":{"id":"404e04c9a58a2cd6","createdAt":"2026-06-25T08:28:41.223232+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T08:27:54.663807+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T08:27:54.776742+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T08:27:54.887167+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T08:27:55.059939+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T08:27:55.159181+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T08:27:55.257256+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T08:27:55.356185+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T08:27:55.383783+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T08:27:55.482831+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T08:27:55.506256+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T08:27:55.617732+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T08:27:55.712363+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T08:27:55.807112+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T08:27:55.830854+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T08:27:55.928108+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T08:27:56.016Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T08:27:56.026683+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T08:27:56.053665+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T08:27:56.150419+00:00","ok":true,"statusCode":200,"bytes":918283,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T08:15:38.613359+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":969},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:27:58.487656+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T08:27:58.546985+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T08:28:06.002942+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T08:28:06.219691+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T08:28:06.336980+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T08:28:06.525522+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T08:28:06.619674+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:06.721926+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T08:28:06.784148+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:06.927374+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T08:28:06.932065+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T08:28:07.031368+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T08:28:07.061181+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T08:28:07.136873+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T08:28:07.236002+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:08.022201+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T08:28:08.108389+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T08:28:08.215749+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T08:28:15.524166+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T08:28:22.829998+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T08:28:30.237680+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T08:28:37.250835+00:00","ok":true,"statusCode":200,"bytes":931856,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:37.851176+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T08:28:37.917628+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T08:28:38.045288+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T08:28:38.113889+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:38.145351+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T08:28:38.344303+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T08:28:38.425833+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T08:28:38.493936+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T08:28:38.540195+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:38.620695+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T08:28:38.682365+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T08:28:38.816783+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T08:28:38.902450+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T08:28:39.318Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T08:28:39.330524+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T08:28:39.637777+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T08:28:39.734486+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T08:28:39.887679+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:28:39.985533+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T08:28:40.066660+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T08:28:40.168233+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T08:28:40.276504+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T08:28:40.412071+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T08:28:40.536971+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T08:28:40.660565+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T08:28:40.763215+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T08:28:40.900960+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T08:28:41.048511+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T08:29:44.689715+00:00","reason":null,"event":{"body":"","changed":"WaveVis source commit 4fb789b and fallback commit aafafc1 now serve index-DppofZic.js and the rebuilt 7,100,228 byte architecture PDF on standalone HTTP and aolabs.io/wavevis.","codex_change":"Reduced front wire and outline opacity, increased front readable-wire density, rebuilt the architecture PDF/front figure, deployed standalone WaveVis, and mirrored the AO Labs fallback route.","commit":"4fb789b / aafafc1","complaint":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until the simulator visibly moves toward that target without regressing prior mechanism work.","created_at":"2026-06-25T08:29:44.689715+00:00","issue":"The previous front view had the better rounded-width lip but still read with a few heavy construction lines instead of the pale dense grid language of the reference. Exact June 24 front cap match remains open.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation on 2026-06-25; user-supplied June 24 reference PNGs; npm run build; npm run check:geometry; live standalone/fallback curl checks; desktop front/side/top/isometric screenshots; mobile front/side screenshots; HTTPS custom-domain certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis softened front grid deployed","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T08:30:46.652050+00:00","reason":null,"snapshot":{"id":"70d0c18ea0d26869","createdAt":"2026-06-25T08:30:46.652050+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T08:30:02.885169+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T08:30:03.007013+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T08:30:03.136202+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T08:30:03.142187+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T08:30:03.228381+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T08:30:03.339654+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T08:30:03.439469+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T08:30:03.446191+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T08:30:03.537979+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T08:30:03.544477+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T08:30:03.631453+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T08:30:03.746446+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T08:30:03.841153+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T08:30:03.849073+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T08:30:03.947048+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T08:30:04.032Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T08:30:04.041731+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T08:30:04.073478+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T08:30:04.143497+00:00","ok":true,"statusCode":200,"bytes":917227,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T08:28:41.223232+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":970},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:06.185173+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T08:30:06.221805+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T08:30:12.715952+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T08:30:12.731179+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T08:30:12.839327+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T08:30:12.935559+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T08:30:13.027966+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:13.095281+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T08:30:13.170454+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:13.184117+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T08:30:13.188720+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T08:30:13.287783+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T08:30:13.293896+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T08:30:13.399367+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T08:30:13.503066+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:14.273416+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T08:30:14.352189+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T08:30:14.421453+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T08:30:21.852086+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T08:30:29.277285+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T08:30:36.569247+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T08:30:43.799907+00:00","ok":true,"statusCode":200,"bytes":928609,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:44.043950+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T08:30:44.085831+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T08:30:44.098185+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T08:30:44.186650+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:44.217712+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T08:30:44.316267+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T08:30:44.388226+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T08:30:44.451319+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T08:30:44.503100+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:44.596572+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T08:30:44.654473+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T08:30:44.665074+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T08:30:44.766830+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T08:30:45.233Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T08:30:45.245639+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T08:30:45.560193+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T08:30:45.653750+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T08:30:45.784690+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:30:45.852267+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T08:30:45.937314+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T08:30:46.039180+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T08:30:46.163137+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T08:30:46.175092+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T08:30:46.282310+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T08:30:46.405891+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T08:30:46.536696+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T08:30:46.549077+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T08:30:46.559440+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T08:46:42.546169+00:00","reason":null,"event":{"body":"","changed":"WaveVis source commit 5f489ca and fallback commit 726b6a0 now serve index-MU4DAtkJ.js and the rebuilt 7,140,132 byte architecture PDF on standalone HTTP and aolabs.io/wavevis.","codex_change":"Raised the front readable projection, narrowed the lifted cap, broadened the cap height falloff, softened the center-dipping lip and front outline, updated guard fragments, regenerated the front figure and architecture PDF, deployed standalone WaveVis, and mirrored the AO Labs fallback route.","commit":"5f489ca / 726b6a0","complaint":"Alan told Codex to keep working on the WaveVis simulator from the June 24 smooth gridded breaking-wave references and not stop while the front view still missed the target.","created_at":"2026-06-25T08:46:42.546169+00:00","issue":"The softened-grid checkpoint improved line weight, but the front view still read too flat and too broad compared with the rounded front lobe in the June 24 reference.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis continuation on 2026-06-25; user-supplied June 24 reference PNGs; npm run build; npm run check:geometry; rendered architecture PDF page 14; live standalone/fallback curl checks; desktop front/side/top/isometric screenshots; mobile front/side screenshots; HTTPS custom-domain certificate check.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Continuous Paper, Deployment, and Progress Prompt Ledger rules apply; this event records the open front-reference boundary rather than claiming completion.","title":"WaveVis front cap projection tuned","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T08:47:52.550947+00:00","reason":null,"snapshot":{"id":"9b32da3efc34e24b","createdAt":"2026-06-25T08:47:52.550947+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T08:47:06.901697+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T08:47:07.009311+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T08:47:07.167733+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T08:47:07.282664+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T08:47:07.369454+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T08:47:07.473308+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T08:47:07.566043+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T08:47:07.593570+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T08:47:07.682851+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T08:47:07.707856+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T08:47:07.819033+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T08:47:07.928998+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T08:47:08.014067+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T08:47:08.039717+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T08:47:08.144179+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T08:47:08.229Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T08:47:08.240802+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T08:47:08.268369+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T08:47:08.340032+00:00","ok":true,"statusCode":200,"bytes":917085,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T08:30:46.652050+00:00","healthyCount":62,"sourceCount":67,"changedCount":7,"snapshotCount":971},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:10.552833+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T08:47:10.590269+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T08:47:16.225181+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T08:47:16.417449+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T08:47:16.578205+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T08:47:16.803256+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T08:47:16.898284+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:16.988792+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T08:47:17.052041+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:17.205118+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T08:47:17.209745+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T08:47:17.317404+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T08:47:17.343150+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T08:47:17.437831+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T08:47:17.535806+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:18.248994+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T08:47:18.306872+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T08:47:18.381356+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T08:47:25.836287+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T08:47:33.141988+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T08:47:41.090760+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T08:47:48.470673+00:00","ok":true,"statusCode":200,"bytes":929674,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:48.765749+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T08:47:48.807748+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T08:47:49.029717+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T08:47:49.122054+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:49.178048+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T08:47:49.382997+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T08:47:49.456062+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T08:47:49.535029+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T08:47:49.574647+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:49.679032+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T08:47:49.769803+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T08:47:49.913839+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T08:47:50.008937+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T08:47:50.518Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T08:47:50.531599+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T08:47:50.854199+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T08:47:50.924018+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T08:47:51.051216+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T08:47:51.149409+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T08:47:51.241533+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T08:47:51.325823+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T08:47:51.569651+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T08:47:51.726789+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T08:47:51.848413+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T08:47:51.974803+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T08:47:52.107477+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T08:47:52.244796+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T08:47:52.373462+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T09:19:54.238797+00:00","reason":null,"event":{"body":"","changed":"wavevis.aolabs.io over HTTP now serves assets/index-mvchFbUI.js and the 7,095,015-byte architecture PDF; aolabs.io/wavevis serves the same bundle and PDF. HTTPS on wavevis.aolabs.io remains blocked by certificate trust.","codex_change":"Depth-tested the front grid against the readable lip, added a front-only pale lit surface cue, controlled cap contours, rebuilt the architecture PDF and current front figure, deployed the standalone gh-pages bundle, and mirrored the same bundle to the AO Labs fallback route.","commit":"71b9825/b33459b","complaint":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until the simulator moves toward the visible target instead of stopping at a code claim.","created_at":"2026-06-25T09:19:54.238797+00:00","issue":"The previous live front view still read as a center-knot or dimpled mound, and the standalone/fallback split could leave Alan looking at stale WaveVis bundles.","kind":"change_issue","lane":"ao_labs","provenance":"WaveVis commit 71b9825, AO Labs fallback commit b33459b, npm run check:geometry, npm run build, live HTTP/fallback route verification, desktop/mobile screenshots under _verification/live-sim.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing WaveVis reference-geometry, whole-shape regression, prior-fix preservation, human-outcome verification, continuous paper, deployment, and Progress ledger rules apply; this records an improved front-cap checkpoint with exact reference match still open.","title":"WaveVis front cap rendering tuned","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T09:21:05.261125+00:00","reason":null,"snapshot":{"id":"7e8da9db30dd77a7","createdAt":"2026-06-25T09:21:05.261125+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T09:20:16.652254+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T09:20:16.780307+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T09:20:16.868394+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T09:20:17.016394+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T09:20:17.117816+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T09:20:17.207721+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T09:20:17.295485+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T09:20:17.322391+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T09:20:17.410133+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T09:20:17.435416+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T09:20:17.548461+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T09:20:17.661337+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T09:20:17.751864+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T09:20:17.779949+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T09:20:17.891773+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T09:20:17.954Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T09:20:17.965041+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T09:20:18.017283+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T09:20:18.117432+00:00","ok":true,"statusCode":200,"bytes":916640,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T08:47:52.550947+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":972},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:20:20.415825+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T09:20:20.455630+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T09:20:30.073321+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T09:20:30.208391+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T09:20:30.330310+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T09:20:30.480661+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T09:20:30.573073+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:20:30.651139+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T09:20:30.727574+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:20:30.861817+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T09:20:30.966408+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T09:20:31.104514+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T09:20:31.128413+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T09:20:31.220043+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T09:20:31.315545+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:20:32.054465+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T09:20:32.133917+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T09:20:32.233811+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T09:20:39.598104+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T09:20:46.907922+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T09:20:54.477733+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T09:21:01.489751+00:00","ok":true,"statusCode":200,"bytes":929042,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:21:01.774816+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T09:21:01.820259+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T09:21:01.971914+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T09:21:02.059358+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:21:02.109539+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T09:21:02.234762+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T09:21:02.312857+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T09:21:02.381629+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T09:21:02.444308+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:21:02.545022+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T09:21:02.606418+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T09:21:02.770683+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T09:21:02.859926+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T09:21:03.333Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T09:21:03.345895+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T09:21:03.664155+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T09:21:03.756209+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T09:21:03.879621+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T09:21:03.973926+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T09:21:04.086204+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T09:21:04.183741+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T09:21:04.324303+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T09:21:04.446832+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T09:21:04.568021+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T09:21:04.700252+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T09:21:04.824782+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T09:21:04.965217+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T09:21:05.119115+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T11:11:32.079586+00:00","reason":null,"event":{"body":"","changed":"WaveVis commit 37ecabf and AO Labs fallback commit 61f66d9 now serve bundle index-9YtjKQwW.js; fallback asset returns 200 with 1332078 bytes and the architecture PDF returns 200 with 7008738 bytes. Exact reference match remains open.","codex_change":"Tuned the readable reference profile to a shorter lower lip, localized terminal lift, lightened the side/isometric guide grid, removed failed occluding and throat-window cutout experiments, updated render checks, regenerated current-live figures, rebuilt the architecture PDF, and deployed both standalone WaveVis and the AO Labs fallback.","commit":"37ecabf;61f66d9","complaint":"Alan told Codex to keep working and not stop because WaveVis had been left before the sim matched the June 24 breaking-wave references.","created_at":"2026-06-25T11:11:32.079586+00:00","issue":"The public side and isometric renders still read too much like a barrel or tunnel against the supplied smooth gridded breaking-wave references, while earlier fixes also had to preserve mechanism cells, connector invariants, side/cross-section separation, and fallback parity.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread, June 24 reference images, _verification/2026-06-24-wavevis-handoff.md, after112 local and live fallback screenshots, npm run check:geometry, npm run build, PDF render checks, WaveVis commit 37ecabf, fallback commit 61f66d9.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Reference-geometry work must preserve the mechanism and keep exact visual-match claims bounded until the human-facing side/isometric render matches the supplied target.","title":"WaveVis readable curl profile tuned","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T11:12:43.533361+00:00","reason":null,"snapshot":{"id":"310d76bbc33c3783","createdAt":"2026-06-25T11:12:43.533361+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T11:11:56.506150+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T11:11:56.633382+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T11:11:56.744493+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T11:11:56.963391+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T11:11:57.129456+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T11:11:57.298566+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T11:11:57.457427+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T11:11:57.482202+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T11:11:57.646948+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T11:11:57.670661+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T11:11:57.757859+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T11:11:57.882239+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T11:11:57.974178+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T11:11:57.997045+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T11:11:58.114046+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T11:11:58.196Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T11:11:58.207089+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T11:11:58.256127+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T11:11:58.356746+00:00","ok":true,"statusCode":200,"bytes":917635,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T09:21:05.261125+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":973},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:00.729155+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T11:12:00.790063+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T11:12:08.556247+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T11:12:08.716268+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T11:12:08.840209+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T11:12:08.991447+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T11:12:09.085956+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:09.177336+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T11:12:09.256374+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:09.420605+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T11:12:09.528718+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T11:12:09.627630+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T11:12:09.654727+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T11:12:09.754616+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T11:12:09.865419+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:10.628068+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T11:12:10.712320+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T11:12:10.810097+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T11:12:18.029844+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T11:12:25.197168+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T11:12:32.312520+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T11:12:39.534679+00:00","ok":true,"statusCode":200,"bytes":932062,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:39.814525+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T11:12:39.883392+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T11:12:40.018623+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T11:12:40.113834+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:40.171783+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T11:12:40.327058+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T11:12:40.422221+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T11:12:40.477643+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T11:12:40.542277+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:40.642408+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T11:12:40.723606+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T11:12:40.870104+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T11:12:40.979577+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T11:12:41.483Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T11:12:41.497129+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T11:12:41.828725+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T11:12:41.933039+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T11:12:42.079366+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:12:42.180061+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T11:12:42.270080+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T11:12:42.380636+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T11:12:42.527080+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T11:12:42.668020+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T11:12:42.770266+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T11:12:42.891157+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T11:12:43.020705+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T11:12:43.212018+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T11:12:43.356855+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T11:59:09.232898+00:00","reason":null,"event":{"body":"","changed":"WaveVis commit 879bf97 and AO Labs fallback commit 89a9d49 now serve asset index-B6aeCijC.js and architecture PDF size 7046545 bytes on the fallback route. Standalone HTTP is live; standalone HTTPS still fails certificate principal verification.","codex_change":"Updated the WaveVis readable surface/wire contract, preserved the side/isometric/front/top views, rebuilt proof figures, revised the architecture PDF to mark the exact-match boundary open, deployed standalone HTTP and mirrored the fallback route.","commit":"879bf97;89a9d49","complaint":"Alan told Codex to keep working on the WaveVis simulator from the 2026-06-24 smooth breaking-wave references and not stop at a partial or stale render.","created_at":"2026-06-25T11:59:09.232898+00:00","issue":"The prior public and paper state did not carry the latest readable full-sheet checkpoint, and the rendered geometry still needed explicit human-facing honesty: less dark/tunnel undercurl, preserved mechanism path, but still too barrel-like versus the smooth gridded plunging-wave reference.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex thread; _verification/2026-06-24-wavevis-handoff.md; June 24 reference PNGs; npm run check:geometry; npm run build; live fallback screenshots under _verification/live-sim/.","snapshot_id":"310d76bbc33c3783","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after130 readable surface checkpoint deployed","url":"https://aolabs.io/wavevis/?v=89a9d49"}},{"kind":"scan","created_at":"2026-06-25T12:00:18.837215+00:00","reason":null,"snapshot":{"id":"aeb1675898be53ef","createdAt":"2026-06-25T12:00:18.837215+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T11:59:30.644810+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T11:59:30.761321+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T11:59:30.909859+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T11:59:31.044700+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T11:59:31.146242+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T11:59:31.253373+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T11:59:31.355002+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T11:59:31.378167+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T11:59:31.476830+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T11:59:31.500394+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T11:59:31.600241+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T11:59:31.705584+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T11:59:31.792187+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T11:59:31.819589+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T11:59:31.924750+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T11:59:32.010Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T11:59:32.021979+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T11:59:32.076393+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T11:59:32.170072+00:00","ok":true,"statusCode":200,"bytes":916604,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T11:12:43.533361+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":974},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:59:34.207280+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T11:59:34.241891+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T11:59:41.992723+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T11:59:42.114800+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T11:59:42.229965+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T11:59:42.447211+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T11:59:42.540519+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:59:42.629638+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T11:59:42.709439+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:59:42.902497+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T11:59:42.906741+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T11:59:42.992973+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T11:59:43.017231+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T11:59:43.091451+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T11:59:43.177502+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T11:59:43.970390+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T11:59:44.050839+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T11:59:44.151579+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T11:59:51.861153+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T11:59:59.343167+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T12:00:07.528768+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T12:00:15.159928+00:00","ok":true,"statusCode":200,"bytes":936510,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:00:15.459597+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T12:00:15.508735+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T12:00:15.669815+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T12:00:15.760067+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:00:15.813138+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T12:00:15.936805+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T12:00:16.010751+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T12:00:16.065298+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T12:00:16.105051+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:00:16.181555+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T12:00:16.243181+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T12:00:16.387196+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T12:00:16.469361+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T12:00:16.973Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T12:00:16.984674+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T12:00:17.294413+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T12:00:17.393665+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T12:00:17.528506+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:00:17.619356+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T12:00:17.722687+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T12:00:17.829170+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T12:00:17.949751+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T12:00:18.089142+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T12:00:18.200854+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T12:00:18.317653+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T12:00:18.421705+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T12:00:18.557900+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T12:00:18.675053+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T12:01:07.258505+00:00","reason":null,"event":{"body":"","changed":"Fallback route serves after130 asset index-B6aeCijC.js and the 7046545-byte architecture PDF; standalone HTTP serves the same app; standalone HTTPS remains blocked by certificate principal mismatch.","codex_change":"Backfilled the after130 WaveVis deploy note to the current Progress snapshot after the fresh scan changed the snapshot id.","commit":"879bf97;89a9d49","complaint":"Alan asked Codex to keep working on WaveVis from the June 24 smooth breaking-wave target and not stop at stale or partial simulator work.","created_at":"2026-06-25T12:01:07.258505+00:00","issue":"Current Progress scan needs the latest WaveVis checkpoint attached to the changed rows: the live fallback is updated and readable, but the human-facing reference match remains open because the isometric render still reads too barrel-like.","kind":"source_issue","lane":"ao_labs","provenance":"Progress scan aeb1675898be53ef; WaveVis commit 879bf97; AO Labs fallback commit 89a9d49; live fallback screenshot verification.","snapshot_id":"aeb1675898be53ef","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after130 live changed-row note","url":"https://aolabs.io/wavevis/?v=89a9d49"}},{"kind":"event","created_at":"2026-06-25T12:34:26.751667+00:00","reason":null,"event":{"body":"","changed":"WaveVis after139 lowers and lengthens the smooth gridded surface proportions, adds Side/3D depth-write cleanup, localized crest and terminal lift, and a center-throat trace. Fallback now serves index-CWVhlxYJ.js and the 7017713-byte architecture PDF. Exact reference match remains open because the live 3D view still reads too barrel-like and the mechanism overlay remains jagged.","codex_change":"Patched LatticeViewer3D and the geometry contract, regenerated proof screenshots and architecture PDF, built, committed, pushed, deployed standalone gh-pages, mirrored the fallback to aolabs.io/wavevis, and captured live desktop/mobile surface and mechanism screenshots.","commit":"2c35197;4634a9a","complaint":"Alan told Codex to keep working on WaveVis from the June 24 smooth breaking-wave references and not stop at partial or stale simulator state.","created_at":"2026-06-25T12:34:26.751667+00:00","issue":"The after130 render was readable but still too barrel-like; the public fallback needed the next verified checkpoint with paper honesty and mechanism toggles preserved.","kind":"source_issue","lane":"ao_labs","provenance":"WaveVis commit 2c35197; AO Labs fallback commit 4634a9a; live fallback screenshots under _verification/live-sim; curl asset/PDF checks on 2026-06-25.","snapshot_id":"aeb1675898be53ef","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after139 readable-proportion checkpoint deployed","url":"https://aolabs.io/wavevis/?v=4634a9a"}},{"kind":"scan","created_at":"2026-06-25T12:35:38.245070+00:00","reason":null,"snapshot":{"id":"39d308560671616f","createdAt":"2026-06-25T12:35:38.245070+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T12:34:50.603399+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T12:34:50.725357+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T12:34:50.812200+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T12:34:50.936846+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T12:34:51.118220+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T12:34:51.212212+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T12:34:51.314754+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T12:34:51.337992+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T12:34:51.437978+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T12:34:51.465872+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T12:34:51.560853+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T12:34:51.684248+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T12:34:51.774293+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T12:34:51.799002+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T12:34:51.909392+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T12:34:51.992Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T12:34:52.003288+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T12:34:52.029738+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T12:34:52.121977+00:00","ok":true,"statusCode":200,"bytes":947437,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T12:00:18.837215+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":975},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:34:54.401898+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T12:34:54.436483+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T12:35:02.781569+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T12:35:02.922019+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T12:35:03.042293+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T12:35:03.242476+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T12:35:03.337124+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:03.403553+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T12:35:03.456503+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:03.654738+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T12:35:03.776856+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T12:35:03.863685+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T12:35:03.889145+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T12:35:03.989170+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T12:35:04.089366+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:04.830049+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T12:35:04.911938+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T12:35:05.015208+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T12:35:12.390671+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T12:35:19.850528+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T12:35:27.262777+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T12:35:34.313271+00:00","ok":true,"statusCode":200,"bytes":932691,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:34.597910+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T12:35:34.644951+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T12:35:34.801237+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T12:35:34.893881+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:34.944735+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T12:35:35.075520+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T12:35:35.169970+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T12:35:35.254286+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T12:35:35.319222+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:35.420685+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T12:35:35.509181+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T12:35:35.622422+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T12:35:35.735667+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T12:35:36.267Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T12:35:36.280657+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T12:35:36.621931+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T12:35:36.716179+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T12:35:36.869987+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T12:35:36.976609+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T12:35:37.087383+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T12:35:37.192174+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T12:35:37.300099+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T12:35:37.429833+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T12:35:37.536045+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T12:35:37.672275+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T12:35:37.801849+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T12:35:37.936409+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T12:35:38.076010+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T12:36:11.302605+00:00","reason":null,"event":{"body":"","changed":"aolabs.io/wavevis now serves the after139 bundle index-CWVhlxYJ.js and the 7017713-byte architecture PDF. Live fallback desktop/mobile screenshots show coherent Side, 3D, Front, and Top surface states with surface on and cells/connectors off; mechanism-only URLs still expose cells/connectors. The 3D render remains too barrel-like and mechanism overlay remains jagged versus the June 24 target.","codex_change":"Backfilled the after139 WaveVis deploy note to the current Progress snapshot after the fresh scan changed the snapshot id.","commit":"2c35197;4634a9a","complaint":"Alan told Codex to keep working on WaveVis from the June 24 smooth breaking-wave references and not stop at partial or stale simulator state.","created_at":"2026-06-25T12:36:11.302605+00:00","issue":"The fresh Progress scan saw wavevis_home changed after the after139 deploy. The changed row needs the current checkpoint attached: public fallback is updated, standalone HTTPS remains certificate-blocked, and exact visual match is still open.","kind":"source_issue","lane":"ao_labs","provenance":"Progress scan 39d308560671616f; WaveVis commit 2c35197; AO Labs fallback commit 4634a9a; live fallback screenshots and curl checks on 2026-06-25.","snapshot_id":"39d308560671616f","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis after139 live changed-row note","url":"https://aolabs.io/wavevis/?v=4634a9a"}},{"kind":"scan","created_at":"2026-06-25T13:14:08.245954+00:00","reason":null,"snapshot":{"id":"658ac18dc9dec6a5","createdAt":"2026-06-25T13:14:08.245954+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T13:13:20.783886+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T13:13:20.914908+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T13:13:21.046587+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T13:13:21.162143+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T13:13:21.266249+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T13:13:21.365624+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T13:13:21.468019+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T13:13:21.493380+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T13:13:21.604818+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T13:13:21.632361+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T13:13:21.735329+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T13:13:21.834877+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T13:13:21.922361+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T13:13:21.949990+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T13:13:22.065204+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T13:13:22.154Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T13:13:22.165061+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T13:13:22.215803+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T13:13:22.321652+00:00","ok":true,"statusCode":200,"bytes":946610,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T12:35:38.245070+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":976},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:13:24.615018+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T13:13:24.657483+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T13:13:31.873451+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T13:13:32.003693+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T13:13:32.111589+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T13:13:32.269304+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T13:13:32.369546+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:13:32.451648+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T13:13:32.531480+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:13:32.673512+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T13:13:32.678055+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T13:13:32.780013+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T13:13:32.804169+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T13:13:32.902961+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T13:13:33.005038+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:13:33.630082+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T13:13:33.688972+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T13:13:33.788380+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T13:13:41.532826+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T13:13:49.073495+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T13:13:56.523994+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T13:14:04.120804+00:00","ok":true,"statusCode":200,"bytes":929837,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:14:04.417555+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T13:14:04.465360+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T13:14:04.793950+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T13:14:04.879326+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:14:04.930864+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T13:14:05.078482+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T13:14:05.156873+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T13:14:05.247044+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T13:14:05.289785+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:14:05.397007+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T13:14:05.458822+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T13:14:05.589752+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T13:14:05.702223+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T13:14:06.284Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T13:14:06.297135+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T13:14:06.626191+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T13:14:06.725426+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T13:14:06.861963+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:14:06.968796+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T13:14:07.085738+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T13:14:07.189241+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T13:14:07.315269+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T13:14:07.457824+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T13:14:07.580066+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T13:14:07.702095+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T13:14:07.834240+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T13:14:07.977535+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T13:14:08.108847+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"scan","created_at":"2026-06-25T13:19:20.318759+00:00","reason":null,"snapshot":{"id":"1a9aec4ab30f32a3","createdAt":"2026-06-25T13:19:20.318759+00:00","reason":"scheduled","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T13:18:35.319252+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T13:18:35.349865+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T13:18:35.354034+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T13:18:35.718334+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T13:18:35.722187+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T13:18:35.725881+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T13:18:35.729528+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T13:18:35.735866+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T13:18:35.739673+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T13:18:35.745860+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T13:18:35.844168+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T13:18:35.850302+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T13:18:35.937332+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T13:18:35.943359+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T13:18:36.038527+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T13:18:36.128Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T13:18:36.139580+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T13:18:36.192566+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T13:18:36.262404+00:00","ok":true,"statusCode":200,"bytes":978303,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T13:14:08.245954+00:00","healthyCount":62,"sourceCount":67,"changedCount":7,"snapshotCount":977},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:18:38.955617+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T13:18:39.013770+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T13:18:46.971209+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T13:18:46.984819+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T13:18:46.997237+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T13:18:47.116438+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T13:18:47.190620+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:18:47.271022+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T13:18:47.352265+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:18:47.455070+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T13:18:47.459122+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T13:18:47.462905+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T13:18:47.469522+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T13:18:47.556978+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T13:18:47.658657+00:00","ok":true,"statusCode":200,"bytes":23061,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:18:48.374960+00:00","ok":true,"statusCode":200,"bytes":225762,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T13:18:48.457399+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T13:18:48.534767+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T13:18:55.805767+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T13:19:02.716780+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T13:19:10.081154+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T13:19:17.118489+00:00","ok":true,"statusCode":200,"bytes":934519,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:19:17.413508+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T13:19:17.454176+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T13:19:17.468519+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T13:19:17.534873+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:19:17.583780+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T13:19:17.683407+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T13:19:17.754790+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T13:19:17.820508+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T13:19:17.861868+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:19:17.954066+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T13:19:18.012632+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T13:19:18.025241+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T13:19:18.132347+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T13:19:18.595Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T13:19:18.608886+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T13:19:18.906815+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T13:19:19.000566+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T13:19:19.098860+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:19:19.195734+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T13:19:19.306187+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T13:19:19.419135+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T13:19:19.569923+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T13:19:19.687059+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T13:19:19.818002+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T13:19:19.952773+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T13:19:20.088903+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T13:19:20.101654+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T13:19:20.213901+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T13:28:58.485957+00:00","reason":null,"event":{"body":"Alan supplied the June 24 smooth gridded breaking-wave references and told Codex to keep working until stopped.","changed":"Observed source and public routes changed: wavevis.aolabs.io commit c5c1506, aolabs.io/wavevis fallback commit 67fb958, live fallback HTML now serves index-CugxmtXZ.js and the rebuilt 6743501 byte architecture PDF; live screenshots saved for 3D, Side, Front, Top, mobile, and mechanism overlays.","codex_change":"Changed WaveVis to use the richer source curl profile for the readable surface, narrowed the lateral envelope, tightened crest/terminal lift, lowered the 3D camera to expose the throat, added an isolated 3D throat trace, regenerated proof figures, and updated the architecture paper/PDF with bounded after160 claims.","commit":"wavevis:c5c1506;fallback:67fb958","complaint":"Alan rejected stopping on a still-mismatched WaveVis simulation and wanted the reference images treated as target truth instead of accepting barrel/tunnel-like near matches.","created_at":"2026-06-25T13:28:58.485957+00:00","issue":"Issue being solved: the readable WaveVis surface needed a closer smooth breaking-wave curl while preserving cells, connectors, side/front/top separation, mechanism URL gates, fallback parity, and honest open exact-match wording.","kind":"change_issue","lane":"ao_labs","provenance":"Current Codex WaveVis thread; local handoff _verification/2026-06-24-wavevis-handoff.md; commits c5c1506 and 67fb958; npm run check:geometry; live curl and browser screenshots on June 25, 2026.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"Existing Reference-Geometry, Whole-Shape Regression, Prior-Fix Preservation, Mechanism Integrity, and Human-Outcome Verification rules covered this failure mode; no new Spec rule was needed in this pass.","title":"WaveVis source-profile readable surface","url":"https://aolabs.io/wavevis/?tab=inverse&view=isometric&nocache=67fb958-2"}},{"kind":"scan","created_at":"2026-06-25T13:30:08.285890+00:00","reason":null,"snapshot":{"id":"d1efced47432f9c2","createdAt":"2026-06-25T13:30:08.285890+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T13:29:22.453172+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T13:29:22.595622+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T13:29:22.723431+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T13:29:22.854635+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T13:29:22.956172+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T13:29:23.067738+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T13:29:23.176374+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T13:29:23.200579+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T13:29:23.293993+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T13:29:23.321357+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T13:29:23.485573+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T13:29:23.588074+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T13:29:23.678281+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T13:29:23.804095+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T13:29:23.889283+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T13:29:23.986Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T13:29:23.997993+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T13:29:24.047774+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T13:29:24.151026+00:00","ok":true,"statusCode":200,"bytes":979121,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T13:19:20.318759+00:00","healthyCount":62,"sourceCount":67,"changedCount":7,"snapshotCount":978},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:29:26.139608+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T13:29:26.203875+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T13:29:32.235270+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T13:29:32.406716+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T13:29:32.526426+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T13:29:32.661118+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T13:29:32.760015+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:29:32.832444+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T13:29:32.894576+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:29:33.030296+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T13:29:33.035118+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T13:29:33.122931+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T13:29:33.147734+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T13:29:33.218830+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T13:29:33.299146+00:00","ok":true,"statusCode":200,"bytes":22912,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:29:33.836039+00:00","ok":true,"statusCode":200,"bytes":225418,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T13:29:33.913509+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T13:29:34.027153+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T13:29:41.617038+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T13:29:49.033205+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T13:29:56.694707+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T13:30:04.273850+00:00","ok":true,"statusCode":200,"bytes":933187,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:30:04.647300+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T13:30:04.693363+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T13:30:04.821075+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T13:30:04.923458+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:30:04.977526+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T13:30:05.105358+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T13:30:05.281106+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T13:30:05.362447+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T13:30:05.401262+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:30:05.502231+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T13:30:05.615956+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T13:30:05.744833+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T13:30:05.828059+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T13:30:06.225Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T13:30:06.237340+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T13:30:06.621380+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T13:30:06.717526+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T13:30:06.859448+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:30:06.967645+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T13:30:07.050257+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T13:30:07.161325+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T13:30:07.286977+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T13:30:07.418055+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T13:30:07.555308+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T13:30:07.688730+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T13:30:07.815868+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T13:30:07.965808+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T13:30:08.115254+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T13:52:25.803590+00:00","reason":null,"event":{"body":"","changed":"WaveVis source commit 75c3ef4 and fallback commit 68ecae4 are live on the AO Labs fallback route. The live fallback serves index-CPqEvwZs.js, the rebuilt 6,834,682 byte architecture PDF, current after163 side/isometric/front/top figures, and URL-gated cells/connectors overlays.","codex_change":"Kept the source-profile readable surface and mechanism overlay, slightly reduced 3D guide/throat trace opacity, softened the Top view terminal plan pinch, regenerated current live figures, rebuilt the architecture PDF, deployed WaveVis, and mirrored the new bundle/PDF to aolabs.io/wavevis.","commit":"wavevis:75c3ef4;fallback:68ecae4","complaint":"Alan told Codex to keep working on the WaveVis sim against the June 24 smooth gridded breaking-wave references and not stop before the deployed artifact improved.","created_at":"2026-06-25T13:52:25.803590+00:00","issue":"The after160 render was deployed and preserved the curl/throat, but the top view still ended in a harder triangular terminal pinch than the supplied top-view reference sequence, and the paper/source record still named after160.","kind":"note","lane":"ao_labs","provenance":"Local screenshots: _verification/live-sim/wavevis-local-*-after163-*.png. Live fallback screenshots: _verification/live-sim/wavevis-live-fallback-*-after163-68ecae4-*.png. Checks: npm run check:geometry, npm run build, pdflatex/biber/pdflatex/pdflatex, rendered PDF pages 12-15, Pages run 28174870069 success.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis top-footprint after163 checkpoint","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T13:55:36.350110+00:00","reason":null,"snapshot":{"id":"bbd66a65a0be5eeb","createdAt":"2026-06-25T13:55:36.350110+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T13:54:49.886224+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T13:54:50.020093+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T13:54:50.106116+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T13:54:50.239018+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T13:54:50.339045+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T13:54:50.460751+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T13:54:50.631281+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T13:54:50.658563+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T13:54:50.775410+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T13:54:50.807831+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T13:54:50.923986+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T13:54:51.018349+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T13:54:51.114069+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T13:54:51.141656+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T13:54:51.226072+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T13:54:51.312Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T13:54:51.324097+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T13:54:51.374221+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T13:54:51.471590+00:00","ok":true,"statusCode":200,"bytes":979037,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T13:30:08.285890+00:00","healthyCount":62,"sourceCount":67,"changedCount":9,"snapshotCount":979},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:54:54.139159+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T13:54:54.177501+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T13:55:00.609731+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T13:55:00.763103+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T13:55:00.916528+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T13:55:01.084303+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T13:55:01.180386+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:01.247704+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T13:55:01.305374+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:01.428050+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T13:55:01.550306+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T13:55:01.648351+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T13:55:01.671524+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T13:55:01.770801+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T13:55:01.869850+00:00","ok":true,"statusCode":200,"bytes":22895,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:02.694289+00:00","ok":true,"statusCode":200,"bytes":225418,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T13:55:02.771773+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T13:55:02.873708+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T13:55:10.625463+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T13:55:17.790122+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T13:55:25.067137+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T13:55:32.204554+00:00","ok":true,"statusCode":200,"bytes":931240,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:32.500628+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T13:55:32.541430+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T13:55:32.695880+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T13:55:32.784537+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:32.835284+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T13:55:33.090990+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T13:55:33.165743+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T13:55:33.246487+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T13:55:33.311424+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:33.412037+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T13:55:33.497107+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T13:55:33.633399+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T13:55:33.726009+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T13:55:34.261Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T13:55:34.275145+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T13:55:34.608122+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T13:55:34.707606+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T13:55:34.833891+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:55:34.938671+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T13:55:35.046150+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T13:55:35.162820+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T13:55:35.318692+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T13:55:35.441432+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T13:55:35.576790+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T13:55:35.702589+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T13:55:35.852857+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T13:55:36.029823+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T13:55:36.167476+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"scan","created_at":"2026-06-25T13:56:44.652236+00:00","reason":null,"snapshot":{"id":"2fe774a8c4aa74b6","createdAt":"2026-06-25T13:56:44.652236+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T13:56:00.586746+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T13:56:00.706247+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T13:56:00.806541+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T13:56:00.913146+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T13:56:01.012502+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T13:56:01.108419+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T13:56:01.210416+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T13:56:01.217496+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T13:56:01.325525+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T13:56:01.333203+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T13:56:01.463327+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T13:56:01.553164+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T13:56:01.642199+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T13:56:01.648319+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T13:56:01.755176+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T13:56:01.844Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T13:56:01.856079+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T13:56:01.908310+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T13:56:02.001422+00:00","ok":true,"statusCode":200,"bytes":979011,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T13:55:36.350110+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":980},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:04.095335+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T13:56:04.163685+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T13:56:09.397061+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T13:56:09.412322+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T13:56:09.519904+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T13:56:09.656680+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T13:56:09.743399+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:09.805519+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T13:56:09.864275+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:09.876133+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T13:56:09.880666+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T13:56:09.996202+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T13:56:10.003066+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T13:56:10.099327+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T13:56:10.206707+00:00","ok":true,"statusCode":200,"bytes":22895,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:10.949066+00:00","ok":true,"statusCode":200,"bytes":225418,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T13:56:11.026838+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T13:56:11.101932+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T13:56:18.524577+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T13:56:25.556688+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T13:56:34.239333+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T13:56:41.388966+00:00","ok":true,"statusCode":200,"bytes":925930,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:41.643818+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T13:56:41.705501+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T13:56:41.720525+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T13:56:41.807067+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:41.862417+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T13:56:42.059169+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T13:56:42.150758+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T13:56:42.240252+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T13:56:42.283531+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:42.387693+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T13:56:42.474791+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T13:56:42.487243+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T13:56:42.599463+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T13:56:43.153Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T13:56:43.166358+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T13:56:43.499393+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T13:56:43.596216+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T13:56:43.713046+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T13:56:43.809788+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T13:56:43.898674+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T13:56:44.003402+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T13:56:44.123942+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T13:56:44.136500+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T13:56:44.245859+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T13:56:44.373391+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T13:56:44.513685+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T13:56:44.526100+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T13:56:44.539964+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T13:57:37.833170+00:00","reason":null,"event":{"body":"After163 keeps the readable source-profile curl and mechanism overlays while softening the Top-view terminal footprint against the June 24 smooth breaking-wave references.","changed":"WaveVis source commit 75c3ef4 and fallback commit 68ecae4 are live. The fallback route serves index-CPqEvwZs.js and the rebuilt 6,834,682 byte architecture PDF; exact June 24 reference match remains open.","codex_change":"Softened the Top-view terminal plan pinch, slightly lightened the 3D guide/throat traces, regenerated current live figures, rebuilt the architecture PDF, deployed WaveVis, mirrored the bundle/PDF to aolabs.io/wavevis, and backfilled this event as a Progress work record.","commit":"wavevis:75c3ef4;fallback:68ecae4","complaint":"Alan told Codex to keep working on the WaveVis sim against the June 24 smooth gridded breaking-wave references and not stop before the deployed artifact improved.","created_at":"2026-06-25T13:57:37.833170+00:00","issue":"The after160 render preserved the curl/throat but the Top view still ended in a harder triangular terminal pinch than the supplied top-view sequence, and Progress treated the after163 post as a note rather than current work.","kind":"codex_change","lane":"ao_labs","provenance":"Local/live after163 screenshots, geometry check, npm build, PDF compile/render pages 12-15, gh-pages deploy 09d0316, fallback Pages run 28174870069.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"","title":"WaveVis top-footprint after163 checkpoint","url":"https://aolabs.io/wavevis/"}},{"kind":"event","created_at":"2026-06-25T15:06:50.132253+00:00","reason":null,"event":{"body":"","changed":"wavevis.aolabs.io over HTTP and aolabs.io/wavevis now serve index-Dt8BeEbc.js and the 6,976,017 byte architecture PDF. Live screenshots verify nonblank 3D, Side, Front, Top, mobile, and mechanism-on views. The exact June 24 reference match remains open because the visible 3D curl still reads too mound/barrel-like.","codex_change":"Centered the terminal lip lift, reduced terminal curl pinch, raised the 3D camera for a full-sheet read, made the 3D surface more solid, reduced the center-throat guide to a very pale trace, updated the invariant guard, regenerated figures, rebuilt the architecture PDF, fixed standalone Pages dotfile publishing, deployed standalone, and mirrored the fallback.","commit":"wavevis:625dd39+00121b3;fallback:63e60dd","complaint":"Alan told Codex to keep working on the WaveVis simulator against the June 24 smooth gridded breaking-wave references and not stop until steered or stopped.","created_at":"2026-06-25T15:06:50.132253+00:00","issue":"The live readable surface still had a translucent diagnostic tube / side-wall barrel read while the target is a smooth white gridded square sheet with rounded rising face, forward/downward curling lip, open throat, flat perimeter, and preserved mechanism views.","kind":"codex_change","lane":"ao_labs","provenance":"WaveVis commits 625dd39 and 00121b3; fallback commit 63e60dd; geometry check; npm build; PDF compile/render pages 12-15; live HTTP/HTTPS route checks; live browser screenshots after167.","snapshot_id":"","source_ids":["wavevis_home","wavevis_custom_domain"],"spec_note":"No new Spec clause needed; the existing Reference-Geometry Outcome, Whole-Shape Regression, Prior-Fix Preservation, Human-Outcome Verification, Deployment, Progress Prompt Ledger, and Continuous Paper rules cover this checkpoint.","title":"WaveVis after167 reference-surface checkpoint","url":"https://aolabs.io/wavevis/"}},{"kind":"scan","created_at":"2026-06-25T15:08:01.949585+00:00","reason":null,"snapshot":{"id":"2b5b6be61cb7509b","createdAt":"2026-06-25T15:08:01.949585+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","wavevis_home","imagineer_ops","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T15:07:15.321906+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T15:07:15.434426+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T15:07:15.533690+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T15:07:15.671744+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T15:07:15.784455+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T15:07:15.891992+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T15:07:15.988429+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T15:07:16.015968+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T15:07:16.106652+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T15:07:16.134006+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T15:07:16.238324+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T15:07:16.350379+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T15:07:16.447981+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T15:07:16.474698+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T15:07:16.637749+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T15:07:16.755Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T15:07:16.767005+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T15:07:16.818519+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T15:07:16.918823+00:00","ok":true,"statusCode":200,"bytes":979850,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T13:56:44.652236+00:00","healthyCount":62,"sourceCount":67,"changedCount":7,"snapshotCount":981},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:19.373973+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T15:07:19.407523+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T15:07:26.298620+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T15:07:26.423792+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T15:07:26.533355+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T15:07:26.713905+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T15:07:26.820192+00:00","ok":true,"statusCode":200,"bytes":15041,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":109,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:26.885578+00:00","ok":true,"statusCode":200,"bytes":262390,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T15:07:26.971460+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:27.236746+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T15:07:27.342893+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T15:07:27.453766+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T15:07:27.479847+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T15:07:27.577930+00:00","ok":true,"statusCode":200,"bytes":5012,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T15:07:27.653667+00:00","ok":true,"statusCode":200,"bytes":22895,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:28.430465+00:00","ok":true,"statusCode":200,"bytes":225418,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T15:07:28.491126+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T15:07:28.595866+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T15:07:36.043083+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T15:07:43.255968+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T15:07:50.682164+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T15:07:57.756333+00:00","ok":true,"statusCode":200,"bytes":929099,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:58.155699+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T15:07:58.199907+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T15:07:58.328101+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T15:07:58.418595+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:58.473049+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T15:07:58.587274+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T15:07:58.663469+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T15:07:58.721739+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T15:07:58.789024+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:07:58.892818+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T15:07:58.979514+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T15:07:59.118336+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T15:07:59.232765+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T15:07:59.776Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T15:07:59.789860+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T15:08:00.094047+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T15:08:00.171493+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T15:08:00.341617+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:08:00.448273+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T15:08:00.560959+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T15:08:00.665163+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T15:08:00.820075+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T15:08:00.946422+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T15:08:01.072329+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T15:08:01.200195+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T15:08:01.358409+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T15:08:01.677331+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T15:08:01.797291+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T15:46:26.461638+00:00","reason":null,"event":{"body":"Process-routing note moved out of the visible Imagineer surface and into Spec/Progress/paper records.","changed":"imagineer.aolabs.io now uses Source state wording with no PhD intake banner; API emits compact source state; Spec revision 2026-06-25-internal-process-message-routing-contract is live; fallback source is pushed and Pages publish is in progress.","codex_change":"Removed visible process-routing copy from Imagineer custom app and AO Labs fallback source, updated backend strings, regenerated Imagineer paper PDF, added Internal Process Message Routing Rule to AGENTS and Spec seed, updated/compiled Spec paper, deployed Imagineer and Spec.","commit":"0040135/f3e2cc2/023986c","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T15:46:26.461638+00:00","issue":"Visible Imagineer surface was making Alan read Codex/source-routing plumbing instead of only current state or action.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits imagineer 0040135, spec f3e2cc2, aolabs-site 023986c; Railway deploys de1bfb84 and 5b43f09a","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"spec_note":"New Spec rule routes Codex-continuity/source-routing/sync/capture/deployment/audit notes to durable records or diagnostics unless Alan must act now.","title":"Imagineer process-routing banner removed","url":"https://imagineer.aolabs.io/"}},{"kind":"event","created_at":"2026-06-25T15:47:55.379852+00:00","reason":null,"event":{"body":"Custom and fallback Imagineer routes both remove the process-routing banner.","changed":"imagineer.aolabs.io and aolabs.io/imagineer now both show Source state / Reading current evidence, with no PhD-intake banner or Imagineer reads sources sync note; Spec revision 2026-06-25-internal-process-message-routing-contract and both paper PDFs are live.","codex_change":"Deployed Imagineer Railway, Spec Railway, and AO Labs Pages fallback; verified custom HTML/app/API/PDF, fallback HTML, Spec summary/revisions/revision-PDF/paper-source/paper-PDF, and Progress event capture.","commit":"0040135/f3e2cc2/023986c","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T15:47:55.379852+00:00","issue":"Visible Imagineer and fallback surfaces needed to stop exposing Codex/source-routing plumbing as a prominent user-facing message.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits imagineer 0040135, spec f3e2cc2, aolabs-site 023986c; Railway deploys de1bfb84 and 5b43f09a; GitHub Pages run 28182097359","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","spec_summary","spec_home","spec_paper","aolabs_home"],"spec_note":"Internal process notes now belong in durable records or diagnostics unless Alan needs to act on them immediately.","title":"Imagineer process-routing fallback verified","url":"https://aolabs.io/imagineer/"}},{"kind":"scan","created_at":"2026-06-25T15:49:00.832402+00:00","reason":null,"snapshot":{"id":"f603e6a8983c30e3","createdAt":"2026-06-25T15:49:00.832402+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","spec_summary","spec_paper","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T15:48:14.485092+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T15:48:14.609444+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T15:48:14.739190+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T15:48:14.881649+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T15:48:14.980415+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T15:48:15.090558+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T15:48:15.200196+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T15:48:15.230794+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T15:48:15.335679+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T15:48:15.461429+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T15:48:15.556973+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T15:48:15.664708+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T15:48:15.741064+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T15:48:15.765119+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T15:48:15.858546+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T15:48:15.949Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T15:48:15.961306+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T15:48:15.987538+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T15:48:16.095039+00:00","ok":true,"statusCode":200,"bytes":982969,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T15:08:01.949585+00:00","healthyCount":62,"sourceCount":67,"changedCount":8,"snapshotCount":982},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:18.845335+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T15:48:18.881889+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T15:48:25.413452+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T15:48:25.580829+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T15:48:25.695126+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T15:48:25.808589+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T15:48:25.885143+00:00","ok":true,"statusCode":200,"bytes":15219,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":110,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:25.978538+00:00","ok":true,"statusCode":200,"bytes":262864,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T15:48:26.040499+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:26.432306+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T15:48:26.437353+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T15:48:26.605442+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T15:48:26.639494+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T15:48:26.714187+00:00","ok":true,"statusCode":200,"bytes":4908,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T15:48:26.796375+00:00","ok":true,"statusCode":200,"bytes":22550,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:27.507849+00:00","ok":true,"statusCode":200,"bytes":225430,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T15:48:27.573025+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T15:48:27.672488+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T15:48:34.962537+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T15:48:42.002468+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T15:48:49.192599+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T15:48:56.301620+00:00","ok":true,"statusCode":200,"bytes":934693,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:56.778860+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T15:48:56.842395+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T15:48:56.997355+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T15:48:57.093436+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:57.124462+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T15:48:57.258441+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T15:48:57.335619+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T15:48:57.398086+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T15:48:57.443818+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:57.525497+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T15:48:57.614443+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T15:48:57.807065+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T15:48:57.914060+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T15:48:58.429Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T15:48:58.442246+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T15:48:58.731000+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T15:48:58.836486+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T15:48:58.988309+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T15:48:59.111984+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T15:48:59.222375+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T15:48:59.333106+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T15:48:59.479310+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T15:48:59.623925+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T15:48:59.752645+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T15:48:59.886695+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T15:49:00.024161+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T15:49:00.214897+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T15:49:00.366812+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}},{"kind":"event","created_at":"2026-06-25T16:06:11.257498+00:00","reason":null,"event":{"body":"","changed":"imagineer.aolabs.io and aolabs.io/imagineer now remove the visible source-state section and deleted frontend source-state row rendering; the home surface keeps only the current step actions plus Verify lead. The Imagineer paper now states source freshness remains in API, Progress, Spec, and paper records.","codex_change":"Committed f06d852 in imagineer-app and 1d7a08c in aolabs-site; deployed Railway 7dffd99b and GitHub Pages run 28183265825; verified live custom/fallback HTML, JS, PDFs, and browser-rendered desktop/mobile surfaces with no rejected visible copy or source-state DOM block.","commit":"f06d852/1d7a08c/f3e2cc2","complaint":"Alan showed the Imagineer PhD-intake banner and said he did not need to see messages like this; they should be somewhere else.","created_at":"2026-06-25T16:06:11.257498+00:00","issue":"The first cleanup softened the visible process message, but the stricter useful outcome was no front-page source-state/process-plumbing block at all.","kind":"change_issue","lane":"ao_labs","provenance":"current-thread screenshot/complaint; commits f06d852, 1d7a08c, prior Spec commit f3e2cc2; Railway deploy 7dffd99b; GitHub Pages run 28183265825; browser rendered checks on 2026-06-25","snapshot_id":"","source_ids":["imagineer_home","imagineer_ops","imagineer_paper","aolabs_home","spec_summary","spec_home","spec_paper"],"spec_note":"Internal source-routing and app-ingestion notes belong in durable records or diagnostics, not on primary user surfaces unless Alan needs to act on them.","title":"Imagineer source-state surface removed","url":""}},{"kind":"scan","created_at":"2026-06-25T16:07:35.576301+00:00","reason":null,"snapshot":{"id":"6b276940a0083a86","createdAt":"2026-06-25T16:07:35.576301+00:00","reason":"manual","healthyCount":62,"sourceCount":67,"lanes":{"ao_labs":{"ok":43,"total":46},"curtis":{"ok":7,"total":7},"imagineer":{"ok":8,"total":10},"relay":{"ok":4,"total":4}},"deltas":{"changed":["sleep_api","progress_summary","imagineer_home","imagineer_ops","imagineer_paper","curtis_ops","youtube_nalalan","a3_health","a3_queue_snapshot"],"failed":[],"recovered":[]},"sources":[{"id":"aolabs_home","name":"AO Labs","lane":"ao_labs","kind":"html","purpose":"Public AO Labs hub page and app directory.","url":"https://aolabs.io","href":"https://aolabs.io","checkedAt":"2026-06-25T16:06:47.389761+00:00","ok":true,"statusCode":200,"bytes":29246,"textChars":null,"contentType":"text/html","title":"Alan Pham / aolabs.io","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_home","name":"Idle Shroom","lane":"ao_labs","kind":"html","purpose":"Idle Shroom public clicker game route, retention loop, leaderboard UI, and ad/app-store readiness surface.","url":"https://aolabs.io/idleshroom/","href":"https://aolabs.io/idleshroom/","checkedAt":"2026-06-25T16:06:47.504372+00:00","ok":true,"statusCode":200,"bytes":17650,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_standalone","name":"Idle Shroom standalone","lane":"ao_labs","kind":"html","purpose":"Standalone idleshroom.aolabs.io game site, mobile shell, cache version, and public playable route.","url":"http://idleshroom.aolabs.io/","href":"http://idleshroom.aolabs.io/","checkedAt":"2026-06-25T16:06:47.617376+00:00","ok":true,"statusCode":200,"bytes":17734,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"idle_shroom_mushroom_boop","name":"Idle Shroom mushroom-boop route","lane":"ao_labs","kind":"html","purpose":"AO Labs mushroom-boop alias for the same playable Idle Shroom game bundle, cache key, and mobile tap loop.","url":"https://aolabs.io/mushroom-boop/","href":"https://aolabs.io/mushroom-boop/","checkedAt":"2026-06-25T16:06:47.754114+00:00","ok":true,"statusCode":200,"bytes":17700,"textChars":null,"contentType":"text/html","title":"Idle Shroom / cozy-dark mushroom tap RPG","json":null,"error":null,"issueNote":null},{"id":"meowtronome_home","name":"Meowtronome","lane":"ao_labs","kind":"html","purpose":"Meow-sound metronome route on the AO Labs hub.","url":"https://aolabs.io/meowtronome/","href":"https://aolabs.io/meowtronome/","checkedAt":"2026-06-25T16:06:47.852630+00:00","ok":true,"statusCode":200,"bytes":4179,"textChars":null,"contentType":"text/html","title":"meowtronome.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_home","name":"Virtual Violin","lane":"ao_labs","kind":"html","purpose":"Working AO Labs fallback route for the browser violin instrument with mouse bowing and number-row fingering.","url":"https://aolabs.io/virtualviolin/","href":"https://aolabs.io/virtualviolin/","checkedAt":"2026-06-25T16:06:47.959302+00:00","ok":true,"statusCode":200,"bytes":1858,"textChars":null,"contentType":"text/html","title":"Virtual Violin","json":null,"error":null,"issueNote":null},{"id":"virtualviolin_custom_domain","name":"Virtual Violin custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred virtualviolin.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://virtualviolin.aolabs.io/","href":"https://virtualviolin.aolabs.io/","checkedAt":"2026-06-25T16:06:48.066626+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'virtualviolin.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"dbalarm_home","name":"dbalarm","lane":"ao_labs","kind":"html","purpose":"Working microphone high-dB alarm fallback route on the AO Labs hub.","url":"https://aolabs.io/dbalarm/","href":"https://aolabs.io/dbalarm/","checkedAt":"2026-06-25T16:06:48.095626+00:00","ok":true,"statusCode":200,"bytes":4145,"textChars":null,"contentType":"text/html","title":"dbalarm.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"dbalarm_custom_domain","name":"dbalarm custom domain","lane":"ao_labs","kind":"html","purpose":"dbalarm.aolabs.io custom-domain DNS and GitHub Pages health state.","url":"https://dbalarm.aolabs.io/","href":"https://dbalarm.aolabs.io/","checkedAt":"2026-06-25T16:06:48.204217+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'dbalarm.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"brain_home","name":"brain","lane":"ao_labs","kind":"html","purpose":"Working Brain PDF bank fallback route with static source PDFs, text-to-PDF creation, and automatic shared sync.","url":"https://aolabs.io/brain/","href":"https://aolabs.io/brain/","checkedAt":"2026-06-25T16:06:48.229709+00:00","ok":true,"statusCode":200,"bytes":8792,"textChars":null,"contentType":"text/html","title":"brain.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"brain_app_bundle","name":"brain app bundle","lane":"ao_labs","kind":"text","purpose":"Brain frontend JavaScript bundle that controls automatic sync, text-to-PDF creation, and local-entry migration.","url":"https://aolabs.io/brain/app.js","href":"https://aolabs.io/brain/app.js","checkedAt":"2026-06-25T16:06:48.336221+00:00","ok":true,"statusCode":200,"bytes":128031,"textChars":128008,"contentType":"application/javascript","title":"const stateKey = \"brain-pdf-bank-v1\";","json":null,"error":null,"issueNote":null},{"id":"brain_api","name":"brain sync API","lane":"ao_labs","kind":"json","purpose":"Railway Brain shared storage API health for automatic upload, list, view, and delete sync.","url":"https://brain-aolabs-io-production.up.railway.app/api/health","href":"https://brain-aolabs-io-production.up.railway.app/api/health","checkedAt":"2026-06-25T16:06:48.438124+00:00","ok":true,"statusCode":200,"bytes":78,"textChars":null,"contentType":"application/json","title":null,"json":{"ai":true,"aiModel":"gpt-5.4-mini","app":"brain","ok":true,"storage":"/data"},"error":null,"issueNote":null},{"id":"brain_custom_domain","name":"brain custom domain","lane":"ao_labs","kind":"html","purpose":"Preferred brain.aolabs.io GitHub Pages custom-domain DNS and HTTPS certificate readiness.","url":"https://brain.aolabs.io/","href":"https://brain.aolabs.io/","checkedAt":"2026-06-25T16:06:48.508485+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'brain.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"sleep_home","name":"Sleep","lane":"ao_labs","kind":"html","purpose":"Sleep fallback daily sleep-hours log, Android bridge download, Health Connect sync path, paper scaffold, and PWA shell fallback route.","url":"https://aolabs.io/sleep/","href":"https://aolabs.io/sleep/","checkedAt":"2026-06-25T16:06:48.539087+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sleep_api","name":"Sleep API","lane":"ao_labs","kind":"json","purpose":"Railway Sleep API health for Health Connect ingestion, public summary access, export-token boundary, and persistent sleep-record storage.","url":"https://sleep.aolabs.io/api/health","href":"https://sleep.aolabs.io/api/health","checkedAt":"2026-06-25T16:06:48.629614+00:00","ok":true,"statusCode":200,"bytes":226,"textChars":null,"contentType":"application/json","title":null,"json":{"exportReadTokenConfigured":true,"generatedAt":"2026-06-25T16:06:48.723Z","ingestionTokenConfigured":true,"ok":true,"publicMinSleepDate":"2026-05-01","service":"sleep-aolabs","storage":"postgres","summaryReadAccess":"public"},"error":null,"issueNote":null},{"id":"sleep_custom_domain","name":"Sleep custom domain","lane":"ao_labs","kind":"html","purpose":"sleep.aolabs.io Railway custom-domain daily sleep-hours log with Android bridge entry and Health Connect sync state.","url":"https://sleep.aolabs.io/","href":"https://sleep.aolabs.io/","checkedAt":"2026-06-25T16:06:48.735321+00:00","ok":true,"statusCode":200,"bytes":17506,"textChars":null,"contentType":"text/html","title":"sleep.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_home","name":"Progress","lane":"ao_labs","kind":"html","purpose":"Public Progress page that shows this monitor.","url":"https://progress.aolabs.io","href":"https://progress.aolabs.io","checkedAt":"2026-06-25T16:06:48.786164+00:00","ok":true,"statusCode":200,"bytes":6127,"textChars":null,"contentType":"text/html","title":"progress.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"progress_summary","name":"Progress state","lane":"ao_labs","kind":"json","purpose":"Progress summary API, latest scan, source states, and ledger metadata.","url":"https://progress.aolabs.io/api/progress/summary","href":"https://progress.aolabs.io/api/progress/summary","checkedAt":"2026-06-25T16:06:48.861931+00:00","ok":true,"statusCode":200,"bytes":987132,"textChars":null,"contentType":"application/json","title":null,"json":{"service":"ao-progress-ledger","latestScan":"2026-06-25T15:49:00.832402+00:00","healthyCount":62,"sourceCount":67,"changedCount":11,"snapshotCount":983},"error":null,"issueNote":null},{"id":"progress_paper","name":"Progress paper","lane":"ao_labs","kind":"pdf","purpose":"Progress paper PDF route.","url":"https://progress.aolabs.io/paper.pdf","href":"https://progress.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:06:51.730764+00:00","ok":true,"statusCode":200,"bytes":274737,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"phd_organization_doc","name":"PhD organization doc","lane":"ao_labs","kind":"text","purpose":"Private planning text export used as the current organization source.","url":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/export?format=txt","href":"https://docs.google.com/document/d/1Ffi51WavVvaFBUQX37AbFQ4ZKGEkRlGl-NRcOVQP03c/edit","checkedAt":"2026-06-25T16:06:51.769171+00:00","ok":true,"statusCode":200,"bytes":1519143,"textChars":1513586,"contentType":"text/plain","title":"PhD Organization","json":null,"error":null,"issueNote":null},{"id":"cv_pdf","name":"CV PDF","lane":"ao_labs","kind":"pdf","purpose":"Current public CV PDF.","url":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","href":"https://cv.aolabs.io/alan-nguyen-pham-cv.pdf","checkedAt":"2026-06-25T16:07:00.368531+00:00","ok":true,"statusCode":200,"bytes":61795,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sandia_home","name":"Sandia","lane":"imagineer","kind":"html","purpose":"Sandia NOMAD research showcase, mechanism media, paper access, and presentation record.","url":"https://aolabs.io/sandia/","href":"https://aolabs.io/sandia/","checkedAt":"2026-06-25T16:07:00.539061+00:00","ok":true,"statusCode":200,"bytes":11648,"textChars":null,"contentType":"text/html","title":"sandia.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sandia_paper","name":"Sandia paper","lane":"imagineer","kind":"pdf","purpose":"Sandia ratcheting-mechanism paper PDF route.","url":"https://aolabs.io/sandia/paper.pdf","href":"https://aolabs.io/sandia/paper.pdf","checkedAt":"2026-06-25T16:07:00.642733+00:00","ok":true,"statusCode":200,"bytes":1232643,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"spec_home","name":"Spec","lane":"ao_labs","kind":"html","purpose":"Spec public instruction-revision record.","url":"https://spec.aolabs.io","href":"https://spec.aolabs.io","checkedAt":"2026-06-25T16:07:00.923865+00:00","ok":true,"statusCode":200,"bytes":3469,"textChars":null,"contentType":"text/html","title":"spec.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spec_summary","name":"Spec state","lane":"ao_labs","kind":"json","purpose":"Spec summary API with latest revision and paper metadata.","url":"https://spec.aolabs.io/api/spec/summary","href":"https://spec.aolabs.io/api/spec/summary","checkedAt":"2026-06-25T16:07:01.001876+00:00","ok":true,"statusCode":200,"bytes":15219,"textChars":null,"contentType":"application/json","title":null,"json":{"model":"gpt-5-mini","revision_count":110,"service":"ao-spec-record","storage":"persistent when SPEC_DATA_DIR=/data is backed by a Railway volume"},"error":null,"issueNote":null},{"id":"spec_paper","name":"Spec paper","lane":"ao_labs","kind":"pdf","purpose":"Spec paper PDF route.","url":"https://spec.aolabs.io/paper.pdf","href":"https://spec.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:01.068003+00:00","ok":true,"statusCode":200,"bytes":262864,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"sarrus_home","name":"Sarrus","lane":"imagineer","kind":"html","purpose":"Sarrus project page.","url":"https://sarrus.aolabs.io","href":"https://sarrus.aolabs.io","checkedAt":"2026-06-25T16:07:01.125889+00:00","ok":true,"statusCode":200,"bytes":4880,"textChars":null,"contentType":"text/html","title":"sarrus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"sarrus_paper","name":"Sarrus paper","lane":"imagineer","kind":"pdf","purpose":"Sarrus paper PDF route.","url":"https://sarrus.aolabs.io/paper.pdf","href":"https://sarrus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:01.327353+00:00","ok":false,"statusCode":404,"bytes":9379,"textChars":null,"contentType":"text/html","title":null,"json":null,"error":null,"issueNote":null},{"id":"wavevis_home","name":"Wavevis","lane":"imagineer","kind":"html","purpose":"Working AO Labs fallback route for the interactive 3D programmable Sarrus cell array visualizer while the preferred custom domain is pending DNS.","url":"https://aolabs.io/wavevis/","href":"https://aolabs.io/wavevis/","checkedAt":"2026-06-25T16:07:01.332032+00:00","ok":true,"statusCode":200,"bytes":1780,"textChars":null,"contentType":"text/html","title":"wavevis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"wavevis_custom_domain","name":"Wavevis custom domain","lane":"imagineer","kind":"html","purpose":"Preferred wavevis.aolabs.io GitHub Pages custom-domain route, DNS resolution, and certificate readiness.","url":"https://wavevis.aolabs.io/","href":"https://wavevis.aolabs.io/","checkedAt":"2026-06-25T16:07:01.492820+00:00","ok":false,"statusCode":0,"bytes":null,"textChars":null,"contentType":null,"title":null,"json":null,"error":"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'wavevis.aolabs.io'. (_ssl.c:1016)","issueNote":null},{"id":"phd_home","name":"phd","lane":"imagineer","kind":"html","purpose":"phd public capture inbox page and Railway custom-domain route.","url":"https://phd.aolabs.io","href":"https://phd.aolabs.io","checkedAt":"2026-06-25T16:07:01.518937+00:00","ok":true,"statusCode":200,"bytes":2252,"textChars":null,"contentType":"text/html","title":"phd","json":null,"error":null,"issueNote":null},{"id":"imagineer_home","name":"Imagineer","lane":"imagineer","kind":"html","purpose":"Imagineer public current-step page.","url":"https://imagineer.aolabs.io","href":"https://imagineer.aolabs.io","checkedAt":"2026-06-25T16:07:01.601809+00:00","ok":true,"statusCode":200,"bytes":4454,"textChars":null,"contentType":"text/html","title":"imagineer.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"imagineer_ops","name":"Imagineer state","lane":"imagineer","kind":"json","purpose":"Imagineer ops API with fit score, bottleneck, review state, and current step.","url":"https://imagineer.aolabs.io/api/imagineer/ops-check","href":"https://imagineer.aolabs.io/api/imagineer/ops-check","checkedAt":"2026-06-25T16:07:01.683890+00:00","ok":true,"statusCode":200,"bytes":22550,"textChars":null,"contentType":"application/json","title":null,"json":{"bottleneck":"Principal signal","bottleneckScore":56,"confidence":"credible_but_needs_signal","fitScore":74,"paperPdf":"https://imagineer.aolabs.io/imagineer-autonomous-position-system.pdf","reviewCount":15,"reviewScore":74,"status":"building_position_machine_v1"},"error":null,"issueNote":null},{"id":"imagineer_paper","name":"Imagineer paper","lane":"imagineer","kind":"pdf","purpose":"Imagineer paper PDF route.","url":"https://imagineer.aolabs.io/paper.pdf","href":"https://imagineer.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:02.404476+00:00","ok":true,"statusCode":200,"bytes":226538,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"curtis_home","name":"Curtis","lane":"curtis","kind":"html","purpose":"Curtis public project page.","url":"https://curtis.aolabs.io","href":"https://curtis.aolabs.io","checkedAt":"2026-06-25T16:07:02.462391+00:00","ok":true,"statusCode":200,"bytes":5079,"textChars":null,"contentType":"text/html","title":"curtis.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"curtis_status","name":"Curtis state","lane":"curtis","kind":"json","purpose":"Curtis media status API with inventory, review state, and practice plan.","url":"https://curtis.aolabs.io/api/curtis/media-status","href":"https://curtis.aolabs.io/api/curtis/media-status","checkedAt":"2026-06-25T16:07:02.538616+00:00","ok":true,"statusCode":200,"bytes":2029535,"textChars":null,"contentType":"application/json","title":null,"json":{"blockers":0,"inventoryCount":269,"oneFocus":"capture a playable audition-view take","practiceConstraint":"record 30 seconds of sustained tone","reviewStatus":null,"sectionCount":null,"status":"inventory_ready"},"error":null,"issueNote":null},{"id":"curtis_ops","name":"Curtis ops","lane":"curtis","kind":"json","purpose":"Curtis ops-check API with current focus, media state, and YouTube source state.","url":"https://curtis.aolabs.io/api/curtis/ops-check","href":"https://curtis.aolabs.io/api/curtis/ops-check","checkedAt":"2026-06-25T16:07:09.883523+00:00","ok":true,"statusCode":200,"bytes":2088204,"textChars":null,"contentType":"application/json","title":null,"json":{"currentFocus":"capture a playable audition-view take","mediaStatus":null,"reviewStatus":null,"status":"inventory_ready","youtube":"https://www.youtube.com/@nalalan"},"error":null,"issueNote":null},{"id":"curtis_daily_records","name":"Curtis daily records","lane":"curtis","kind":"json","purpose":"Curtis daily record API and latest practice-day count.","url":"https://curtis.aolabs.io/api/curtis/daily-records","href":"https://curtis.aolabs.io/api/curtis/daily-records","checkedAt":"2026-06-25T16:07:16.996997+00:00","ok":true,"statusCode":200,"bytes":1124640,"textChars":null,"contentType":"application/json","title":null,"json":{"latestDay":"2025-12-20","recordCount":74,"status":"ready"},"error":null,"issueNote":null},{"id":"curtis_evidence_progress","name":"Curtis evidence","lane":"curtis","kind":"json","purpose":"Curtis accepted and pending evidence-progress API.","url":"https://curtis.aolabs.io/api/curtis/evidence-progress","href":"https://curtis.aolabs.io/api/curtis/evidence-progress","checkedAt":"2026-06-25T16:07:24.389163+00:00","ok":true,"statusCode":200,"bytes":4114,"textChars":null,"contentType":"application/json","title":null,"json":{"accepted":null,"pending":null,"sourceCount":null,"status":"ready"},"error":null,"issueNote":null},{"id":"youtube_nalalan","name":"YouTube @nalalan","lane":"curtis","kind":"html","purpose":"Public YouTube channel page for visible upload/activity changes.","url":"https://www.youtube.com/@nalalan","href":"https://www.youtube.com/@nalalan","checkedAt":"2026-06-25T16:07:31.419764+00:00","ok":true,"statusCode":200,"bytes":932220,"textChars":null,"contentType":"text/html","title":"","json":null,"error":null,"issueNote":null},{"id":"curtis_paper","name":"Curtis paper","lane":"curtis","kind":"pdf","purpose":"Curtis paper PDF route.","url":"https://curtis.aolabs.io/paper.pdf","href":"https://curtis.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:31.841280+00:00","ok":true,"statusCode":200,"bytes":574148,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"relay_home","name":"Relay","lane":"relay","kind":"html","purpose":"Relay public project page.","url":"https://relay.aolabs.io","href":"https://relay.aolabs.io","checkedAt":"2026-06-25T16:07:31.883264+00:00","ok":true,"statusCode":200,"bytes":109703,"textChars":null,"contentType":"text/html","title":"relay.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"relay_backend_health","name":"Relay backend","lane":"relay","kind":"json","purpose":"Relay backend health endpoint.","url":"https://alan-operator-backend-production.up.railway.app/health","href":"https://alan-operator-backend-production.up.railway.app/health","checkedAt":"2026-06-25T16:07:32.050880+00:00","ok":true,"statusCode":200,"bytes":20,"textChars":null,"contentType":"application/json","title":null,"json":{"status":"healthy"},"error":null,"issueNote":null},{"id":"relay_intent_7d","name":"Relay intent","lane":"relay","kind":"json","purpose":"Relay seven-day intent and revenue signal API.","url":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","href":"https://alan-operator-backend-production.up.railway.app/api/relay/intent-summary?days=7","checkedAt":"2026-06-25T16:07:32.142379+00:00","ok":true,"statusCode":200,"bytes":676,"textChars":null,"contentType":"application/json","title":null,"json":{"checkoutClicks":null,"days":7,"leads":0,"pageViews":null,"payments":null,"rawKeys":5,"status":null},"error":null,"issueNote":null},{"id":"relay_paper","name":"Relay paper","lane":"relay","kind":"pdf","purpose":"Relay paper PDF route.","url":"https://relay.aolabs.io/paper.pdf","href":"https://relay.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:32.199264+00:00","ok":true,"statusCode":200,"bytes":443550,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"league_home","name":"League","lane":"ao_labs","kind":"html","purpose":"League public practice and recordings page.","url":"https://league.aolabs.io","href":"https://league.aolabs.io","checkedAt":"2026-06-25T16:07:32.424281+00:00","ok":true,"statusCode":200,"bytes":6057,"textChars":null,"contentType":"text/html","title":"league.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"league_recordings","name":"League recordings","lane":"ao_labs","kind":"json","purpose":"League synced recordings manifest and per-recording feedback metadata.","url":"https://league.aolabs.io/recordings/recordings.json","href":"https://league.aolabs.io/recordings/recordings.json","checkedAt":"2026-06-25T16:07:32.507026+00:00","ok":true,"statusCode":200,"bytes":630538,"textChars":null,"contentType":"application/json","title":null,"json":{"captured":"May 18, 2026, 5:46 PM to Jun 3, 2026, 4:18 AM ET","generatedAt":"2026-06-03T08:20:26.000Z","match":"55 matches","matches":55,"reviewBasis":"Newest match first; duplicate same-match captures collapse to the fullest auto review.","source":"League of Legends Highlights folder","totalDuration":"953:10","totalRecordings":67},"error":null,"issueNote":null},{"id":"league_paper","name":"League paper","lane":"ao_labs","kind":"pdf","purpose":"League paper PDF route.","url":"https://league.aolabs.io/league-practice-room.pdf","href":"https://league.aolabs.io/league-practice-room.pdf","checkedAt":"2026-06-25T16:07:32.573516+00:00","ok":true,"statusCode":200,"bytes":242617,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"talk_home","name":"Talk","lane":"ao_labs","kind":"html","purpose":"Talk public project page.","url":"https://talk.aolabs.io","href":"https://talk.aolabs.io","checkedAt":"2026-06-25T16:07:32.618066+00:00","ok":true,"statusCode":200,"bytes":25263,"textChars":null,"contentType":"text/html","title":"talk.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"talk_paper","name":"Talk paper","lane":"ao_labs","kind":"pdf","purpose":"Talk paper PDF route.","url":"https://talk.aolabs.io/paper.pdf","href":"https://talk.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:32.723632+00:00","ok":true,"statusCode":200,"bytes":252062,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"ocean_home","name":"Ocean","lane":"ao_labs","kind":"html","purpose":"Ocean public project page.","url":"https://ocean.aolabs.io","href":"https://ocean.aolabs.io","checkedAt":"2026-06-25T16:07:32.783954+00:00","ok":true,"statusCode":200,"bytes":2800,"textChars":null,"contentType":"text/html","title":"ocean.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_home","name":"A3","lane":"ao_labs","kind":"html","purpose":"A3 public project page.","url":"https://a3.aolabs.io","href":"https://a3.aolabs.io","checkedAt":"2026-06-25T16:07:32.919176+00:00","ok":true,"statusCode":200,"bytes":21544,"textChars":null,"contentType":"text/html","title":"a3.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"a3_health","name":"A3 health","lane":"ao_labs","kind":"json","purpose":"A3 production health, lock, Plaid connection, and queue-snapshot availability.","url":"https://a3.aolabs.io/api/health","href":"https://a3.aolabs.io/api/health","checkedAt":"2026-06-25T16:07:33.013139+00:00","ok":true,"statusCode":200,"bytes":739,"textChars":null,"contentType":"application/json","title":null,"json":{"accessLocked":true,"accounts":4,"app":"a3.aolabs.io","autoUpdateInterval":"1 day","checkedAt":"2026-06-25T16:07:33.529Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","lastSyncAt":"2026-06-24T19:59:19.394Z","ok":true,"plaidConnected":true,"queueSnapshotAvailable":true,"queueSnapshotGeneratedAt":"2026-06-25T03:58:27.398Z","transactions":3201},"error":null,"issueNote":null},{"id":"a3_queue_snapshot","name":"A3 queue snapshot","lane":"ao_labs","kind":"json","purpose":"A3 readable morning-queue snapshot endpoint without raw account or transaction rows.","url":"https://a3.aolabs.io/api/queue-snapshot","href":"https://a3.aolabs.io/api/queue-snapshot","checkedAt":"2026-06-25T16:07:33.542890+00:00","ok":true,"statusCode":200,"bytes":2721,"textChars":null,"contentType":"application/json","title":null,"json":{"action":"Bad purchase","available":true,"boundaryCount":3,"generatedAt":"2026-06-25T03:58:27.398Z","lastAuthenticatedViewAt":"2026-06-25T03:58:27.398Z","latestTransactionDate":"2026-06-23","ok":true,"plaidLastSyncAt":"2026-06-24T19:59:19.394Z","queueItemCount":3,"readiness":"bad purchase","source":"authenticated_state_view","visibility":"queue_summary_not_raw_accounts_or_transactions"},"error":null,"issueNote":null},{"id":"wallguard_home","name":"Wallguard","lane":"ao_labs","kind":"html","purpose":"Wallguard public project page.","url":"https://wallguard.aolabs.io","href":"https://wallguard.aolabs.io","checkedAt":"2026-06-25T16:07:33.840470+00:00","ok":true,"statusCode":200,"bytes":2178,"textChars":null,"contentType":"text/html","title":"wallguard.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"spotify_home","name":"Spotify","lane":"ao_labs","kind":"html","purpose":"Spotify public project page.","url":"https://spotify.aolabs.io","href":"https://spotify.aolabs.io","checkedAt":"2026-06-25T16:07:33.944723+00:00","ok":true,"statusCode":200,"bytes":5172,"textChars":null,"contentType":"text/html","title":"spotify.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_home","name":"Bus","lane":"ao_labs","kind":"html","purpose":"Bus public project page.","url":"https://bus.aolabs.io","href":"https://bus.aolabs.io","checkedAt":"2026-06-25T16:07:34.105698+00:00","ok":true,"statusCode":200,"bytes":4742,"textChars":null,"contentType":"text/html","title":"bus.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"bus_paper","name":"Bus paper","lane":"ao_labs","kind":"pdf","purpose":"Bus paper PDF route.","url":"https://bus.aolabs.io/paper.pdf","href":"https://bus.aolabs.io/paper.pdf","checkedAt":"2026-06-25T16:07:34.209448+00:00","ok":true,"statusCode":200,"bytes":1060786,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null},{"id":"nerve_home","name":"Nerve","lane":"ao_labs","kind":"html","purpose":"Nerve public project page.","url":"https://nerve.aolabs.io","href":"https://nerve.aolabs.io","checkedAt":"2026-06-25T16:07:34.322401+00:00","ok":true,"statusCode":200,"bytes":47998,"textChars":null,"contentType":"text/html","title":"nerve.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"duet_home","name":"Duet","lane":"ao_labs","kind":"html","purpose":"Duet public project page.","url":"https://duet.aolabs.io","href":"https://duet.aolabs.io","checkedAt":"2026-06-25T16:07:34.452534+00:00","ok":true,"statusCode":200,"bytes":21681,"textChars":null,"contentType":"text/html","title":"duet.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"lily_home","name":"Lily","lane":"ao_labs","kind":"html","purpose":"Lily public project page.","url":"https://lily.aolabs.io","href":"https://lily.aolabs.io","checkedAt":"2026-06-25T16:07:34.555632+00:00","ok":true,"statusCode":200,"bytes":2296,"textChars":null,"contentType":"text/html","title":"lily.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_home","name":"Cooking","lane":"ao_labs","kind":"html","purpose":"AO Labs fallback route for Alan's recipe table with ratings, calories, protein estimates, and researched Codex-suggested rows.","url":"https://aolabs.io/cooking/","href":"https://aolabs.io/cooking/","checkedAt":"2026-06-25T16:07:34.742111+00:00","ok":true,"statusCode":200,"bytes":106710,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_railway","name":"Cooking Railway","lane":"ao_labs","kind":"html","purpose":"Railway-hosted deploy route for the canonical cooking.aolabs.io recipe table.","url":"https://cooking-app-production-38a4.up.railway.app/","href":"https://cooking-app-production-38a4.up.railway.app/","checkedAt":"2026-06-25T16:07:34.866695+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"cooking_custom_domain","name":"Cooking custom domain","lane":"ao_labs","kind":"html","purpose":"Canonical cooking.aolabs.io route for Alan's recipe table.","url":"https://cooking.aolabs.io/","href":"https://cooking.aolabs.io/","checkedAt":"2026-06-25T16:07:35.004577+00:00","ok":true,"statusCode":200,"bytes":104144,"textChars":null,"contentType":"text/html","title":"cooking.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"yum_home","name":"Yum","lane":"ao_labs","kind":"html","purpose":"Yum public project page.","url":"https://yum.aolabs.io","href":"https://yum.aolabs.io","checkedAt":"2026-06-25T16:07:35.140433+00:00","ok":true,"statusCode":200,"bytes":3216,"textChars":null,"contentType":"text/html","title":"yum.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_home","name":"Violin","lane":"ao_labs","kind":"html","purpose":"Violin public project page.","url":"https://violin.aolabs.io","href":"https://violin.aolabs.io","checkedAt":"2026-06-25T16:07:35.288437+00:00","ok":true,"statusCode":200,"bytes":3231,"textChars":null,"contentType":"text/html","title":"violin.aolabs.io","json":null,"error":null,"issueNote":null},{"id":"violin_paper","name":"Violin paper","lane":"ao_labs","kind":"pdf","purpose":"Violin restorative visual media paper PDF route.","url":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","href":"https://violin.aolabs.io/violin-backs-restorative-visual-media.pdf","checkedAt":"2026-06-25T16:07:35.442250+00:00","ok":true,"statusCode":200,"bytes":612411,"textChars":null,"contentType":"application/pdf","title":null,"json":null,"error":null,"issueNote":null}]}}]}