store.sgit.ai / Release history
Release history
Every push to the release branch is a release, and every release is tagged. The version is owned by admin/build/version.txt, moved only by bin/bump.py, repeated in the release commit's subject, and CI refuses to tag if the two disagree. The same records are served as JSON.
Releases
| Version | Released | What changed | Commit |
|---|---|---|---|
v0.3.24 — current | 2026-09-17 | the emails nobody has turned on, and the one a free order cannot send | — |
v0.3.23 | 2026-09-17 | the page a buyer lands on after paying can find their order | 5cbeb893aa |
v0.3.22 | 2026-09-17 | level one can be paid for | a01342cf4f |
v0.3.21 | 2026-09-17 | the checkout hands over to the provider | 39585a99b4 |
v0.3.20 | 2026-09-17 | the disclosure moves off the top of the page | 2c92a1928c |
v0.3.19 | 2026-09-16 | the five doors, drawn the way v4 draws them | c77fa621c3 |
v0.3.18 | 2026-09-16 | the buy references, and the rest of v4 that the store was missing | afc694477f |
v0.3.17 | 2026-09-16 | five readers walked the whole store, and four stopped in the same place | b8ca1ff3b5 |
v0.3.16 | 2026-09-16 | the new design is the store, and the one it replaced is kept at /v1/ | 86b68b9ca8 |
v0.3.15 | 2026-09-16 | the rest of the next store: the comparison, the doors, the ledger and the person | 7c11b81d47 |
v0.3.14 | 2026-09-16 | the buying flow, end to end, and one order across both designs | de2d735b5a |
v0.3.13 | 2026-09-16 | the next store, in the design we chose | 94fe9dc7fb |
v0.3.12 | 2026-09-16 | the comparison table, on paper | 04bebcf864 |
v0.3.11 | 2026-09-16 | the vault contract, learned the hard way | d93cfcd053 |
v0.3.10 | 2026-09-16 | a brief somebody can work from | 1d799aac67 |
v0.3.9 | 2026-09-16 | the moves, on the board | 1be8078f45 |
v0.3.8 | 2026-09-16 | four homepages, five readers | eecda03c29 |
v0.3.7 | 2026-09-16 | the homepage concepts, reviewed | c63bf4392d |
v0.3.6 | 2026-09-16 | what happened to each memo, on one page | a2fa742f7a |
v0.3.5 | 2026-09-16 | describe your agent, in words this store did not invent | 44c6f6e36f |
v0.3.4 | 2026-09-16 | a product page, prototyped where it cannot do any harm | 1e27920b76 |
v0.3.3 | 2026-09-16 | you see a vault on the page you land on, and the rule was narrowed a second time to allow it | 5078346ab0 |
v0.3.2 | 2026-09-16 | who owns what, written down where both sides' agents can read it | 251a8720ca |
v0.3.1 | 2026-09-16 | a code published on the two journeys it applies to, and it cannot buy anybody's day | bbfbfb35b7 |
v0.3.0 | 2026-09-16 | the buyer lands on this site | 620fbb37b0 |
v0.2.9 | 2026-09-16 | the two upper levels say whose work they are | 93af071d65 |
v0.2.8 | 2026-09-16 | the comparison table, free column first | 062b2d001b |
v0.2.7 | 2026-09-16 | five audiences, five doors, and nothing hidden from anybody | 5b2d539185 |
v0.2.6 | 2026-09-16 | SumUp comes off the store for the first end-to-end MVP, and the plan for it is parked rather than deleted | abbf7a67ce |
v0.2.5 | 2026-09-16 | the never-done language comes off the site, because it was describing the sale and reading as the work | c0fbe75497 |
v0.2.4 | 2026-09-16 | the cap on the hundred-per-cent coupon is ruled out rather than dropped, and level four takes the name the product has | e92148b8a9 |
v0.2.3 | 2026-09-16 | three coupons exist, zero promotion codes do, and that is the whole gap | 982fa1c3a9 |
v0.2.2 | 2026-09-16 | the home page becomes a shop front, and the Stripe catalogue becomes a reconciliation | 85660404d9 |
v0.2.1 | 2026-09-16 | the work has been done, and the site finally says where to go and look | 76c0136d84 |
v0.2.0 | 2026-09-16 | the entry level becomes a licence at £10, and every level says when it arrives | 60993ad04d |
v0.1.18 | 2026-09-16 | the admin section becomes a console, with its own UI, the two payment rails written up as plans, a board of the work, and the queue the work comes out of | f709591710 |
v0.1.17 | 2026-09-16 | the vault is embedded, and the claim it costs is rewritten to be exactly true | ad46c8f1b7 |
v0.1.16 | 2026-09-15 | reviews become a dated register, and the second one is this repository reviewing its own instrument | 0d873dc16c |
v0.1.15 | 2026-09-15 | a partner's review, published in full, and the one rule that moved to let it be answered | 06267775cd |
v0.1.14 | 2026-09-15 | the gitignore rule that swallowed the PDFs, anchored — and a check that asks git | 911c1ccbb1 |
v0.1.13 | 2026-09-15 | three things five synthetic users found, two of them regressions from v0.1.9 | 688c10812d |
v0.1.12 | 2026-09-15 | the two walkthroughs as PDFs, hosted under /admin/ | d2427fb84d |
v0.1.11 | 2026-09-15 | the walkthrough codes stay out of the indexed bulk file too | 9c6042b928 |
v0.1.10 | 2026-09-15 | a walkthrough anybody can run, with the codes printed on it | 456b3bddb5 |
v0.1.9 | 2026-09-15 | the handover to the page after payment, and a discount code that arrives in the address | 00a03b81cf |
v0.1.8 | 2026-09-15 | the flow runs end to end on a simulated wallet, and two levels take a fifth on the order | 41985da6ef |
v0.1.7 | 2026-09-15 | the store: fifteen agent behaviour policies, four levels each, a cart and two rails | 326e078094 |
v0.1.6 | 2026-09-11 | the tier four deposit paragraph stops saying the balance is invoiced twice | 892e790c3f |
v0.1.5 | 2026-09-11 | tier four takes a £500 deposit by payment link, and the balance stays on the invoice rail | 43c77bff76 |
v0.1.4 | 2026-09-11 | a prototype can switch view in place, so one page can host all five | 920f8f2a0a |
v0.1.3 | 2026-09-11 | five prototypes of the purchase flow for the grant and mandate mapping work | 1a860430b7 |
v0.1.2 | 2026-09-11 | the six offers are grouped by which of three buyers each was built for, and the checkout is wired to payment links | daf6d30696 |
v0.1.1 | 2026-09-10 | the delivery pages stop printing the page navigation twice | 14b96dbada |
v0.1.0 | 2026-09-10 | the offer page, the four codes, the two rails and the pack | 3779062835 |
The pipeline that gates each one
Three jobs, in this order, the same order as every sibling site in this estate.
1 · validate. admin/build/validate.sh — the build is reproducible against the committed output, the version agrees everywhere it appears, internal links resolve, every canonical URL is on the host in CNAME, the credential tripwire is clean, every inline script parses, and this site's own acceptance assertions hold. A failure stops the release: no tag, no publish. It runs on pull requests too, so branch work is gated before it ever reaches the release branch.
2 · tag-release. The version file is read, the release commit is found by its subject line, and the two must agree. The tag must be the next minor — or a deliberate major — after the previous latest. Historical tags missing from the remote are backfilled, idempotently. Then the tag is pushed.
3 · deploy. The site is rebuilt from content/ and published. It never runs when validation failed, and never from a pull request.
What this site's gate checks that a sibling's does not
This is the first site in the estate that carries a price, and a page with a price is an offer. So the gate carries the rules that constrain an offer, as machine assertions rather than as advice in a document:
- The word that may never appear on a site carrying prices appears on no page, in no heading, in no filename, and in no built artefact.
- No conformity-marking language in any form, and no claim to be a compliance assessment.
- The three terms ruled out on 10 September — one for encryption, one for recall, one for autonomy — reach no page, including the page that explains why. read, not run 10 Sep 2026
- The sentence about what a provider can read is absent until six questions about what leaks are answered. does not exist yet 10 Sep 2026
- The absolute form of the tamper claim never appears, and the honest form never appears without its witness in sight. read, not run 10 Sep 2026
- The open naming collision reaches no page. does not exist yet 10 Sep 2026
- Every price matches the pack that set it, to the penny.
- Committed spend is never mentioned without the negation in sight: professional services do not draw down committed spend, and the old version of that claim appears nowhere. read, not run 10 Sep 2026
- The model-generated disclosure is above the fold on every page, not in a footer. read, not run 2 Aug 2026
A rule that only lives in a document gets broken by the next person who has not read it. These live in tools/check_site.py, and each one names the rule it enforces.
Which agent do you run? → How buying works → Every claim, with its state →