Watch the AI work
This is the change history of the Tonvin Collection website itself, one line per change, newest first. It is read from the site's own git history, so it shows what was changed and when, in the words written at the time.
TVC repository only, version 1. Source: git only; deployments are not included. Measured , covering the 60 days from .
How the loop works
Work here goes plan, build, verify. A plan says what should change and what would show it worked. An AI model makes the change on a branch and writes the commit. A second AI model, the verifier, is then asked to find what is wrong with it before it reaches the main branch. This explainer was itself written by an AI model.
The log below is only the part of that loop that git keeps. It does not show the plans or what a verifier found. An entry carries the “verifier named” mark only when its own commit message mentions a verifier review; an entry without the mark is not claimed to be unverified, it is simply not recorded here. 292 of the 296 commits carry a co-author trailer that names an AI model. The kind labels (feature, fix, test, content, infra) come from cautious keyword rules on the subject line, and anything the rules do not recognise is labelled other.
By kind
- Feature 48
- Fix 42
- Test 1
- Content 57
- Infra 56
- Other 92
Changes per week
- Week of 73
- Week of 157
- Week of 40
- Week of 8
- Week of 12
- Week of 1
- Week of 3
- Week of 0
- Week of 2
The log
104 entries withheld because they name private sites or infrastructure, or give technical detail. Their date, kind and file count are kept; the wording is not.
2 changes
- Content(withheld)
0fefcea· 1 file - FixVincony flagship: re-verifier fixes 1-7verifier named
2f1a496· 10 files
71 changes
- FixVincony flagship: verifier fixes F1-F12verifier named
2d1883c· 25 files - FeaturePin the flagship: facts, provider-name exception, order, deck, page, SQL
de728a2· 1 file - TestVincony leads: pinned first in the default order and the deck, Flagship badge, home card, site-page link
a0e3c05· 8 files - FeatureAdd the /flagship/vincony page, its OG image and its registry entry
fc18bff· 3 files - ContentVincony flagship: dated content module, constants and the directory-row SQL
72fa699· 3 files - Other(withheld)
96bddfe· 4 files - Other(withheld)
705f19c· 5 files - Infra(withheld)
96192b9· 2 files - OtherDERELICT reach pill: wider on narrow phones, wraps at spaces, never takes focus
5c847d7· 1 file - Infra(withheld)
563bb17· 10 files - InfraMeasured: the optional 3D studio (B-SCENE): log-scale bars, plinths, voice-reactive orb, tiered quality
e47db03· 9 files - ContentMeasured: the quiz copy (B-COPY): interface wording and 120 AI-host lines, with a test pinning digits, site names, honesty claims and arity
21344ae· 2 files - InfraMeasured: the quiz client shell (B-UI): dialog, store, screens, host slot, placeholder sound
b92cdc6· 26 files - OtherDERELICT reach pill wraps instead of truncating on narrow phones
00564c4· 1 file - Otherderelict walking F4: the mouse-hover 'Examine X' label returns in ReachPrompt
442a8e3· 4 files - Otherderelict walking F6: no comfort vignette in step-move
bd12d4c· 3 files - Otherderelict walking F5: auto-walk timeout scales with the distance
5eb7c46· 3 files - Otherderelict walking F3: leave the walk request in the store while input is off
18ce03c· 3 files - Otherderelict walking F2: reach is recomputed on the first frame after input comes back
cdbc022· 3 files - Other(withheld)
a26e3f3· 3 files - InfraMeasured: the quiz engine (figures, 34 templates, distractors, bank, select, score, state, save) with R1-R8 pinned
ab1458c· 24 files - Feature(withheld)
cf0d881· 1 file - Infra(withheld)
fc76b1e· 5 files - Infra(withheld)
0c2a345· 1 file - OtherDERELICT walking W2 L7: hotspot-pick LOS test follows the merged one-LOS rule (hotspot on the near console face)
870fc27· 1 file - InfraDERELICT walking W3 tools: hook v2 contract, pw-smoke P10-P14, walk-sweep replaces yaw-sweep
1087a3c· 13 files - OtherDERELICT walking W2 L7: serial wiring (Walker, taps, joystick, reach pill, E, door, hook v2, HotspotList walk-then-interact)
0328f7a· 9 files - Fix(withheld)
e37787c· 5 files - Other(withheld)
6e76de1· 3 files - OtherDERELICT walking W2 L5: floating Joystick, ReachPrompt, pure joystick core + tests
1923f20· 5 files - OtherDERELICT walking W2 L1: Walker (WASD + joystick ref, step-move, auto-walk with give-up relocation, edge-triggered door latch, reach) + pure walker-logic with tests
9d2cb5e· 3 files - Other(withheld)
5a4f373· 4 files - Other(withheld)
9176c24· 3 files - Feature(withheld)
3ceeb9a· 5 files - OtherMonthly ops tally holds the WordPress & forum group back the way the public join does
f2c1143· 3 files - Feature(withheld)
5751994· 6 files - FeatureRegister /privacy as a public page; footer link next to Security
3d7e8ac· 3 files - Fix(withheld)
c94cff7· 3 files - Content(withheld)
bb58d72· 2 files - InfraBundle: deck launcher reaches the store through GameShell, not a dynamic import of it
2c6165d· 4 files - OtherDERELICT walking W1 integration: settings defaults for walking, parameter names the hotspot-field scan reads correctly
a50ff5b· 3 files - ContentDERELICT walking W1b: world-space placement rules (approach-point pitch/size/separation/reach, rect pinch/narrow, spawn clearance, blockers/LOS, door thresholds) + content-check door-data
eb93f9c· 4 files - OtherDERELICT walking W1a: world-space contract (types.ts), pure walk engine (walk.ts) + tests, fixtures to new shapes
df2a950· 7 files - OtherDERELICT walking W1c: Spine + stub rooms in world space (spawn, walk rects, pos/approach/reach, door thresholds); structure pins
546ee0c· 2 files - FeatureDeck: games hub slide + DERELICT poster slide (Early build) whose Play opens the real game over the deck
4f7f519· 6 files - Infra(withheld)
3943a10· 6 files - Othertvc: no surface prints a date later than now; hold back WordPress group in the ops join
fce2ccc· 11 files - Fixtvc: AF2 audit fixes M2 M3 M4 L1 L3 L7 + future-dated lastmod (AF4-a)
1f5fbf3· 17 files - OtherDERELICT: panels taller than the viewport scroll from the top instead of clipping it (Settings Done unreachable at 1440x900)
06a54d7· 4 files - Content(withheld)
9cd8c09· 1 file - ContentAdd /privacy page: plain-English data practices, source-mapped copy, structure tests
4a7c758· 3 files - Other(withheld)
fcf62c3· 7 files - Infra(withheld)
6bf5f94· 11 files - Othergames: pure common layer (types, rng, save, prefs, subtitles, flicker, manifest, banned-phrases) + tests
4872e1b· 16 files - Other(withheld)
f2a28d1· 9 files - Othercheck-visibility: parse generic accessors and fail when any exported async function goes unparsed
9eccf86· 2 files - OtherDERELICT: render the toast from the lazy GameRoot to keep it out of the first-load shell
c478771· 3 files - ContentDERELICT: verifier round 2 - hint a11y, title scroll, latent room guards, truthful door copy, lazy-only stringsverifier named
0545f24· 22 files - Content(withheld)
77f6d83· 4 files - FeatureCiteFiles tests: recount the file (no hard-coded counts), exactly one footnote per page, tag scanner robust to =>
48c77f8· 2 files - Othercheck-visibility: parse past a braced return type; fail loudly on a near-empty body
fb089a9· 3 files - OtherSearch index keeps the CiteFiles tag, so grid chips survive the swap to the loaded index
d352890· 3 files - Content(withheld)
1fe2fa9· 1 file - ContentShow CiteFiles AI-SEO ratings: deck slides, site pages, directory cards, summary lines
ab76861· 14 files - ContentCiteFiles ratings: pure module, server-only data accessor, tag on summaries and slides
5e1d97e· 8 files - FeatureAdd the CiteFiles ratings importer (copy-trim of the fleet export; reproduces the snapshot byte for byte)
4ee50fe· 2 files - OtherDERELICT: free look and audio edge cases
fcdb1ea· 5 files - FixDERELICT: lit fallback room with a way back, toasts, early-build tag, hint cooldown, focus fixes
08c7056· 14 files - OtherDERELICT: seal the Power Core door, never enter or load into a room without a scene
b3c95da· 13 files - Other(withheld)
3e7ade4· 4 files - Content(withheld)
a9a475c· 1 file
95 changes
- ContentExplainer pins follow the map to nine slugs (the seven-slug pins went stale when the re-records joined)
4cb571c· 1 file - ContentExplainers: vinony + awesome-websites join the slide map after their re-records (9 of 10 live; police-census held)
2ba5050· 1 file - OtherDERELICT: read the focus opener at first render (an Esc before WebKit flushed the passive effect cleared the slot)
c32dd7a· 1 file - ContentShowcase: per-site explainer videos on the site slides (7 sites), print note
d276b36· 6 files - Feature(withheld)
838ca41· 10 files - OtherDERELICT: focus restore retries while focus has nowhere (WebKit refused focus() on ~1 in 4 first puzzle closes)
7471f56· 1 file - InfraDERELICT check-bundle: note the known looseness of the module-id comparator in its header
27802f4· 1 file - Other(withheld)
77098ed· 2 files - Other(withheld)
39b4f02· 2 files - InfraDERELICT save: never delete the original when the backup failed, keep-first backups (3 slots), notice only claims a backup that was written
ebf6408· 2 files - Content(withheld)
154f6d8· 1 file - FeatureDERELICT: focus returns to the opener of a lazily loaded panel on first open too (opener recorded at the open-action)
162d872· 7 files - Other(withheld)
cda5b6c· 3 files - FeatureDERELICT: lazy panels fail inside the dialog (Retry + a way out) instead of taking the page down
4929645· 2 files - Other(withheld)
e52c8eb· 5 files - Contenthide-overlays: hide the Newsletter-plugin subscribe modal by id (no consent wording, heuristics can't catch it)
e11dd63· 1 file - Othercapture.js: fail a first-capture whose body is blank instead of storing it
ce3711d· 1 file - Content(withheld)
af7c050· 4 files - Fix(withheld)
15c50c0· 10 files - ContentVideos: publish -v6 (measured per-shot lip-sync offsets; median residual 241->30ms; two cuts to b-roll; one chorus shot regenerated)
f543703· 2 files - ContentStack content: operator SEO line, proxy allowance label, WordPress group tile, free-courses band + measurer, Showcase pages guard
e43f92a· 13 files - Other(withheld)
bfe57a9· 9 files - InfraDERELICT W1d: check-bundle A1 accepts pure Turbopack module-id renumbering, logged per chunk; anything else still fails
56a9a11· 1 file - Other(withheld)
7383d9c· 1 file - InfraDERELICT W1d: pw-smoke P7 waits for the 1 s debounced autosave instead of racing it
00cffe9· 1 file - Contentshots: fail a render whose body is blank instead of storing it
c9b1484· 1 file - Other(withheld)
69521a4· 1 file - Othermoney-decisions-uk case: re-point 4 passages from the 404ing llms files to the homepage
fdfd646· 1 file - Infra(withheld)
960f0f0· 5 files - Other(withheld)
3091ce6· 2 files - InfraHero: full automation list in the strapline; 'Watch the showcase' CTA under the header (owner, 2026-10-26)
58b29ce· 2 files - Infra(withheld)
3d4fd9f· 17 files - Fix(withheld)verifier named
29f459c· 9 files - FeatureDERELICT P1-UI: game shell, title/unlock/pause/settings, P2 panel, subtitles, Web Audio synthesis
d5aa86f· 19 files - OtherDERELICT P1-SCENE: spine corridor, free look, hotspots, quality tiers, debug hook
211f9d3· 10 files - InfraDERELICT P1-TOOLS: check-bundle, pw-smoke, yaw-sweep + README (debug contract)
7633bc7· 4 files - ContentDERELICT P1-ENGINE: state machine, save/load, hints, placement validator, content checker, P2 spine-junction puzzle
9810490· 14 files - Infra(withheld)
b688896· 6 files - Other(withheld)
31ee020· 13 files - ContentDERELICT P1-CONTENT: games registry, spine room with 5 hotspots, P2 copy, placeholder lines, credits stub
23eab60· 5 files - FeatureShowcase title slide: count-only "N WordPress & forum sites run separately" item
1ae3be8· 7 files - Feature(withheld)
c3fae41· 2 files - OtherAI writers: reword the running-state claims to the live truth
7acd306· 3 files - Other(withheld)
bc2016b· 6 files - Fix(withheld)
3a795e2· 10 files - FeatureSecurity sub-page: register /security/how-we-test in the page registry; /security review date 2026-10-25
f58e624· 4 files - FeatureSecurity: 'How we check our own security' section on /security and the /security/how-we-test page
0b0ba85· 7 files - InfraLadder strip: 'paid tiers come late in the ladder' (verifier: paid T6 precedes free T7, the :138 header is stale)verifier named
9362f8d· 2 files - FeatureDeck verifier round: ladder claims only what fleet-scrape.sh does, uniform rungs, touch isolation, endpoints clampverifier named
17d6297· 6 files - FeatureScrape slide: proxy bandwidth is a 10,000 GB/month allowance, not usage
18bbc4f· 3 files - ContentDeck pins: motion test counts the imported video slide; wording test follows the "websites in this slideshow" relabel
0fcd937· 2 files - ContentDeck: one slide per video, animated fetch ladder on the scrape slide, title breakdown line
7539a81· 8 files - Fixseo0 verifier fixes: /ai.txt joins leakcheck SURFACES; scoped-claims DERIVED covers the registry + per-site builderverifier named
3fe4cdc· 2 files - FeatureSEO/AEO safe wave: every machine-readable surface derives from one page registry
c0638f4· 32 files - Content(withheld)
79dbc29· 2 files - Content(withheld)
575af54· 2 files - ContentVideos: -v4 = the lip-synced Neon Signal (94 edits, sung lines generated to the vocal); other files copied unchanged
c3ff5cd· 2 files - Infra(withheld)
7ddf169· 2 files - Fixstack: verifier fixes (hand-check wording, clamp-safe description, caption dates, present zeros, behavioural tests)verifier named
a4726f9· 3 files - FeatureDERELICT P1-CORE: add three/r3f/postprocessing deps and lib/derelict/types.ts contracts
aab8832· 4 files - ContentMusic: antvon sample is Forever In Motion (Pt. II)
92a2cd0· 1 file - ContentHeader: Videos and Music top-level, the rest in one accessible More menu
325d9f4· 3 files - OtherScope the root metadata, JSON-LD and ai.txt claims; scope the category sentence to listed sites
b5fa528· 4 files - Otherstack: one number per figure, every typed figure dated, no printed zeros
ec7b88a· 2 files - Feature(withheld)
929f99b· 6 files - OtherScope the best-resource aim to showcased sites (footer, feed, home meta, llms routes)
3903d6e· 6 files - ContentMusic: the total distinct-songs tile says 'at most'
00e68b1· 3 files - ContentD4: /about expansion ported onto production (live figures, how the fleet and agents are built, FAQ, what we don't do)
3e9b00a· 10 files - Other(withheld)
f716ca8· 17 files - Content(withheld)
e9608a3· 6 files - ContentW21-2 C: data-driven counts and copy for the WordPress & forum group (identical at 0 rows)
6b270c5· 8 files - Feature(withheld)
9d1cb54· 7 files - Other(withheld)
ddde674· 6 files - Other(withheld)
ee03186· 1 file - Other(withheld)
6e1341f· 2 files - FixVideos: files -v3 (poster metadata stripped; two frame defects fixed)
588bd32· 2 files - FixVideos: verifier fixes — honest intro, no lengths in prose, -v2 files without metadata, regenerated captions, video sitemap, /videos in the leakcheck tests
92b9d5b· 13 files - ContentVideos: durations from the published files (ffprobe), test pins them
fc8eea4· 2 files - Content(withheld)
7a9e3b2· 19 files - FeatureD3: /wordpress-fleet prints no tile or section without a valid run date (F5 residual)
1b321c0· 2 files - FixD3 verifier round 3 fixes: dated WordPress machine total, smoke requires live place data, leakcheck status on new surfaces, scoped observability copyverifier named
6f4b439· 14 files - FixD3 INT-3 fixes: scoped panel claims, music out of the self-hosted band, dated WordPress machine total, stricter smoke/leakcheck
01bdcdf· 27 files - Fix(withheld)
4eaa020· 4 files - ContentD3 INT-3: place data, music and WordPress fleet wired into /stack, the deck, home, sitemap, footer, llms, leakcheck and smoke
ba92009· 14 files - Other(withheld)
10a681d· 3 files - FixW18 fixes round 2: sources named per directory from measured labels only; producer crash vs refusal
35a937e· 8 files - ContentW19 U19: /music — AI-generated catalogues stated plainly, typed figures, one sample per showcased catalogue
1a32028· 7 files - FeatureW20-G: /wordpress-fleet page and shared builders; the WordPress fleet's servers join the machine total
63c6436· 6 files - Content(withheld)
f606361· 3 files - OtherW18 B18: "Built" sections on the four place-directory case pages; shared place figure builders
b5ba96f· 10 files - FixW18 fixes: "with an image" counts listings, not image rows; copy scoped to what is measured; producer exit codes
605be61· 10 files - Other(withheld)
eae848e· 13 files - Feature(withheld)
9c450c5· 10 files - Fix(withheld)
75e7e1c· 5 files - InfraNew TVC logo: violet-to-cyan gradient tile with geometric T V C, hinted 16/32 favicon, inline header/footer mark
76669c3· 8 files
39 changes
- FixD1 final copy fixes: own-website rule scoped to the first system; no unverified grid-stopping claim
97c892f· 5 files - Content(withheld)
e9e967d· 4 files - FixD1 fixes: /outreach says only that the engine is built and tested; true address provenance; no "own hardware"
c25c25a· 15 files - FeatureD1 INT-1: /stack mail subsection and outreach band, control-panel still, /outreach wired into the site
c5665e4· 11 files - OtherD1 O17: /outreach says what was built and that nothing has been sent
9b03332· 6 files - OtherD1 M16: mail subsection builders and a read-only mailcow count (292 mailboxes, 129 domains)
783ec32· 6 files - FeatureD1 P: one control-panel still on /ai-seo-system; the rest wait for a structural re-redaction
5daf697· 5 files - OtherD1 S0 seams: four review dates and swept.places allowed as ISO dates only; lead slides can carry an image
1957b95· 5 files - Other(withheld)
39b0eaf· 2 files - OtherW2 round 2: the showcase is curated, not largest-first; llms survive a stats hiccup; a11y and dates
a3a645e· 12 files - FixW2 fixes: the showcase index is reachable (List view), and two pages' dates agree with the sitemap
a72e92c· 13 files - Other(withheld)
5498d3d· 7 files - InfraW15 lane G: server-rendered showcase index with CollectionPage LD; /badge says where its figures come from
dcb355a· 9 files - FeatureW15 lane F: llms.txt and llms-full.txt well-formed, with every site page and case study listed
8dc749b· 9 files - Other(withheld)verifier named
5541a4e· 7 files - Infra(withheld)
6e2604d· 9 files - Featurecategory hub: 'Categories, most sites first' (sorted by site count, not size; a 997K-page category sits above a 46M one)
c68c578· 1 file - Fix(withheld)
c5f82af· 20 files - ContentW15 lane D: headings, descriptions and row-derived intros on the hubs; Dataset JSON-LD on /measured
12bcfd3· 13 files - Feature(withheld)
1e1a2a9· 16 files - Contentcontact: description no longer promises reply handling; the delayed form state is headed 'Message received'
568cd81· 2 files - FeatureW15 A+C+E round 2: case dates never before the page existed; no unmeasured reply promise
a10943d· 12 files - Fix(withheld)verifier named
94c8929· 13 files - Infra(withheld)
ebaf719· 22 files - Content(withheld)
5008467· 49 files - Other(withheld)
31fd1d6· 2 files - Fixwave 2 fixes: honest scrape-ladder copy, applied-in-30-days, per-figure review dates, zero guards, CF timeout
13ba5b5· 18 files - Infravinlingo: Built and Being built sections on its case page, measured nightly; curated showcase slot; collection row update script
66b36a5· 6 files - Featureshowcase: stats, AI SEO, scrape and observability slides lead the deck; a Workers slide closes it; footer names Vincony AI Ltd
a31c9b8· 5 files - Infra(withheld)
6efda39· 12 files - Fixcase studies: apply review fixes — drop false or stale claims, fix tag-spacing, hold pre-launch sites
1057478· 85 files - Content(withheld)
bdb553a· 108 files - Fixintegration fixes: explain the public total, hide empty SEO sections, date and wording fixes
e5f473e· 15 files - Fixai-seo-system: read the first-fix date from swept, where the sanitised fleet stats keep date strings
82431fa· 2 files - Contentcase studies: richer pages, up to 10 verified passages, AI-SEO facts and a candidate harvester
c883cbc· 22 files - FixAI SEO system page: the measure-fix-verify loop, every figure read from measured keys
6198077· 4 files - FeatureCloudflare Workers page: 38 edge-hosted sites, counted in the public total, never in search or the sitemap
f6a74d7· 12 files - Content(withheld)
970d24a· 3 files - Infrafigures: measure all 12 servers and the AI laptops; the home page counts every site
3f7712d· 27 files
5 changes
- Infra(withheld)
d905247· 1 file - Featureanalytics: queue gtag commands as Arguments objects, not Arrays; deck and gallery: no fade on a no-op targetverifier named
f1a20e6· 4 files - Contenthygiene: /stack loses its nested <main>; the search index keeps 24 content samples per site; GridSite dates are typed as they arrive
d792c40· 6 files - Featureanalytics: gtag.js loads on the first interaction or after 6 s, not with the page
a91f462· 3 files - Infrashowcase deck and site gallery: CSS fades instead of framer-motion; the dependency leaves the repo
f455b17· 6 files
18 changes
- Featurehome hero: slide changes on CSS keyframes instead of framer-motion; the first slide renders static and complete without JavaScript
910bcb8· 4 files - Infra(withheld)
55a9489· 4 files - Infra(withheld)
fa9d6c2· 2 files - Otherhome: the Full Collection shows the 24 largest sites; search, category tabs and "Show all" fetch the public index once and work over all 105
c08af3b· 7 files - Content(withheld)
b6034d4· 8 files - Contentperf: content-visibility on the grid cards and lazy-loaded analytics — the two things the mobile first paint was actually waiting for
1fbfd72· 2 files - Otherperf: keep the 828 image width — the three-step ladder made phones fetch 1080-wide hero images and cost /showcase its mobile score
4a96766· 2 files - Otherperf: the grid's client rows carry only what a card renders; the home's noscript link list goes
39f46ee· 6 files - Otherperf: three image device widths instead of eight — a card's srcset drops from 10 candidates to 5, a 100vw image from 8 to 3
5474be1· 2 files - Otherperf: one SVG sprite for the per-card icons — 343 inline lucide drawings on the home become <use> references to four <symbol>s
eac3278· 6 files - Infra(withheld)
26fdbcc· 2 files - Inframeasurements: a reading the sweep did not adopt is never compared, summed or dated as if it were
df52512· 13 files - Othercases: eleven files revised after an in-context review of every passage
f1dc9e6· 11 files - Infra(withheld)
9f98a03· 5 files - Infra(withheld)
6b3d526· 5 files - Infrachanges: /changes — what moved, read from the collection's own measurements
3ac86ef· 6 files - Infracategory hubs: a "What the collection measures here" strip — the category's page-count trend over the sites measured at least twice, the status tally from the public snapshot, and the four coverage counts the /stack sentence uses
823080a· 5 files - Featurecases: sixteen more "How a site is built" studies, one for every remaining curated deck site
e5e8b10· 16 files
4 changes
- Content(withheld)
a79ef40· 4 files - Infra(withheld)
30a132f· 11 files - Otherllms surfaces: the per-site card gains Publishes llms.txt, Feed and a dated Status line plus Features and Explore blocks; llms-full gains Features, Explore and Card lines; every index item carries ': ' after its link
80c1c77· 3 files - Featureopen data: /api/sites.json v2 — every public field per site, rank and page-count history from public-only queries, status and uptime from the public ops join
58d9e13· 6 files
22 changes
- Infrasitemap: per-category lastmod filters by the mapped category name (the raw slug never matched, so every category fell back to the global max); stack drops a typed 99 that contradicted the measured sending-domain count; chart labels use full numbers
74b69ef· 5 files - Featureperf: no viewport prefetch on any remaining link (deck, breadcrumbs, hero, detail, lists); hover prefetch stays
32d0b1c· 24 files - Contentmeta: /showcase/case description 176 → 138 chars, clamped like the other static pages
5b56b4f· 1 file - Feature(withheld)
f6e5f87· 15 files - Otheroperations: deploys in the last 30 days on the public table and the trust line; /operations.json emits the same per-site rows the table renders
8a2783d· 7 files - Infrastack: every measured figure gets a dated sparkline and change text with its window (24 figures via a tested registry)
ede32a4· 3 files - Infradeck: measured strip on every site slide — rank among measured sites by size + the detail page's trend sentence
69d0eff· 3 files - Infradetail: dated page-count history chart under the trend sentence (server SVG, sr-only table)
490aa2e· 5 files - Infracrons: nightly case-study attestation inside the container + monthly feed discovery (scripts; box wiring follows)
64a40dd· 4 files - Content(withheld)
ecbebbe· 1 file - Other(withheld)
9d38bd6· 2 files - Otherlanguages: one row-derived sentence per language; dated CollectionPage + breadcrumbs on both routes
7a0a7d1· 2 files - Otherjson-ld: about, all-sites and recent pages gain WebPage nodes, breadcrumbs and data dates; hand-reviewed date shared from site-meta
4760ab1· 5 files - Otherjson-ld: category pages are dated CollectionPages with breadcrumbs
534fbd5· 2 files - Otherjson-ld: Organization + WebSite graph once in the layout; home is a dated CollectionPage
ef43822· 3 files - Featurea11y: lift gray-500 to #8b95a7 so muted text meets AA on every dark surface; deck keyboard hint uses it too
087d8eb· 2 files - Featurecases: a malformed case file no longer takes down the sitemap, the deck or every detail page
b473d41· 6 files - Otherperf: no viewport prefetch on list-item, nav and footer links (hover prefetch stays)
4465ae8· 5 files - Infraai.txt: hourly revalidate with an explicit Cache-Control and a dated review constant; contact address split so Cloudflare cannot obfuscate it
574c6a0· 2 files - Contentmeta: every static description fits 158 chars; home and about rewritten to keep their meaning
bffd42e· 5 files - Featurellms.txt: point every site line at its detail page; list the machine-readable surfaces
c91ce32· 1 file - Otherjson-ld: typed Organization, WebSite, WebPage and BreadcrumbList builders with @id references
b0e420b· 2 files
13 changes
- Othertests: cover lib/json-ld, lib/site-meta and lib/format
f04d784· 3 files - Infrafleet scripts: stop logging every line twice; skip the four empty-sitemap sites; alert on a no-op sweep
f90a8ba· 5 files - Othercontact: say "received" rather than "sent" when the mail relay fails
1ff9e8c· 2 files - Featureui: keep Date.now() out of the deck's render path; omit the category OG count on a DB error
6d07ada· 2 files - Infra(withheld)
eb28cba· 2 files - Featurecases: the panel report arrives once a day, not every six hours
3a8c472· 1 file - Content(withheld)
afb32cb· 26 files - Othersitemap: lastmod from data, never from the clock
d8c3cb2· 2 files - Otherisr: on-demand ISR for /showcase/<slug> and /operations/<month>
9377663· 2 files - Otherrepo: .gitattributes pins LF line endings
66cc147· 1 file - Infra(withheld)
653d9b9· 1 file - Fix(withheld)
9c390c6· 1 file - Infra(withheld)
2138ae6· 2 files
1 change
- Contentops feed: daily cadence - stale after 36 h, wording and watchdog thresholds follow
e8e8835· 10 files
5 changes
- Infrafeat: measured figures become trends, and /operations gets a machine-readable twin
4444b16· 14 files - Fixfix(db): cap the pool during next build — three deploys died of "too many clients"
fb3d1c3· 1 file - Other(withheld)
964d3d4· 10 files - Infradocs(ops): the future-timestamp window is 1 hour, not 24
fb1715c· 2 files - Fix(withheld)
bd47b29· 3 files
3 changes
- Content(withheld)
1cfaa6b· 5 files - Fix(withheld)
fe78070· 26 files - Featurefeat(operations): public /operations transparency page fed by a signed panel push
8560e93· 47 files
10 changes
- Otherseo: batch footer for tonvincollection.com
7d1d1b0· 0 files - Othersite titles: use the whole sentence or the category, never a cut clause
c287014· 2 files - Fixfix(seo): site detail pages answer their own questions, for AEO extraction
f0bd23c· 1 file - Fixfix(seo): site detail titles carry a real per-site differentiator, not just the bare name
bad35cf· 4 files - Fix(withheld)verifier named
eb80ee9· 1 file - Fixfix(fleet): grep -q under pipefail made every large sitemap read as "not XML"
2057936· 1 file - Infrafeat(fleet): weekly per-site size measurement, so page counts become history not a frozen number
a9f6108· 1 file - Fix(withheld)
f42d0b6· 1 file - Otherfeat: machine-readable surfaces, and "related sites" that means something
b277a17· 5 files - Infra(withheld)
3520953· 1 file
1 change
- Fixfix(seo): every page ships an og:image, snippet-length descriptions, no thin language pages
3299e5f· 16 files
1 change
- Fix(withheld)
888e7ad· 9 files
1 change
- Other(withheld)
2fb4e49· 1 file
2 changes
- Infrafeat(seo): A-Z, language and recency indexes, measured rank, visible breadcrumbs
a86d46b· 14 files - Fixfix(seo): static /search, feed links on every page, guarded against regression
97f08f9· 25 files
1 change
- Fixfix(sitemap): regenerate hourly instead of freezing at build time
524a578· 1 file
1 change
- Featurechore: add AI-discovery files (ai.txt / llms) — fleet rollout 2026-09-05
d05ace1· 1 file
1 change
- Infra(withheld)
ddc58fc· 3 files