A shorter email heading; the rest of the sentence moves into the body
3627763 · 1 fileThe two best-of view reads wait out Postgres contention instead of failing the build
0f8a387 · 1 fileTake the shell's 09-12 icon revert: the page mark is the drawn glyph again, and the 3D component is gone
2c93344 · 1 filePut the page mark back to the 2026-09-01 drawing, not just the tab icon
1a1b63f · 1 fileMigrate SkillWorks to the Compound Labs estate
3263d72 · 10 files
Every day it released
36 of themPut the product icon back to the version Isaiah picked
4bc3e58 · 2 files
paths: the estate no longer reaches anything through a kynth name
2cff3df · 1 fileidentity: purge the retired studio name, domain and handles from reader-facing copy
f66bfe4 · 3 filespaths: ~/Projects is now ~/CompoundLabs (the Compound volume moved to its own mount point)
828dcdd · 2 filesdb: at most three Postgres reads in flight, so the fallback build finishes under the 3s statement timeout
9cdd910 · 1 filechore: generator output (ai-surfaces header rename, advertised, changelog, og-20260827)
84c110e · 1 fileGenerator output from scripts/deploy.sh, committed so the deploy can run
04e767e · 2 filesdb: a blocked Turso reads Postgres instead of 500ing; the site's figures come from sw_stats
cfb70fe · 2 filesmail: sending domain moves to mail.thecompound.tech
a4155a9 · 1 fileVendor the notes glyph the shell's Hashnode row names
f969c07 · 2 filesInstall reviewed 3D brand icons and keep favicon marks synchronized
500bcce · 5 files
workbench: mark-gate judges a saved-pixel mark against its own colours (dev-shell 9a2d630)
1966999 · 2 filesdata: advertised.json as ops/advertised.mjs regenerates it; workbench stamp re-recorded after the rename adoption
094d991 · 1 fileThe corpus is built on Turso after the cutover; every remaining read, the claims and the alerts move with it
eb8c60e · 3 filesemail: render through the one template, delete the copy
8ef1fff · 3 filesdb: the corpus reads route to Turso behind SW_BACKEND=turso
91851e3 · 2 filescrawl guard: multi-key facet 308, robots /*&, GoogleOther, and /api/list refuses crawlers
7e9c58b · 1 filefix(email): studio masthead is the transparent mark beside live "Compound Labs" text
79a0d49 · 1 file
Sync canonical email template
4f86fa3 · 1 filePoint skillworks's own links at skillworks.thecompound.tech
8ffd63d · 2 filesRedirect skillworks.kynth.studio root and restore the Compound Labs identity
e3b86dd · 1 file
chore: checkpoint concurrent estate updates
607062a · 1 filechore: capture remaining estate updates
bf3cf82 · 1 filechore: checkpoint estate updates
324acad · 30 files
skillworks: cap JSON-LD detail copy at 155 chars
7102ea4 · 1 fileAdd bundled-skills guidance and refresh site plumbing
0ac1db3 · 3 files
The graph key reads the register payload token, so it steps at 432px
a828990 · 1 file
Remove trialing from the SkillWorks Stripe webhook
cabb3e2 · 1 file
The score bar is drawn only where the rows on the page actually differ
8c9bbbd · 4 filesThe counts stop timing out, and a failed exact stops becoming a guess
f6b0df8 · 1 fileA bar is decoration, so it stops counting as text over the hero
9ae2d9a · 1 fileskillworks: the character bar lands on the six columns the chart audit approved
1eb2f9c · 7 fileslanding: three claims that left 500px of empty band now share a row with their action
a62f5e6 · 1 filemention engine: commit the missing badge route, dropped from the first pass
68c4da7 · 1 filerepoint the dead shell paths: `Projects/workbench` and `Projects/publication` no longer exist
348b5e9 · 2 filesmention engine: a badge, a claim flow and change alerts for every listing
02c7465 · 15 filesmail: sync the optional review and referral line from canonical
ae74a09 · 1 filemail: house sending domain moves to mail.kynth.studio
9784947 · 1 fileemail template: purge the fork, take the canonical copy
9104005 · 1 filemail: explicit Reply-To on kynth.studio ahead of the house-domain move
f3a44fe · 1 fileemail: left align the column and drop the grey field
07e243b · 1 file
data: commit the derived surfaces the nightly generators rewrote
abb3353 · 1 file
Search is ranked by relevance, and /api/list stops dropping `q`
68e222d · 2 files
score: a colon in a subagent name is a load failure, not a style nit
46c0498 · 2 files
weekly reconcile: 1 path(s) left uncommitted across src — none touched for 6h or more
49bb105 · 1 file
og: serve the new card at a versioned URL so cached scrapers refetch
8c21fbd · 2 filesloadListing: cache() — metadata and page ran the same query twice
a3d9f2b · 1 file
skillworks: same never-read Data Cache write on the detail routes — one per distinct artifact URL, on the estate's #2 origin at 4,710 req/day and 90% MISS
f6e0be6 · 2 files
ISR window: sponsors() passed 900 as its fetch TTL, so `/` shipped a 15-minute window
8c4e1c8 · 1 file
icon sprite: out of the RSC flight payload — 43,074 B a page, every page
e75fc0b · 2 filesadvertised.json is deterministic: no timestamp, so a routine rebuild leaves the tree clean
d41ad22 · 1 fileproduct.ts: the advertised.json import carries `with { type: "json" }`
f9faeec · 1 filecrawl guard: refuse crawlers on detail URLs the sitemap does not advertise
886e832 · 2 filesshell sync: icon defaults and the mark's URIs declared once, not per instance
7b7c01f · 1 filedetail trees: dynamic + edge-cached, not ISR — removes 762,986 ISR write units/day
3cd78c8 · 4 filessitemap: advertise the 10,000 best listings, not 40,000 of a 509k corpus; detail page related lists 6→4
11bdef2 · 2 filessearch: /search 500'd on any term that matched little, via an unindexable ILIKE
b5f8c16 · 2 filesanalytics: the error-tracking noise gate was reading a property that does not exist
3f9bf08 · 1 file
search: the snippet leads with the score, and a dead detail URL stops saying 200
986be1a · 10 files
shell sync: docrail stops deciding from a box a reader cannot see
f6ea917 · 1 fileshell sync: one footer instead of three, and the footer's own marks as symbols
37d9c07 · 1 fileskillworks: the cache window was hourly for data that changes nightly
ec8c33a · 1 fileicons: drop the Record<string, string> annotation so a typo is a type error
fcd8938 · 1 fileanalytics: the comment still told you to reverse-proxy PostHog through Vercel
2e08b15 · 1 fileicons: one <symbol> per glyph per document, not one body per instance
24456cb · 2 filescost: take PostHog off Vercel's meter and widen the ISR windows
15b59b0 · 3 files
footer: the same format the agent frame settled on — brand above, equal columns, FOLLOW column
fba81d3 · 1 filefooter: move the social rail under the brand block, drop the group labels
b1cdced · 1 filesocial rail: 44x44 tap targets and an 8px gap, because the rail shipped under both floors
54d8bf7 · 1 filefooter: the Kynth Studios + founder social rail (shell sync)
9b607eb · 1 file
footer: 5 . 7 . 4 becomes 5 . 4 . 3 . 4 across four columns
54d5657 · 2 filesfooter: every link carries a Solar glyph, and the studio credit adapts to the theme
edfac72 · 2 filesFront Wire and SkillWorks come down too
61fe953 · 1 fileworkbench sync, and the changelog stops publishing the pass that was pulled
cfb5842 · 1 file
db: dedupe identical in-flight reads, which is what took the shared database down
cf12e8f · 1 fileanalytics: drop the three exception kinds that made the error digest 100% noise
bd8a509 · 1 file
skillworks: the offers were on the page with no price on it
c652050 · 2 files
the claim register, rendered at /sources and re-checkable
a229e74 · 1 filethe generated head-to-heads: /compare/<a>-vs-<b>, from the vendored compare machine
f049823 · 1 fileroute shims, crawl surface, status and security: this product 404'd on every URL the outside world deep-links to
973c7fa · 4 fileslanding: the tab title carried no product name at all
1463f53 · 1 file
db: record the partial index that stops /best-subagents killing the build
c90623f · 1 filebadge: hand the maintainer the line, on their own row
48865cc · 2 filescounts: the total is exact again — two surfaces were publishing it 68 apart
f3c5c3f · 1 fileapi: publish the index's numbers, and what it holds from one repository
237b7cd · 2 filesshell: the "part of Toolproof" credit, and an /api/stats to be read through
ac7250d · 1 filecompare: the nightly scores stay; the schema said nothing about the page
82aae19 · 5 files
mobile: phone-width column priority for the rows table
fe6ee84 · 1 filesponsor page: stop selling nightly freshness the homepage says we lost
05a6d1e · 2 files
studio credit: name Kynth Studios in all four layers
9c379de · 2 files
/best-plugins, and the counts underneath it were estimates
8186995 · 5 files
Finish the 2026-08-02 correction on the three surfaces it missed
91fe8da · 3 files
error.tsx: catch a thrown route instead of showing Next's default
db1b638 · 1 file
Take the enforcing crawl guard from the workbench
bdcf5bf · 5 filesCarry the shell that closes intent.json's eight MISSING items
c9a0fb4 · 7 filesCount by estimate, not by full scan
55b6717 · 1 file
count: fall back to the planner estimate instead of failing the build
ebb8919 · 1 file
Answer "best claude subagents" with the number that was already computed
deba477 · 4 files
Stop publishing "will not load" against skills that load
2a4f4a9 · 6 filesShip the crawl foundation this landing went live without
f9965ec · 2 filesSponsorship fulfilment runs itself, and an incomplete checkout is still a paid order
c1dc386 · 1 fileA ceiling without a retry is half a guard (trap 12)
0c664e7 · 1 fileTake the widened funnel selector (trap 11)
c6624b0 · 10 files/api/list must not read through Vercel's Data Cache (trap 2)
746b17b · 2 filesAn empty index is a measurement; an unreachable one is not (trap 1)
cff22b7 · 3 filesStop attaching the last run's date to a number that accumulates
f92e703 · 2 filesSay what the CLAUDE.md sample actually is
3a44a25 · 1 fileA timed-out read must not become a 24-hour 404 on a listing that exists
4708e03 · 1 filePut the last of the pre-port brand right: the glow, the logo and the share card
797d424 · 1 fileFix the verdicts, the counts and the nightly that was failing silently
d0adb4b · 8 filesRebuild on the shared shell, rather than restyle in place
bb84a9a · 55 filesWire the estate switcher into the nav, beside the lockup on every breakpoint
18c7c82 · 1 filePrerender the head of each detail tree instead of claiming to prerender all of it
36cef38 · 5 filesperf: dial DB load to zero-customer reality
75bf369 · 17 files
Never memoise a failed count as zero
aa0bcb7 · 1 fileWear the house shell on every route
374f7cd · 7 filesRebuild the whole site on one theme, with the product on the first screen
c4e57af · 35 filesPoint the icon default at the accent variable that still exists
8f65841 · 1 fileRebuild every route except the landing in the template's own language
f781f38 · 41 filesRebuild the landing on the Soundra template
107e20c · 42 filesRebuild base.css: the cut-section strip was deleting live rules
f89ec47 · 3 filesFix every count reading 0 on the dynamic routes
96606e6 · 1 fileSay why a browse grid is empty instead of just saying nothing matched
2c499bf · 2 filesHand og:image back to the real share card
0aa2fff · 1 fileLead the meta description with the wedge, and point the share card at /og.jpg
bd6ffc1 · 2 filesReplace the placeholder front end with the ported sift-ai template
d768b9e · 30 filesFail loudly on a missing Supabase key instead of rendering an empty index
e79545a · 1 fileLive OG card from index data, count-query fix, deploy verified
bd46934 · 3 filesSkillWorks: scored directory of Claude Code skills, subagents and plugins
3682067 · 34 files