zz_

156ba0d5 ยท zzmq.dev@gmail.com/zz

Commit

156ba0d5a62379894e19c59dc5c2629b60b3d077

Private-repo visibility in explore/search, repo page polish, Ladder bootstrap, and a Work tab Explore/search: - Private repos no longer show up in /explore or search unless the viewer is logged in and has a role grant -- previously visibility was only enforced on a repo's own page (canReadRepo), not on discovery. Backed by a new repos.visibility D1 cache (migration 0005), kept in sync by doCreateRepo/doSetVisibility. - /explore is now a single autocomplete-as-you-type box mixing repos and users (new GET /api/explore/search), not just a submit-and- reload search form. Repo page, per direct feedback: - Visibility badge moved out of the header card and into the title itself, right after the repo name. - Settings is now a gear icon in the description card's own corner (card-head layout) instead of a button in a row of other buttons. - Clone command is a full-width row directly under the description (no longer right-aligned/split), with Download .zip right next to it and a real copy-to-clipboard button (generic [data-copy] wiring). - README renders as markdown (a small safe-by-construction renderer -- escapes first, so no README content can ever produce live HTML -- rather than a dependency, given Workers' module constraints). - Commits moved into the README/Ladder/Files group as its own tab; the second tab group is now Activity/Asks/Lanes, with Activity showing the full persisted protocol trail styled as a dense log feed (the closest equivalent a static page has to the TUI's own activity view, which reads a live process's in-memory log that has no server-side equivalent to read here). - New repos are bootstrapped with a real Ladder (repo/README/LICENSE file rungs + an initial-commit changeset with filechanges) instead of starting empty -- built mechanically (no LLM calls), reusing the exact "added." fallback agent/tools.ts's own mechanicalFileChangeRung already uses for large commits. - A copy-pasteable `zz work --repos <slug>` line to join as a worker. New Work tab (nav, peer of Explore): lists every claimable Ask across every repo you can see (same engine/workqueue.ts claimableAsks query `zz work` itself runs), with a Claim button. Claiming shows real, copy-pasteable CLI instructions -- `zz review` for a changeset_review, or `zz repo clone` + edit + `git add` + the new `zz repo submit` for everything else, which posts a changeset_review + submit_changeset and completes the Ask, the same protocol sequence a scripted agent follows via commit_changeset, just with content read off disk instead of generated. Also fixed a real bug surfaced while building this: `zz work`'s remote mode used ~/.zz/config.json's agent id as the actor on every tool call, a value completely disconnected from `zz login`'s credentials.json -- any mismatch made every remote call fail the server's anti- impersonation check. --agent now defaults to your logged-in identity in remote mode. Converted `zz review` to support remote mode the same way `zz work` already does (--local to opt back to the demo path) -- it was local-only, so it couldn't see anything posted through a remote `zz work` run or the web app. Verified live: repo page restructure, markdown README, tabbed groups, and the full Work-tab claim flow (claimed a real Ask, got the correct `zz repo submit` command with the right ask id) all confirmed in a real browser. The Ladder bootstrap on repo creation is typechecked and follows the proven ladder_write_rung/mergeLaneLadder pattern already verified live elsewhere this session, but wasn't independently re-verified against a fresh repo since that requires completing OAuth login, which this session can't do on the user's behalf.

Troy Howard <thoward37@gmail.com> -- 2026-10-12T07:25:57.000Z

Tree at this commit