Commits, newest first (257)
- 6047f08fix: the separator no longer stops at the label
- 473f7e2docs: what a model sheet contains, and what each part costs
- 557bbf0feat: a model's sheet goes to the reference's level of detail
- 35a9290fix: a single cursor length, 32px, on both panels
- f78cb4cfix: one cursor per panel, the left one on the separator, the right one on the right
- f2e9d0afeat: the native bar disappears, a 2px lemon cursor replaces it
- 8b4c4f6fix: a sheet's lineage reads from most recent to oldest
- c5ef0f7fix: the prices of the notices are written like on the cards
- bfa42adfix: the notice instruction no longer shaves prices below the cent
- 5acd793fix: the same price writing in the notice instruction
- 995ad07fix: the model sheet, the lineage and reading on the left, the model on the right
- 6caaef6fix: the register no longer jumps on hydration, and the filter survives the return
- 00acde5fix: the model preview goes to the left, the specs to the right
- 2e6c5ddfix: the register lines read, and prices write like a rate
- f3392c6feat: the model register, and its first sweep
- 8330ed3Merge pull request #141
- be51628Merge pull request #140
- 0d4cb5efeat: an error page, served with status 404
- 29c63a8Merge pull request #139
- f6eaa91feat: the CookBrand, name and address
- 4f5f285Merge pull request #138
- 592b253Merge pull request #137
- 523759cfix: the ten posts carry holo.stream, and their card too
- 8a49e01Merge pull request #136
- 9575145fix: the day panel also shows its card
- d84f6c4fix: the posts lead to the project page, not to the sharing material
- 464f2c1Merge pull request #135
- 6a28eeefeat: sharing becomes the cookbook, within the framework of the rest of the site
- 9a443beMerge pull request #134
- 09181fcMerge pull request #133
- 0548ee7fix: no more credit on share cards
- 91deaa1Merge pull request #132
- 22d300bMerge pull request #131
- aaa3a26feat: the intro video goes to 1080p, re-encoded for the web
- d677190Merge pull request #130
- 9017334fix: the day fold only on the Today page
- 8e85322Merge pull request #129
- 3d90aeefix: the day's post is only on Today, not on the main surface
- c446a7fMerge pull request #128
- 1732057style: the day post fold on the account line, at the other end, in lemon
- ee6d185feat: the day's post also from the Today page
- 38ef078Merge pull request #127
- d48bbcdfeat: the day's post, for the official account
- 8bd806dfeat: a share page, ten posts, one address each
- 388ec17Merge pull request #126
- 02eb3b2Merge pull request #125
- a9bd527fix: the digest comes out with the rights the mask asks for
- f800fb2Merge pull request #124
- c9202a3fix: the brand is written HOlO in the banner and in the note
- 41580dbfix: the static banner no longer cuts its message
- 9e0fac1Merge pull request #123
- 61b0f6afeat: a release banner in the header, and the V1 / V2 note
- db80b6fMerge pull request #122
- 76aaca7Merge pull request #121
- 74d39ccA clean clone builds the surface, and the build enters the CI
- 1ffdf49Merge pull request #120
- ce8602eMerge pull request #119
- 602b816A minimal CI, read-only, on pull requests
- 157881eMerge pull request #118
- ec1ac57Em dashes no longer come out of the engine
- 341fd5dMerge pull request #117
- 11dde40Merge pull request #116
- 29dfebfThe preproduction stamp belongs to the publication
- 719c8f3Merge pull request #115
- 965e042Merge pull request #114
- 061d566The versioned preproduction script takes its lock
- f6334b7Merge pull request #113
- 5bb082bMerge pull request #112
- d02172bThe chain scripts point to where the chain really lives
- c2abf75Merge pull request #111
- 1fb4816The challenge signals itself when it doesn't load
- 20cda58The anti-robot challenge, before any connection
- 20890a5Merge pull request #110
- 51aa596Merge pull request #109
- d16e683what the menu shows: the person's handle, not our fabricated address
- 3b136c7Merge pull request #108
- 0b2aee8Merge pull request #107
- 743309eX: the tweet.read scope was missing, and it's X that says it
- 3b4fb49Merge pull request #106
- a8339cbMerge pull request #105
- 0bebf65the frontend couldn't see the session: the cookie is HttpOnly
- 5a12d20Merge pull request #104
- 3c1ceccthe two providers now say why they refuse
- 6078eb1doc: the rule of headers for API calls, and the mandatory User-Agent at X
- 5209a96Merge pull request #103
- 20ef5dfMerge pull request #102
- 58d712fX: the identity call carried no User-Agent, so X responded 403
- aecacc9Merge pull request #101
- e748d5flogin X active, email feed removed, and what the full check found
- f63a95fMerge pull request #100
- 29d4a99Merge pull request #99
- 5230716technical debt: lint to zero, one wrong type fixed, and two copies aligned
- 7224157Merge pull request #98
- bf19654Merge pull request #97
- 336a8bathe card in plain black, and the dates in English
- 64f52ddMerge pull request #96
- c4555f8Merge pull request #95
- e4a1743the brand case, the served card, and the shared address
- 8967b81Merge pull request #94
- 496bebbMerge pull request #93
- 30f0d4acleanup: dead address in public folder, and sender name
- 59591acMerge pull request #92
- 959c4f0the brand is written HOlO everywhere it is read
- e992526Merge pull request #91
- aaa9ee1Merge pull request #90
- 8d1d152brand HOlO and credit attached to the main text
- a17477dMerge pull request #89
- 73aa63dMerge pull request #88
- ea57ff8share text: credit, space line, call, then the link separated
- 90d0725Merge pull request #87
- 2b961e3Merge pull request #86
- 1aa21b5cards per day: the announced address is the one that exists
- b060f45Merge pull request #85
- a063718a share card per day, in 16:9, with the credit
- 02b1155Merge pull request #84
- a1daddbMerge pull request #83
- 25a1a94Let's share HOLO: the button really shares
- 8bc2527Merge pull request #82
- 7b6fd71Merge pull request #81
- 9d5c40bwatcher: read repository without writing a reference
- 18803caMerge pull request #80
- 5095f88Merge pull request #79
- 327f853panel: credit on the digest line, and no video control
- 85f596bMerge pull request #78
- aa92956Merge pull request #77
- 17a7368mobile: the phone no longer downloads the video at all
- 2f791e4Merge pull request #76
- c8eab41Merge pull request #75
- 6d43b15left panel: video portal, loop recalibrated
- edfa7f3Merge pull request #74
- 140eeb7left panel: DISRUPT. regains its contrast
- 36dfc3bMerge pull request #73
- bebe3c0left panel: the brand must have an impact, not texture
- ebdea05Merge pull request #72
- 12433e2left panel: the brand no longer competes with the text for reading
- 4c9d09bMerge pull request #71
- 58231e8left panel: circular mask, the ring stays round
- 93ec411Merge pull request #70
- 4433139left panel: the ring is really 500 px
- 5d8524eMerge pull request #69
- fe6d255left panel: 500 px ring, centered
- 4ca442fMerge pull request #68
- 60e5cd2left panel: the brand fills the area, it does not decorate it in a corner
- 2472038Merge pull request #67
- d5e760bleft panel: the brand reads like a brand
- 92e2743Merge pull request #66
- 14245c4left panel: the ring is no longer cut by the edge
- a3314abMerge pull request #65
- 9fd8728X credit: the correct copy of the share card
- 9fabc7fMerge pull request #64
- 70afa48X login: second provider to vote
- 07686cbMerge pull request #63
- ab2ef8cshare and brand pack: HOLO ring everywhere, credit @HeyDjekyll
- 9be5bc6Merge pull request #62
- e46ae11docs: owner's amendment v2 (evening 23/09)
- 49e5631Merge pull request #61
- bc9cadcMerge pull request #60
- 4e9e419docs: provable closed decisions, and two corrections
- d2ab43bMerge pull request #59
- 9e1c582Merge pull request #58
- 0888f21docs: the exact number (135 article pages out of 160, the whole archive)
- fb0b791Merge pull request #57
- 20c95e5Merge pull request #56
- 1fff46edocs: the site plan is a promise, we test it in full
- 47d18f9Merge pull request #55
- d488f30Merge pull request #54
- aaa355farticle pages: all history displayed, not just the last day
- be17f64Merge pull request #53
- ae34156Merge pull request #52
- 9b30da8docs: the P0 checklist decisions, and the owner-first reading of the product
- b80c6cdMerge pull request #51
- d5cdb7eMerge pull request #50
- f893542kill-list: test entry removed (mechanism proven)
- 970dd4cMerge pull request #49
- 3b83344P0 before announcement: kill-list, a single writer, real Caddy config, mobile header
- 12d9228Merge pull request #48
- e440170Merge pull request #47
- 1ac0c76docs: the written record, built from the code
- 144ccfbMerge pull request #46
- 76b1289Merge pull request #45
- 2f8741eAbout: the page now only says true things
- 28fcf5fMerge pull request #44
- 9b9e909Merge pull request #43
- eed3e0dAbout: four additions, and not a single em dash visible anymore
- f695f2cMerge pull request #42
- cf55a1dMerge pull request #41
- 5bff2affeat(about): densify the first three sections with real substance
- 2f4a1fcMerge pull request #40
- 46dfe98fix(about): the two navigations have distinct labels
- 6f9b456Merge pull request #39
- cd88ac9feat(about): the section exit is part of the document
- 29460f6Merge pull request #38
- 73f7865feat(about): the method page gets its matter — and the numbers behind it
- 80459f9Merge pull request #37
- 7fd514bMerge pull request #36
- 51cb61efeat(engine): a subject is named once, and one story keeps at most two takes
- a29d2a8Merge pull request #35
- e2305fffix(about): the index wraps on mobile instead of scrolling
- 4a6188bfeat(about): the method page becomes a document — index left, section right
- 0ba4ce0Merge pull request #32
- 82da91ffeat: HackerNoon replaces a dead source, and the duplicate filter reads the body
- 713660fMerge pull request #30
- eeb7a19docs(readme): the State table described a repository that no longer exists
- a8bfb5aMerge pull request #28
- 33460f8feat(insights): two directions, two stories
- 60ec5a8Merge pull request #26
- 5eb481dfeat(signals): a signal's own read, so its blocks are filled like a direction's
- 71938a9Merge pull request #24
- 90201d2feat(posts): the signal's labelled cells in the direction's two-row grid
- e9342c6feat(engine): the English why-now prompt asks for English, and checks it got it
- 80a841fMerge pull request #21
- 19ce46bfeat(posts): ONE construction for a post, on every surface that opens one
- 7d89d4dMerge pull request #19
- 583d07afeat(front): show the article's English edition where the engine wrote one
- abe6ffdfeat(engine): the English edition of an article — headline, tags and summary in ONE call
- 54bd8f1Merge pull request #16
- 5225fe4feat(header): the surface's own health, where the search box used to be
- 554e3a8Merge pull request #14
- 1a03cfbfeat(vote): the reader's verdict on the article's own page
- faee0b1Merge pull request #12
- ab59dc2feat(web): mark the last two Chinese render sites (detail cells, article breadcrumb)
- 2a862eafeat(web): mark the Chinese source names too — MicroLabel computes its own lang
- 7bde184feat(web): mark the Chinese passages with lang=zh
- 7d8ed6dchore(feeds): retire the two sources silent since June
- 80aaedfchore(feeds): retire the two sources silent since June
- 22b8e6bfix(web): finish the contrast pass the first sweep missed
- be672d8fix(web): legible micro-labels, real touch targets, no 401 in the console
- b2a2c09fix(deploy): the publish assertions probe the ROOT, not /en/
- ca1f707refactor(web): serve the public surface at the root, with no /en/ prefix
- 37ae793fix(web): Tailwind must scan lib/, where the shared class strings live
- e0b314arefactor(web): the public surface is English-only
- 43277f9feat(web): one kind of post — /insight is one list, and every post opens onto the same detail
- cf5a58ffix(scorer): retry a why-now field once when the model answers empty, and log the counts
- 764fb6ffeat(web): /insight lists only voted posts, and the left pane states its two inputs
- c9a2724feat(web): rework /insight into two panes — the mechanism, and the day's posts by votes
- f258e25feat(web): vote good/maybe/dont on the day's articles (/api/item-votes)
- 8b39428feat(worker): vote good/maybe/dont on the day's articles (/api/item-vote)
- 13b48d4fix(worker): give the dev session cookie its own name (COOKIE_NAME)
- fc896e4feat(worker): a pre-production Worker and database (env.dev) for dev.holo.stream
- fff82c5chore(deploy): version the pre-production chain (publish-dev.sh + [internal].service)
- 26e0980feat(web): vote good/maybe/dont on a direction, counts from /api/ideas
- cdadf5afeat(auth): offer only the sign-in providers the Worker actually has
- f8bb467fix(deploy): assert the live surface at holo.stream, not the retired radar host
- 71138ebfix(worker): build OAuth redirect_uri from PUBLIC_ORIGIN, not the request host
- 3b9a002chore(worker): use our own D1 id and drop the custom-domain route (path A)
- e985062docs(web): radar.djekyll.com record deleted — its block removed in the same move
- a320600feat(web): the apex serves the surface, radar.djekyll.com retires to a redirect
- 16cfa8bfix(deploy): the dev script pointed at the pre-migration data directory
- 017df50docs: record Phase B1 (chain migrated) and version the systemd units
- 63bd822fix(build): create public/data before copying — a fresh checkout has no such directory
- fa7f28arefactor(deploy): point the chain at the HOLO paths, fetch main before publishing
- e732769docs: system-wide toolchain (node, uv, shared venv) and the group the dev account needs
- ca3f0fddocs: record who owns the tree and who pushes it
- c114e71refactor(brand): migrate the engine, the surface and the worker into HOLO
- eb20ceffeat(landing): wordmark set as HOlO, opening line made legible
- e880d0bfeat(landing): the portal loop carries the message - apex serve, widescreen, no scroll
- f8b239fchore: initial HOLO import - landing page and its publish path