Updated 26 Oct · 26 Oct fixes: system health line, sign-in box, one tab per tool, GSOS/email scan fix block · Checking live…
System health
Checking…
Checked twice a day, about 7am and 4pm. Amber from about 70% full or busy, red from about 85% or any memory overflowing to disk.
Fix the scheduled jobs (25–26 Oct)
For each one: Copy here, then in the Claude app: Scheduled › click the job › Edit › select all › paste › Save.
“Canava brand research enrichment”
“Canava places research enrichment”
“Canava resources url discovery”
Updated 26 Oct: please paste this one again (it now reads each candidate site before deciding).
“Canava community research enrichment”
“Canava headroom check”
Added 26 Oct: please paste this one (its saves and its run record now go through without an approval).
“Chat data double backup”
Added 26 Oct: please paste this one (its saves and its run record now go through without an approval).
Laptop chat backup (paste in Terminal, not in the Claude app)
Added 26 Oct: this is the only backup that can reach your chats, and it has written nothing since 27 Sep. Open Terminal on the laptop, paste, press Return. It switches the backup back on and saves a note of what it found for the next session to read.
“Ingredient research · daily” (new job)
Updated 26 Oct, late: each run now links new recipe lines to the library first. If you pasted the earlier version, paste this one over it. In the Claude app: Scheduled › New task › name it “Ingredient research · daily”, set it to every day at 5:30am, paste, Save. It keeps nutrition and prices filled for every ingredient a recipe uses, 20 a morning. Nothing comes back to you; Home Base shows “Research running · X left” and the line goes when nothing is left.
Fix the affiliate job (26 Oct)
Copy here, then: Claude app › Scheduled › click the job › Edit › select all › paste › turn on, ~7:50pm › Save.
“Canava affiliate link check-in · daily”
Commons, 3 broken search addresses (26 Oct one-off): 1% for the Planet ignored the search, Cradle to Cradle ignored the search, Leaping Bunny led to a missing page. Fixed for the next one-off: 1% for the Planet now has a working address; Cradle to Cradle and Leaping Bunny can’t take a search in the address, so the next one-off types the name into their search box.
Fix the sales email scan (26 Oct)
Why: it is switched off, and even when on it only passed a message to another chat, so on its own it never read your email. Last new sales from email: 6, on 24 Oct at 10pm. Copy here, then: Claude app › Scheduled › click “Sales email scan (back on 24 Oct)” › Edit › select all › paste › turn on, 5:30am › Save.
“Sales email scan (back on 24 Oct)”
Also fixed 26 Oct (nothing for you to do): 5 sales that are gone from the brands’ own sites marked ended (St Frank, Elix, Anima Mundi, Cawley Studio, Graza). A kept “limited time” sale no longer comes back to Triage every morning; it comes back once, then waits 7 days.
What's still happening · checked 6:20am, 25 Oct
Your old research jobs never moved online. They still run on your laptop (“Requires your computer”), and they write their notes into your work folder there.
They can read the database but often can’t save. Since 2 Oct the database connector holds changes for a yes on screen (“timed out waiting on a server prompt”), and at night nobody is there to say yes.
So tonight they went round in circles: 35 notes on the same 10 brands and places. One save got through at 6:13am (20 places). Usage is spent and almost nothing is saved.
The earlier block, 16 Sep to 4 Oct (“auto-declined, no stored approval”), was a different permission. No record shows anyone changing either setting, and neither came from the 23 Sep “move to the cloud”, which didn’t happen.
Saving research with no laptop and no extra cost isn’t possible today. Research needs Claude, and Claude runs either on your laptop or online. Online runs would most likely hit the same yes prompt (untested), and the server can’t do research without the paid key you declined. Switching off the four jobs below stops the waste.
The detail, with the record behind each line
Where they run. Each run wrote to files in your work folder at the time it ran. The research log (research-log.md) has entries at 4:11am and 5:08am today; the resource link log has entries at 12:46, 2:49 and 4:49am; the hidden-rows log has one at 1:55am, the guard log at 3:22am and the sales email log at 10:10pm. A run in Claude online can’t write to your laptop. Your screenshots label these jobs “Requires your computer”. The list sessions can read (Documents › Claude › Scheduled) shows the same jobs switched off, with their last run on 23 Sep. So two lists exist: the one on your screen runs, and the one we read is stale. The 20 Oct note “these runs moved to the cloud” was wrong, and the switch-offs on 20 Oct went to the stale list.
What asks for the yes. The database connector (Supabase), on changes to existing rows. Its own description, visible in sessions, says “destructive statements may require the user to confirm before they run”. The research log on 2 Oct: “every UPDATE on brands timed out after 180s (SELECTs fine)”, and on 5 Oct: “UPDATEs on brands hang >180s (reads fine)”. The same message appears through October, and tonight the brand job wrote “UPDATE timed out awaiting approval” and the resource job “write timed out waiting on a server prompt”. New rows mostly go through: WTF / F*CK YES added 7 ideas at 3:07am, the site mirror re-read 85 pages, and the sales email scan added 6 sales at 10:10pm. Updates can still go through when someone answers; the 20-place save at 6:13am was probably answered at the laptop, though that can’t be proven from here.
The older block. From 16 Sep to 4 Oct the scheduled runs were refused outright: “execute_sql auto-declined (no stored tool approval in scheduled run)” in the opening-watch, sales and open-issues logs. It stopped by 5 Oct, and no record says who changed what. Neither setting lives in our files; both sit in the Claude app and its connector.
Still running, looping or burning. “Canava brand research enrichment” is the old “CW-auto” copy: 25 notes tonight on the same 5 Anou cooperatives, nothing saved since 23 Oct, 6:25pm. “Canava places research enrichment”: 10 notes on the same 5 places, then a 20-place save at 6:13am. “Canava resources url discovery”: 3 runs, nothing saved since 23 Oct. “Canava community research enrichment”: no trace. “canava-headroom-check” (hidden rows) ran at 1:55am but its result didn’t reach the database (last saved 23 Oct). “Secret scan & expiry dates (daily)” saved “clean”, but its own log says the scan printed nothing, so that result can’t be trusted. “Media Desk research pass” and “canava-ecosystem-miner” show no runs (last 4 Oct and 11 Sep). We can only see jobs that leave a trace, not your full list of about 25.
What would make research save again (each needs you, and nothing is changed until you choose). (a) In the Claude app, set the database connector to allow changes without asking, then give these jobs the current instructions; they still run on your laptop. (b) Move them to Claude online with the same allow-setting, if the app offers it for online runs; no laptop, no extra cost, not yet tested. (c) The server route with the paid key, which you declined. Until one of these is chosen, switching the four jobs off stops the wasted runs.
Checking…
Reading the latest runs.
Ran overnight
Checking…
Why four jobs wrote nothing overnight · checked 6:15am, 25 Oct
All four kept their notes in files on this laptop, so they ran on the laptop, not online. They could read the database but not save to it: each save waited for an approval nobody was there to give. They also run old instructions that search the web themselves. WTF / F*CK YES, the site mirror and the secret scan saved normally.
“Canava brand research enrichment”: Ran and wrote nothing (its saves were blocked).Its notes show several passes overnight (one at 5:08am), each on the same 5 Anou cooperatives, every one ending “0 of 8 fields filled”. Its own note says the database save “timed out awaiting approval”. None of the 5 cards changed, and it left no run record. It follows the old instructions: it searches the web itself and works on your rating fields.
“Canava places research enrichment”: Ran and wrote nothing (no save landed).Its notes show passes at 4:11am and again later, on the same 5 places (Troutbeck, Prospect at Scribner’s, All That Java, The Healing Acres, Millbrook Antiques Mall), each “0 of 10 fields filled”, Native Land unreachable. Correction at 6:20am: its 6am run did save, at 6:13am, 20 places in one go (stamped “CW-auto”, ratings left at “not rated”). It left no run record. It follows the old instructions (web search, writes a rating).
“Canava resources url discovery”: Ran 3 times and wrote nothing (blocked by a permission prompt).Its log shows runs at 12:46, 2:49 and 4:49am: 3 or 4 resources each, 3 skipped as too general, and one save that “timed out waiting on a server prompt” (Substanz Team). Nothing changed in Resources.
“Canava community research enrichment”: No trace: it didn’t start, or it ran and left nothing.No notes, no run record, and no community record changed overnight.
“Brand research · every night 1am, 25 cards” (this laptop): off, didn’t run.So the only brands researched overnight came from live sessions. A live session restarted brand research at 6:11am.
Smallest fix, nothing needed from you
Dispatch does each night’s brand, place and resource research in a live session using the server page reader, as this morning’s 6:11am restart does. The dashboard keeps checking what was actually saved. Nothing in Claude online or on the laptop changes.
Only you can do this (in the Claude app, Scheduled)
Switch off “Canava brand research enrichment”, “Canava places research enrichment”, “Canava community research enrichment” and “Canava resources url discovery”. Each run repeats the same 5 items and saves nothing. We don’t suggest letting them save: their old instructions write into rating fields.
Server research plan: not approved (24 Oct), parked
Move the research onto the server, the way Media Desk research was built on 3 Oct: a timer on the server wakes a small program, Claude finds the facts, and the program writes them. No laptop, no app open, every run recorded on this page.
Brand researchA server timer calls the research every 10 minutes, 1am to 5am, one brand per call.How many: 25 a night: your asks first (Research this, Refresh, product scans), then brands scoring on your signals.Writes: Facts with sources into empty fields only, where it sells, founders and owners, and for your asks up to 50 products, photos and outside ratings; anything unsure becomes a To check.
Places researchA server timer, every 12 minutes, 1am to 5am, one place per call.How many: 20 a night, the July–September pace.Writes: Address, hours, website, Instagram and a suggested rating with sources. Never your decision or your rating.
People researchA server timer, every 20 minutes, 1am to 4:20am.How many: 10 a night: your asks first, then community people not yet researched.Writes: Public professional facts with sources. No home addresses, no personal contact details.
Media Desk researchAlready built on 3 Oct. Its server timer is switched on after the key test.How many: Up to 10 a night, your Research this titles first.Writes: Website, socials, a plain description, the company and founders, each with a source. Never your take.
Sales email scanCan't run on the server tonight.How many: —Writes: Gmail needs a one-time Google sign-in for the server (about 20 minutes with you, on Google's site). Until then it stays off; the F*ck Yes sale watch still catches sales from brand sites (166 this week).
The one thing you do: put the Claude key into Supabase
Go to console.anthropic.com and sign in. Open Settings › API keys, press Create key, name it CANAVA research, and press Copy. (Under Settings › Limits you can also set a monthly spending cap; $400 covers the estimate below.)
Open supabase.com/dashboard/project/miokgyffvhhylsfmsmmb/functions/secrets (Supabase › your CANAVA project › Edge Functions › Secrets).
Press Add new secret. In Name, type ANTHROPIC_API_KEY. In Value, paste the key. Press Save.
Tell Dispatch "the key is in". Never paste or send the key itself to anyone, including us.
Cost per night, estimated
About $10–13 a night at these volumes (roughly $300–400 a month), billed by Anthropic separately from your Claude plan. Each item is one Claude request with up to 8 web searches: about 1 cent per search plus the reading and writing, so roughly 15–25 cents a brand and 10–15 cents a place, person or title. The real figure shows after the first night, because every run records what it used.
What gets switched off once each one works
Brand research: the 1am copy on your laptop, and the older copy still running elsewhere once it's found. Places research: the copy in Claude online (one tap in the app's Scheduled list; we'll tell you which). People research and Media Desk research: already off. Nothing is switched off until its server copy has had a good night.
How you'll know by morning
Each new job gets its own line on this page. At 7am you should see the light, and under Brands, Places, People and Media a line like "Ran 25 of 25 times overnight", with this week's bars moving. Anything that didn't run or wrote nothing turns red here and goes to Dispatch's queue on its own.
If you say yes: tonight we build the three new programs and their timers (switched off), test each one on a single record once the key is in, then switch them on for the 1am start.
This week's output, against a normal week
By area
Off the laptop · plan, nothing changed yet
Brand research, nightly (1am)Goes to: runs on its own on the server, using the research route built on 3 Oct.Needs: one Claude key, which you enter yourself in Supabase; then the job is moved onto that route and stops writing to the research log on your laptop.If switched off now: no scheduled brand research. Your “Research this brand” asks wait for a live session.On your laptop
Commons ratings (Mondays, 4am)Goes to: Claude online first; later the server route.Needs: reading rating sites through the server’s page reader instead of Chrome, then setting it up in Claude online. Nothing from you.If switched off now: the weekly outside-ratings check stops. Brands you ask to research still get their ratings checked.On your laptop, using Chrome
Computer backup (10pm, to the MICOLI_29 drive)Goes to: no job at all. Your work folder lives in Dropbox, which copies it as you work.Needs: Dropbox set up on the laptop for the work folder, once, with us.If switched off now: nothing changes in practice; it hasn’t saved a backup since 27 Sep.On your laptop
Old brand research copy (11pm, 3am, 2pm, 6pm)Goes to: retired, once nightly brand research runs on the server at the old pace.Needs: finding where it runs (on tonight’s list), then the server route above.If switched off now: about 20–70 fewer brands researched a week.Not yet confirmed; it writes to a file on your laptop
One-off reminders still listed (8)Goes to: nowhere. Dispatch does these in live sessions, and the dashboard’s own check now does the watching.Needs: nothing. They are one-time and stop on their own after their date.If switched off now: tonight’s 11:45pm jobs-fix run and the 7:30am morning check don’t start by themselves; Dispatch does them in a live session.On your laptop
Switched off 24 OctSales email scan, resource link finder, people research, the 3am and 5am brand lanes, the overnight watchdog and the hourly notes check. None had run.Sales email scan and resource link finder go back to Claude online; people research goes to the server route with the brand research.Off
Updated 23 Oct · notes brought up to date since 10 Oct
CANAVA · Systems · pipeline health
Where the connections break — checked against reality.
Every thing we make moves through the same six stages. This map used to be a hand-drawn read of the seams. Now it's wired: on every load it fetches the real tools and checks the real connections — does the tool for a stage exist, does its reader read the canonical source or a dead-end legacy table, is there a live publish gate. Solid seams flow; dashed are weak or manual; dashed-red is missing. Filled markers are auto-verified against the live site; hollow markers are my hand judgment the machine can't check yet. This is the reality map — its dream sister, the Architecture Map, shows the same machine as it's meant to run.
1Journey (Guides) → 2Brands → 3Media Diet → 4publishing / membership / private client. Journey is the template: it is the only track whose input chain, curator, reader and embed all exist, so it is the shape the others copy rather than reinvent.
At position 4: publishing is partial (Stories and Libraries have no embed), private client is built but blocked on the auth fork, and membership has no track on this map at all — no tool, no table, nothing to check. That absence is the finding, not an oversight in the drawing.
Tracks marked follows the template are not in the named sequence. They inherit Journey's shape; they do not set it.
Trawl + direct-to-Claude → Trawl Log all trawl passes through the log
›
—
›
Media Desk · edit+flag+publish ✓ the one list · new finds land here as candidates · retired: old catalog (media-diet.html, 1 Oct) and media-curator · design mock
Every capped or unpaged query, measured against what the table actually holds. Supabase serves at most 1000 rows per request, so a query that never asked for a limit still stops at 1000 and says nothing. Written nightly by canava-headroom-check. This panel stays hidden when nothing needs attention.
The connections we're missing
Reading down the columns, the same seams break again and again. These are the systemic gaps — not tool bugs, but missing joints in the pipeline. Tags mark which are now auto-verified against the live site vs still a hand judgment.
1
No single "edit → preview layout → get embed" path.Hand
Every track has a curator, a reader, and (sometimes) a widget as three separate tools. Nothing lets you edit a record, see its layout, and copy the Squarespace embed in one move. This is the seam you named, and it's the one that repeats everywhere.
2
The public Media reader is wired to a dead-end.Auto
The Media Desk curates the canonical media_entities pool (1,400+ rows), but the public media.html still reads the legacy media_diet_* tables (a dozen rows). The map's Media Diet · Layout seam turns red on load because the auto-check reads the live source and confirms it: the desk's canonical pool never reaches the site. media-world.html reads the right table but is still a draft.
3
Stories stop before Layout. Recipes no longer do.Auto
Half-closed, 2026-08-22. This used to read "the things we make stop before Layout", on the evidence that recipe-reader.html, widget-recipe.html and widget-story.html all returned 404. Two of those three are now live and publish-gated, so the recipes half of the claim is retired: recipes reach Layout and Export, and the reader and the widget were measured against each other and agree. Stories still fall off the cliff — widget-story.html is still missing, so the editorial pipeline runs the whole way and then has nowhere to land. Libraries are in the same state (see 6).
4
Input → Curation routing is manual.Hand
Only Media Diet reliably lands captured items in its curator queue. Elsewhere, a captured thing sits in the Trawl Log and someone has to hand-carry it into the right curator — the routing isn't wired per domain. Journey is off this list as of 1 Sep 2026. A place in places that belongs to a guide (by region or tags, across the descendant tree) now surfaces in the Guide Curator's Waiting to come in band and enters the guide on one tap — promote_place_to_guide(place_id, slug), idempotent, landing at draft · unconfirmed · needs-research and refusing merged or closed records. It closed a real hole: 457 places estate-wide had no entry any curator could show, 351 of them already tagged to a guide and therefore already on the map. Brands, Stays and Partnerships still have no equivalent.
5
Editorial isn't a wired stage — it lives in mocks.Hand
The copy and the layout-design decisions (which template, which widget, the take) happen in separate design mocks, not inside the record. So Editorial can't hand a finished, chosen layout to Export.
6
Most content has no Export/Embed end at all.Auto
Guides, Brands, Stays, Media and — since 2026-08-22 — Recipes reach a widget. Stories and Libraries still don't: they have readers but no way to generate a Squarespace embed, verified by the missing widget files, so they can't land on the site as reusable pieces. Recipes came off this list when widget-recipe.html shipped with its parser regenerated from the reader's, so the embed cannot state a different number from the page it points at.
Every live page in the estate — all of them, not a hand-kept selection. Read from /registry.json, the same file the hub renders from, so this list and the hub cannot disagree about what exists. When it was last touched, what it does, and whether it needs a refresh. The Live column is checked against the site on load: up means the file responds, 404 means it's missing. Scan it before building so we don't dupe, and flag anything stale.
Tool
Purpose
Updated
Live
Status
How this map stays current
This is the canonical state of pipeline health. It is not a snapshot someone maintains by hand — it recomputes on every load. The colored seams above are derived from three cheap, high-signal checks run in your browser against the live tools.canava.co site:
Tool exists — a same-origin request for the stage's file. A 404 (e.g. recipe-reader.html) paints the seam red. No file, no connection.
Reader source — fetches the tool's own HTML and checks which table it queries: the canonical source (media_entities, brands, places, stays, editorial_items) or a dead-end legacy table (media_diet_*). This is how the Media Diet disconnect turns red without anyone flagging it.
Publish gate — checks the reader references the live draft→published gate (a *_public view or a published filter), so we know it pulls the published set, not everything.
Where a connection can't be machine-checked cheaply — a human editorial step, a routing decision, a judgment about intent — the seam stays hand-asserted and renders hollow. The automated layer never overwrites the hand layer; they sit side by side, and the marker shape tells you which is which. Filled = the machine verified it live. Hollow = my read, argue with it.
How future tools register on this map
This tool is the reference implementation of the "wire tools into the ecosystem" rule. When you build a new tool that lives on a track, you don't email me to update a static drawing — you make the tool self-declaring so this map picks it up automatically:
1. Read the canonical source table. If your reader pulls from
a *_public view or filters .published, the publish-gate and
reader-source checks light green on their own.
2. Add a cell to the relevant track here with a data-check:
<div class="cell" data-check='{
"id": "yourtrack_layout",
"kind": "reads", // exists | reads | publish | data | paged
"file": "your-reader.html",
"canonical": ["your_table"], // the source of truth
"legacy": ["old_table"], // optional dead-ends
"gate": "published" // for kind:"publish"
}'> … </div>
3. Point the adjacent seam at it:
<span class="seam" data-seam='{"mode":"auto",
"from":"yourtrack_curation","to":"yourtrack_layout"}'>›</span>
4. If your tool reads a table that can grow past 1000 rows,
register it as "paged", not "reads":
<div class="cell" data-check='{
"id": "yourtrack_curation",
"kind": "paged",
"file": "your-tool.html",
"canonical": ["the_big_table"]
}'> … </div>
That's the whole contract. The seam now reflects reality on
every load — green when your tool truly reads the canonical,
published source; red the moment it drifts to a dead-end.
The rule in one line: a tool isn't "done" until it registers itself on the pipeline-health map and its seam turns green from a real check — not from a hand-placed color.
Added 2026-08-22, and worth saying plainly because it caught this map out: reads is not enough for a table that can outgrow 1000 rows. Supabase returns at most 1000 rows per request here and that ceiling can't be raised from the client, so a tool that fetches brands once gets the first 1,000 of 2,473 and displays them as though that were all of them. Nothing errors. Nothing on screen says so. But reads only looks for the word "brands" in the file, so Brand Desk sat on this map with a healthy green seam the entire time it was hiding 1,473 brands. paged asks the harder question: it counts the table live, then checks whether the deployed file loops until a short page comes back. Green means every row reaches the screen. Use it for any read of a table that is over the ceiling now or heading there — and never fix one of these by raising the number, because the server ignores it. The nightly canava-headroom-check runs the same test across all 206 tools and writes anything it finds to the Headroom panel below.
Kept current · checked every morning
What changed since the last review
Reviewed by hand on 10 October against the live tools. Looked at again on 23 October (the Brand Desk and the nightly research are in the list below). The morning refresh adds anything new below.
New on the tools
23 Oct · Brand Desk: Option A is live, with four status tiles, five actions, a status strip and six tabs (Your calls, Products, Proof, People and ownership, Where it goes, History). Nightly brand research runs at 1am with five cards: her asks first, then brands scored on her signals; sweeps are parked.
23 Oct · Flow pages: Place Flow, the recipe flow mock and this page have live notes. The May Flow Map is marked replaced by this page and Architecture Map.
Guide Curator: decision is Review / Yes / Hold / No; Favourite; "I stayed here" with stay stories; a CANAVA rating kept apart from research's suggestions; a Dogs filter; each guide's own place unit (town, neighbourhood…); "Hard to find" directions; a warning before a place goes Live.
Brand Desk: a five-step path to live; a rating pass that shows who set each verdict; every image in one grid, a placeholder until you clear it; the story builder; founders, owners and funders linked to brands.
Media Desk: the one Media Diet list; links inside your takes; a Role list for people; a private research record (never public); more than one type per title.
New guides: Paris, Kyoto, Madrid, Seoul, Cape Town, Naples, Rome and 39 drafts.
Brand search (6 Oct): Brand Desk and the public library find brands by what they make and what they're made with.
Central word list (from 6 Oct): one shared set of words for what brands make and are made of; research paused on her fields while it was built.
Word list (7–10 Oct): 18 of 19 tools read her one list of words (People waits on "People's roles"). Brand cards carry Disclosure. Research is held to suggestions with Accept / Edit / Clear on the card, and any card can be flagged Investigate.
Guide Curator and maps (9–10 Oct): 3:4 photos with a gallery, swipeable on both maps; directions by real name and address; one pin per place; private notes never reach readers.
Clean base (10 Oct): Kingston, Upstate, Todos Santos, Maine and Montréal/Québec done; NYC and LA running.
Beta: picks recorded from her ticks; the Publish button is hers alone.
Editorial: "Cool isn't enough anymore" and "The CANAVA Questionnaire" idea cards; Baukunst and Sylvie researched.
New checks
Status line (23 Oct): every flow, plan and status page carries one line at the top, Updated or Last checked with a date. The list is on the Workflow Map.
Place structure, every hour; place units after every publish; a daily publish-decision question (from 6 Oct).
Security and expiry checks save on their own again; the live-page check was rewritten.
Research guard (7 Oct): research can set first-pass verdicts but never approve, publish or overwrite her; anything else is held as a suggestion.
Security (7–8 Oct): new tables start closed; readers on 15 pages see published records only.
Home Base, this page and its sister map are now refreshed every morning, and Open Issues gets a note if any of them goes two days without it.
Retired
The old Media Diet catalogue, Media Curator and Brand Curator — each points to its desk.
The Brand Desk test copy. The previous Media Desk, Brand Desk and Guide Curator are kept as "classic".
CANAVA · Pipeline Health · seams auto-checked against the live site on every load — filled = machine-verified, hollow = hand-asserted · the canonical state of the pipeline