Commits
100 commits · main · older page 3
Max Rakhimov · 2026-09-12 · 03c5ba509fde
A moved tip made the sync rewalk every commit on every branch, 2.4 s against 0.13 s per read on a 50,000-commit repository.
The walk starts one minute before the newest cached commit once a sync has finalized, and the stale check reads the full live set with rev-list, so a
Max Rakhimov · 2026-09-12 · d084cd965fb1
git reads a bare --since date at the current clock time, so an incremental fetch dropped the commits made earlier today than the fetch itself, and the newest cached time only moves forward, so it never came back for them.
GetCommits and the followed-repository --shallow-since
Max Rakhimov · 2026-09-12 · c3183089178b
SyncWorkspaceToCache in pm, review, release, social and memo was a third
way into the cache beside the commit processors and the batch syncs, each
duplicating its ProcessWorkspaceBatch with its own git log and tip gate.
The in-memory gitmsg synced-tip cache goes with them; the
Max Rakhimov · 2026-09-12 · a9880f80af15
Every command that used a per-extension SyncWorkspaceToCache now calls
client.SyncWorkspaceLocal, which is tip-gated over all refs and runs every
extension's batch sync. The memo tier sweep keeps its own call for the
personal and session repos.
Max Rakhimov · 2026-09-12 · 4c0a8625b109
The five extension nav.go files reached into tuicore, 14575 lines, for
NavItem and NavRegistry alone. They now import library/tui/tuinav, 157
lines, so the documented layer exception names a small package. The view
and card registries stay in tuicore; splitting its views comes
Max Rakhimov · 2026-09-12 · 86e053c1d004
Six lines a review checks in order, so "done" means the same thing to
every branch: the bar followed, both tiers green, every client updated
together, the guide and the reference updated, the design note process
observed, and every ratchet moved toward its target or held.
Max Rakhimov · 2026-09-12 · c7d57a3a3f28
Three lines the quality plan asked for, so a new extension can read its
cost from ARCHITECTURE.md and the order inside core is stated rather
than discovered. The search asymmetry is recorded, not fixed.
Max Rakhimov · 2026-09-12 · f9f334c76785
Every file under documentation/ except README.md read in full and held to
STYLE.md and to the code: register, truth, duplication and structure.
Fifteen files changed; RELEASE.md, SIGNING.md, TUI-DIAGRAMS.md and the
generated TUI-KEYS.md verified and left as they were.
Max Rakhimov · 2026-09-12 · ab1b6c797b95
The 12-line rule and the push example were read as a cap on the whole
Long, and the M3 sweep cut the value lists, inline syntax and published
lists that --help exists to show. The cap now covers prose paragraphs
only, and the example is the push help as restored.
Max Rakhimov · 2026-09-12 · d37ed9c845cb
The page, index and markdown layers each opened with a design note and
restated their state machines per function. Every comment is now a single
line. The items and code index machines, the page-layer rules, the commits
frontier guard and the markdown threat model moved to
Max Rakhimov · 2026-09-12 · 1752d3ef7f43
These files carried multi-paragraph rationale where STYLE.md asks for one
line at the point of constraint. Every comment is now a single line, or
gone where the code already says it. The ref CAS and fetch contracts, the
sealing rules, the push-state marker and the local-odb walk
Max Rakhimov · 2026-09-12 · ea74f95e2696
The 12-line cap cut value lists, inline filter syntax, scopes, key
tables and the list of what a push publishes, which is what --help is
for. Each is back in its compact form, rationale still out, and the
distinctions the shortened Short lines dropped now sit in a Long.
Max Rakhimov · 2026-09-12 · 2edfe95f38c7
The credentials set and personal sync help now use commas where they had
em-dashes, which the style guide does not allow.
Max Rakhimov · 2026-09-12 · 7f5fc6a731ca
flag-help and short-long reach zero, and the help text drops eight
em-dashes. The comment-block-go and emdash rows also pick up counts the
baseline had been carrying stale.
Max Rakhimov · 2026-09-12 · 2c2bf707c0f6
Every Long now carries one paragraph of what the command does plus its
examples. The remote resolution, the site keys and the thin-bucket rules
live in S3.md and STATIC-SITE.md, and the search filters, scopes and
group-by fields move to CLI.md.
Max Rakhimov · 2026-09-12 · 754a21a52e78
Flag help now says what the flag sets in one clause under 60 characters.
Values and defaults stay in the sentence; the rules that rode along in
parentheses move to documentation/CLI.md.
Max Rakhimov · 2026-09-12 · c4f102e79694
Every Short now names what the command does in one clause, with the
parentheticals and trailing asides removed. What they carried is either
already in the Long text or in documentation/CLI.md.
Max Rakhimov · 2026-09-11 · 6d2eeb2347a8
The layer diagram, the directory listing and the import-graph layer
table named clientfetch and clientpush. The extension rules gain the
line saying where a new extension joins the fetch.
Max Rakhimov · 2026-09-11 · 2288e84e5fae
The three thin clients composed the fetch by hand and had drifted: the
CLI ran the review post-fetch hook and the memo tiers where the TUI and
RPC did not, and a single-repository fetch carried social's processors
alone, so pm, review, release and memo rows stayed missing for
Max Rakhimov · 2026-09-11 · 9615270f9458
The five extensions registered their workspace sync from init() into a
package-level map in core/fetch, the only mutable state that package
kept. Each extension now exposes SyncWorkspaceBatch, which resolves its
own branch, and the caller passes the list it wants reached.
Max Rakhimov · 2026-09-11 · 3b28de90afce
Both files carried multi-paragraph rationale where STYLE.md asks for one
line at the point of constraint. Every comment is now a single line, or
gone where the code already says it. The reader's packfile lookup and the
page-entry boot contract moved to
Max Rakhimov · 2026-09-11 · c6e11c09d159
The thresholds sit on the longest function and the highest complexity in the tree today.
Nothing existing fails, anything bigger does, and a threshold only moves down.
Max Rakhimov · 2026-09-11 · 9278db0ac9a5
Each block becomes a one-line comment, a Reference bullet in REVIEW.md or
MEMO.md, or nothing; the MergePR doc line moves off homeForkPR onto MergePR,
and the DeferMaintenanceEnv contract now lives once, at the constant.
clientpush sits above core because objstore imports
Max Rakhimov · 2026-09-11 · 89f8b157f99d
The layer rules and the two documented exceptions lived only in prose, so
a new extension-to-tui import or a package growing past 15,000 non-test
lines passed unnoticed. scripts/import-graph.sh --check is stage 1 of the
gate: it fails on an upward edge missing from
Max Rakhimov · 2026-09-11 · d5471d8a1017
The only RepoInfo builder always sets a list, so FetchAll always took
the followed path and its 30-day window default never applied. The
window path stays reachable through FetchRepositoryRange, which passes
its own dates. Removes Options.Since, Options.Before, the two flags on
Max Rakhimov · 2026-09-11 · a6ed0896f207
ProcessCommits and processAllBranchCommits now share one insert-and-
dispatch body taking the branch as a function of the commit; the two
filter calls stay apart, since they key differently. The full and
incremental all-branch fetches become one call with an optional since.
Max Rakhimov · 2026-09-11 · 9c2fddab4492
One refspec fetch without a leading "+" creates missing gitmsg/*
branches, fast-forwards the rest and refuses a diverged one, replacing
three helpers that read and compared every ref by hand. The workspace
tip gate drops its per-branch ReadRef loop: the two for-each-ref
listings
Max Rakhimov · 2026-09-11 · d4455648b745
Each extension kept its own package-level sync.Map of the last synced
tip, keyed the same way. One cache in core/gitmsg replaces them, next to
the other per-workdir caches the code rules allow there.
Max Rakhimov · 2026-09-11 · 0dc70a666924
The package is two halves by file name: site_* renders the static site,
the rest is the S3 transport. A later branch splits them into two
packages, so every symbol moves to the file on its own side first.
Max Rakhimov · 2026-09-08 · ad666bdc3e4c
List pages head with the nav label, verbatim, in both renderers, from one
table pinned by a parity fixture; the lowercase directory name was a heading
the app never showed. The front page drops the title heading the app never
rendered, so the README no longer moves at boot; the
Max Rakhimov · 2026-09-08 · 3ba726253086
The file-page suites expected a page for notes.txt, but a .txt file is
not a document by the selection rule and the fixture set no override,
so the layer correctly published nothing. The fixture now includes it
through filesInclude, and the sitemap assertion follows the word
Max Rakhimov · 2026-09-07 · 72a2244027e0
A public bucket grants GetObject but not ListBucket, and a clone needs
no credentials to read one. With no key pair for the endpoint host the
client is now anonymous: unsigned, read-only, and a push refuses with
the credentials message before it uploads anything. A 403 on a read
Max Rakhimov · 2026-09-07 · 59405aedb3dd
Each doc opens with one sentence, then its section links, then the
first section. Guides come before reference tables, rationale is gone
(git history keeps it), and there are no em-dashes. Stale facts fixed
on the way: TUI jump keys, PM label values, import defaults, the tui
Max Rakhimov · 2026-09-06 · bc20fcf8d6e1
A style rule nobody checks regresses within weeks, so prose-check.sh counts the STYLE.md violations and fails when a count rises above the committed baseline. The full suite cost every push four minutes, so the hook now runs the quick tier; the matrices run under
Max Rakhimov · 2026-09-06 · 772f3c4f3eb6
A sitemap URL that gets refused spends crawl budget and lowers the
indexed ratio, so retracted items and empty type lists are no longer
submitted, and a tombstone carries noindex,follow.
Max Rakhimov · 2026-08-28 · f4142d200835
Pushes exclude a verified upstream frontier but never the gitmsg
branches; fetches overlay the upstream once per session to resolve
missing objects; local-odb objects from real transports count as
present so the fetch walk stops at them; and a thin bucket publishes
no ref
Max Rakhimov · 2026-08-15 · 5b1b9829aa53
Breaking renames, no aliases (pre-1.0): site push -> push --site-only;
push --all -> --all-branches; site put -> remote put; gitsocial site group
removed; memo personal push/fetch -> personal sync; memo session push/fetch
-> memo session sync <id>; release artifacts add ->
Max Rakhimov · 2026-08-14 · 682729d0f0da
- Resilient bucket reads (429/stall retry)
- Failure-isolated config view
- Honest lazy fork loading
- Index-driven tag/compare/merge-base
- Metadata-first parallel search
- Windowed pack reads with per-slice idx offsets
- Parallel index lanes
- Lazy README images
Max Rakhimov · 2026-08-12 · 540ee7272234
The static pages now project the same views the app renders. The front
page is a projection of the home view (branch strip, root tree, README,
Recent activity) instead of the retired timeline body, resolved from
the bucket tip rather than a local ref; the README is pre-rendered