50 descendants and 50 ancestors of 395f704c285ca0d6
|
2026-08-22
| ||
| 11:29 |
the reply DAG, kept: per-post replies, parent links name their author, answered authors always notified
forum.reply takes to= (a specific post); the composer aims via ?reply-to with a visible banner; the replied-to author joins the notification set even unsubscribed, deduped by TxnID. check-in: 152f575aab user: dmestas tags: trunk | |
| 11:24 | spectrum segments: identicon deep shade, each a link to its post anchor check-in: 1a859293ee user: dmestas tags: trunk | |
| 11:22 | spectrum: continuous constant-height bar, rounded only at the ends check-in: f78cd21498 user: dmestas tags: trunk | |
| 11:18 | spectrum as beads: gapped rounded segments in the post-edge recipe check-in: f322cdbe4a user: dmestas tags: trunk | |
| 11:18 |
tests assert structure and data, never display copy; spectrum up to the middle level
data-score / f-pinned / hot-formula / f-hidden hooks exist for the tests; copy and glyphs are design surface, free to change. check-in: dfc78137a3 user: dmestas tags: trunk | |
| 11:15 | root test follows the counted explore link check-in: 9960c3555b user: dmestas tags: trunk | |
| 11:14 | explore link count: reach FleetTotal through the root context check-in: 09ab5ece67 user: dmestas tags: trunk | |
| 11:13 | dashboard explore link names the fleet size check-in: c3f1705062 user: dmestas tags: trunk | |
| 11:12 | merge ticket-editor: ticket page is the editor; [label] (url) links check-in: 5968b5fc36 user: dmestas tags: trunk | |
| 11:05 | markdown: [label] (url) with a space is still a link closed check-in: 38f6f9f5de user: dmestas tags: ticket-editor | |
| 11:01 | hue down another notch: 1px edge (color only), spectrum 14% sat / 0.28 alpha check-in: 484deeeee5 user: dmestas tags: trunk | |
| 02:36 | ticket editor: title and description edit in place; ticket.set takes description; edits and retitles are timeline events check-in: c65320c1c3 user: dmestas tags: ticket-editor | |
| 02:36 | spectrum quieter still: 22% sat, 0.38 alpha check-in: 4ff52bf154 user: dmestas tags: trunk | |
| 02:34 | hue returns muted: whisper left edge, slim spectrum only for multi-voice threads check-in: 90d6b989bf user: dmestas tags: trunk | |
| 02:32 | pull the hue decoration back: no post edges, no spectrum, no hued names — identicons carry identity alone check-in: 8837ad6aaf user: dmestas tags: trunk | |
| 02:28 |
author hue flows through threads: identicon+hue edge per post, hued names, spectrum ribbon, opener pill, hued @mentions
One fnv hue is one person on every surface; mentions resolve only via the contributor fold — never a dead link. check-in: 86b8a6baee user: dmestas tags: trunk | |
| 02:20 | test pins follow the new board move model and forum list score markup check-in: 941004c442 user: dmestas tags: trunk | |
| 02:15 | dormant forum rows fade whole-row, not link color check-in: e33969eb13 user: dmestas tags: trunk | |
| 02:13 | ticket editor: data-on:change is the spelling Datastar fires; composer footer wraps on phones check-in: 145ae81167 user: dmestas tags: ticket-editor | |
| 02:10 | Ticket page is the editor: sidebar selects, remark composer with close/reopen, field changes in the timeline check-in: 86631cfb47 user: dmestas tags: ticket-editor | |
| 02:07 | forum list anatomy: opener excerpt, author mark, participant stack, activity sparkline, dormant muting; og:description on threads check-in: 6d66e8fbff user: dmestas tags: trunk | |
| 01:53 | topic search also reads in-tree .quarry/repo.json topics (memoized cat, search-only) check-in: 04b7878a1c user: dmestas tags: trunk | |
| 01:52 | topic pills link to /?q=<topic>; fleet filter matches topics and descriptions; breathing room over the pills check-in: 5e4ef95e6e user: dmestas tags: trunk | |
| 01:48 |
About aside stays on branch roots; doc tabs remain default-ref only
repo.about renders default-branch docs — tabs on a branch would show the wrong README as this branch's. Aside sheds doc rows there instead. check-in: 088d49f204 user: dmestas tags: trunk | |
| 01:45 |
scope the menu anchor to the account button — 423 identicons were claiming it
anchor-name on the .avatar class was a global in disguise; the popover anchored to the LAST avatar on /people and opened off-screen. Pinned: exactly one --avatar declaration, on the button selector. check-in: 0b17572152 user: dmestas tags: trunk | |
| 01:41 | identicons v2: two-tone cells, rounded, hue plate check-in: a67e9b3ba0 user: dmestas tags: trunk | |
| 01:38 | identicons everywhere (memoized), one avatar size; rails name their branch on hover check-in: 61728cefbd user: dmestas tags: trunk | |
| 01:33 | identicon avatars (5x5 mirrored grid from the name hash), avatar 36px; bar buttons follow GitHub's control grammar check-in: a8040a0e0a user: dmestas tags: trunk | |
| 01:27 | bar buttons: rounded squares with full-size icons; unread badge shows the count check-in: 47aa4790e4 user: dmestas tags: trunk | |
| 01:12 | bar-acts cluster: create/inbox/account share one grid cell check-in: 3c7799732a user: dmestas tags: trunk | |
| 01:11 | top bar: / focuses search, + create menu (repo-aware), inbox icon with lazy unread dot check-in: 0fd2f8aa8a user: dmestas tags: trunk | |
| 00:58 | revert Public Sans: back to system-ui check-in: 71e915ee8c user: dmestas tags: trunk | |
| 00:56 | try Public Sans as the UI face (vendored woff2, latin subsets) check-in: 07eda8c969 user: dmestas tags: trunk | |
| 00:45 | board tests follow the lane change; gofmt check-in: ff8f1c3a7d user: dmestas tags: trunk | |
| 00:44 | Board: lanes only when asked, sticky column headers, no lane-field badge inside a lane check-in: 6ee9d1a5e6 user: dmestas tags: trunk | |
| 00:43 |
Board: one move model — drag with signifiers, a Move menu per card, and a moved banner with undo
Removes the pick-up mode (it never rendered: data-attr-hidden is not a Datastar attribute), the per-column drop buttons and the per-card select+move form. Cards show a grip and a grab cursor; the column under a drag lights up; a native Move popover lists the other columns as plain forms, so it works by keyboard, touch and without script. /move answers Datastar with the fragment and a plain post with a redirect; both show 'Moved X from A to B · undo'. check-in: 110001e141 user: dmestas tags: trunk | |
| 00:36 |
dashboard: explicit grants are ownership and outrank the admin flag; repo.add grants its creator
Fleet view stays as the fallback for an admin with nothing granted. check-in: 8ce14aaaf3 user: dmestas tags: trunk | |
| 00:35 |
Board leaves the reading column; columns have one width; fold/unfold from every header
Full-bleed board with 22rem columns, so a card is the same width wherever it sits. Folding is the reader's choice carried in ?fold=A,B; a chevron on each header folds or opens it, and a folded column shows its real count. Before any choice, empty columns fold. check-in: d60c602cd2 user: dmestas tags: trunk | |
| 00:32 |
dashboard: site admins see the fleet — GrantsFor carries the '' marker
me.feed keyed on grants[''] but nothing ever wrote it; an admin with no explicit rows saw an empty dashboard. check-in: b7d4a089fb user: dmestas tags: trunk | |
|
2026-08-21
| ||
| 23:12 |
live rendered authoring: split pane renders as you type; poll builder edits the source
Production renderer feeds the pane (plain fragment endpoint); a fenced poll grows structured inputs that rewrite the block. Raw markdown stays the source of truth; no-JS is still a plain textarea. check-in: 1b34fa7b8e user: dmestas tags: trunk | |
| 22:56 | board: folded strips name the column in plain text, not a rotated pill check-in: a2d6d20dc3 user: dmestas tags: trunk | |
| 21:23 | gofmt check-in: 236ae2e1d1 user: dmestas tags: trunk | |
| 21:23 |
Ticket board fits the page: columns wrap, empty ones fold to strips, stacked on phones
Seven status columns no longer scroll the page sideways. Empty columns fold to a GitHub-style strip (still a drop target; its name links to ?col=Status to open it). Open columns share the row with a 16rem floor and wrap past it; on a phone they stack and the strips become chips. check-in: b01e1d54d5 user: dmestas tags: trunk | |
| 20:40 |
markdown composer: Write/Preview tabs, slash commands, described check-in links; forum hashes resolve
Preview runs the production render pipeline (markup.preview op). Check-in refs carry their comment as hover title + visible excerpt. composer.js loads only on composer pages — the base stays one-script. check-in: 420206e59f user: dmestas tags: trunk | |
| 20:19 |
forum polish: post cards, vote pill, mod kebab, composer card, primary buttons; timeline badge names forum/technote
Flat timeline events fell into a wiki-else-ticket badge; full kind map now. check-in: 3ace765565 user: dmestas tags: trunk | |
| 20:12 |
vote arrows patch in place via datastar; moderation trust bar is RepoAdmin
Plain form path keeps its redirect. Write-role gate made trusting Write unreachable — a repo that opts into moderation reviews non-admin posts. check-in: bb65c455a3 user: dmestas tags: trunk | |
| 20:00 | merge trunk fork: concurrent heads 0e669d2a + 63958353 check-in: 554e966570 user: dmestas tags: trunk | |
| 19:58 | diff: window chain test; ignore dev.local.mk check-in: 63958353c1 user: dmestas tags: trunk | |
| 19:54 | merge quarry-forum: votes, hot, anchors, announcements, polls, moderation + AI hooks, subscriptions check-in: 0e669d2ad5 user: dmestas tags: trunk | |
| 19:51 | Merge mirror-posture: repository posture, read-only mirrors, fleet page as rows check-in: e61bc36d43 user: dmestas tags: trunk | |
| 19:42 |
Fleet row menu is a native anchored popover: light-dismiss, Esc, and the account menu's item sizing
Menu buttons inherit the page font, which also fixes the theme button in the account menu. closed check-in: 395f704c28 user: dmestas tags: mirror-posture | |
| 19:29 | gofmt check-in: 25ea8c86a4 user: dmestas tags: mirror-posture | |
| 19:29 |
Fleet page as list rows: one row per store, problems first, healthy folded, stacks on a phone
Ingest health and mirror posture join on one row; zero counts vanish and non-zero ones become chips. With any problem the healthy rows fold behind a disclosure. Summary strip with bulk actions; the page never scrolls sideways. 3,237px tall with horizontal scroll on a phone → one screen. check-in: 67e8dbee5f user: dmestas tags: mirror-posture | |
| 19:10 |
Posture follow-ups: gate write pages on mirrors, detach needs an acknowledgement, one-click re-attach, fleet table fits, fleet search filters
Edit/new pages for tickets, wiki, forum, technotes return 403 on a read-only mirror and their links point upstream. Detach goes through a confirmation with a fork acknowledgement; re-attach is one click with the drift warning. The header chip drops its words at phone width; explore shows mirror/fork badges. /fleet: host-only upstream, 1h/24h intervals, relative dates, kebab menu for the rare actions, and the header box filters both tables. /new loses its duplicate heading. check-in: ee78c5201b user: dmestas tags: mirror-posture | |
| 18:34 | mirror.set/writes report state; re-attaching returns writes to refused; fleet action buttons stay on one line check-in: 074cb8072f user: dmestas tags: mirror-posture | |
| 18:28 |
Surface repository posture: header badge, failing notice, explore glyph and kind filter, fleet admin, creation choice
Every repo page carries the posture from repo.get. Mirrors show 'mirror of <host>' linked upstream, a failing upstream is said in words under the bar, and write affordances on a read-only mirror point at the upstream's pages. Explore marks mirrors and filters by kind. /fleet shows state and writes per row with pull / edit / allow writes / detach; the add form also edits. /new offers Start empty, Import and own, or Mirror. check-in: 9689ddd05e user: dmestas tags: mirror-posture | |
| 18:16 |
Repository posture: mirrors carried on the repo model, refuse local writes by default
repo.get returns mirror{tracking,url,state,acceptWrites,...} and detachedFrom. mirror.detach replaces mirror.delete and keeps the upstream as provenance; mirror.writes opts a mirror into local writes. Pushes, tickets, wiki, forum and technotes on a tracking mirror are refused (403) naming the upstream. A URL change clears failures recorded against the old peer. check-in: d980bf4d71 user: dmestas tags: mirror-posture | |
| 17:56 | day counts are calendar days - the weekday exposed the hours/24 rounding check-in: 59bd504ec5 user: dmestas tags: trunk | |
| 17:51 | ago() names the day once it isn't today - weekday forge-wide check-in: b259744211 user: dmestas tags: trunk | |
| 17:00 | weekday in dividers, meta strip and tip bar - the zit#111 convention, forge-side check-in: bceb4f354b user: dmestas tags: trunk | |
| 13:18 | FileHistory tolerates a weekday token (zit#111 insurance) check-in: e3f80e18f3 user: dmestas tags: trunk | |
| 13:12 | parity proof: crosslink build must equal artifact fold; keep the old derivation as reference check-in: 0576dc73d8 user: dmestas tags: trunk | |
| 12:12 | bulk rebuild drops secondary indexes, rebuilds them once check-in: 1a426c97e8 user: dmestas tags: trunk | |
| 12:08 | rebuild: frames reader overlaps the crosslink fold; wide filechange inserts check-in: 775f699502 user: dmestas tags: trunk | |
| 12:06 | bulk rebuild suspends FTS sync, rebuilds it once at the end check-in: a0830a0d4b user: dmestas tags: trunk | |
| 12:03 | crosslink fold: search_doc parity, prepared stmts; frames phase sniffs manifests check-in: 3415864d28 user: dmestas tags: trunk | |
| 11:57 | fix crosslink parser test fixture length check-in: eab344253a user: dmestas tags: trunk | |
| 11:57 | rebuild consumes zit crosslink (#109): check-in state from the derived dump, manifests skipped check-in: 21f2d0b2c2 user: dmestas tags: trunk | |
| 01:23 | rebuild streams --structural (zit#108); per-phase timing in the log check-in: 8a41f9c1e5 user: dmestas tags: trunk | |
|
2026-08-20
| ||
| 22:49 | two-pass rebuild: fold first, derive changes from the spool check-in: 39fe33e05d user: dmestas tags: trunk | |
| 22:45 | rebuild spools raw manifests - census order defeats arrival caching check-in: 3691902c9f user: dmestas tags: trunk | |
| 22:40 | changes cache budgeted by entries - the 48-list FIFO thrashed bulk rebuilds check-in: 05a2ac4a47 user: dmestas tags: trunk | |
| 22:14 | first round rebuilds when the index lacks the store tip - repair outranks drain check-in: cd945bfd4e user: dmestas tags: trunk | |
| 21:08 | no cursor means fast rebuild: bootstrap and repair share the direct path check-in: 5705f868fe user: dmestas tags: trunk | |
| 20:55 | reindex reads frames straight into the fold - bus bypassed, refreshes deferred (f16b31e0b6) check-in: 408c96bc23 user: dmestas tags: trunk | |
| 20:48 | invariant: every repo page says when the index is behind the store check-in: aac9ed5c81 user: dmestas tags: trunk | |
| 20:40 | timeline says when the index is behind the store check-in: fdcbae6632 user: dmestas tags: trunk | |
| 19:46 | hide the tip bar when the index lags the listed tree check-in: 34a7223b38 user: dmestas tags: trunk | |
| 19:44 | the default tip comes from zit with the name, not the index check-in: a2dbc2c675 user: dmestas tags: trunk | |
| 19:43 | default branch asks zit: info trunk resolves fossil's main-branch check-in: 3208457608 user: dmestas tags: trunk | |
| 19:07 | clone box adopts the input-group shell: one border, separators inside check-in: 730e32adee user: dmestas tags: trunk | |
| 18:53 | clone tool picker fused into the clone box; strip keeps the full branch count check-in: 0e59859a07 user: dmestas tags: trunk | |
| 18:23 | cat memoizes absence too - the missing-config probe ran every render check-in: ca3dad252d user: dmestas tags: trunk | |
| 18:13 | branches know closed: selectors show open only, branch page splits like /brlist check-in: 9a2dadfdc0 user: dmestas tags: trunk | |
| 18:00 | negative-cache missing artifacts in the changes resolver check-in: ee7773345a user: dmestas tags: trunk | |
| 17:53 | warm the files-page reads after each ingest round check-in: 9b7cbe97ce user: dmestas tags: trunk | |
| 17:32 | index: (branch, date) index for DefaultBranch and tip probes check-in: a2030bec5d user: dmestas tags: trunk | |
| 16:08 | tree.list answers for the default branch and names it check-in: 9f06f42ec9 user: dmestas tags: trunk | |
| 16:06 | default branch follows the rename: newest of trunk/main/master pins listings check-in: c68dbf92ae user: dmestas tags: trunk | |
| 15:57 | highlight: content sniffing only for shebangs - Analyse read READMEs as SQL check-in: acdab26620 user: dmestas tags: trunk | |
| 15:52 | plaintext documents render flat on the page, no code box check-in: 686458226c user: dmestas tags: trunk | |
| 15:33 | split diffs break out of the page column on wide screens check-in: 0f6f24eca9 user: dmestas tags: trunk | |
| 15:24 | align mark and wordmark: true cap-height box, ring centred check-in: 4a1cee338f user: dmestas tags: trunk | |
| 15:21 | wordmark cap height = ring diameter check-in: 7cfd83bdf1 user: dmestas tags: trunk | |
| 15:17 | Q mark: thinner ring, smaller dot; more air before the wordmark check-in: 7bb2b9b038 user: dmestas tags: trunk | |
| 15:10 | wordmark box is cap height; the tail overflows check-in: d24fc5c07e user: dmestas tags: trunk | |
| 15:08 | wordmark: QUARRY in Iosevka Fixed Semibold, traced to outlines, topbar check-in: 26b64580d0 user: dmestas tags: trunk | |
| 14:59 | per-entry last-change column: filechange fold (mlink), tree.list enrichment, GitHub collapse check-in: 631baf84c7 user: dmestas tags: trunk | |
| 14:42 | widen the page to 76rem - GitHub's container check-in: 2a99fb5e28 user: dmestas tags: trunk | |
| 14:09 | repo home on GitHub's frame: grid sidebar, latest-commit bar, phone dissolve check-in: 4fd4befd45 user: dmestas tags: trunk | |
| 13:55 | About settings: homepage and topics editable in repo settings, override .quarry/repo.json check-in: f925790cc5 user: dmestas tags: trunk | |