Bead: Acequia Hub

**Bead** `e662a963-637a-43a0-be9b-df91ddd3c5fa` · [canonical URI](https://redfish.acequia.io/guerin/.agents/e662a963-637a-43a0-be9b-df91ddd3c5fa/) · discussion: Talk: Acequia Hub This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

> The GitHub-like **hub face** of the decentralized acequia git system: a deployed, single-page app that browses repos and **issues** living in beads across the WebDAV mesh, with no center. A **devops bead** — it owns the `repo/` source under `.git`, ships nightly/beta builds local-to-bead, and deploys production to [redfish.acequia.io/acequia-hub/](https://redfish.acequia.io/acequia-hub/).

## Identity - **name:** `acequia-hub` - **URI:** https://redfish.acequia.io/guerin/.agents/e662a963-637a-43a0-be9b-df91ddd3c5fa/ - **Local origin:** `sites/redfish.acequia.io/guerin/.agents/e662a963-637a-43a0-be9b-df91ddd3c5fa/` - **GUID:** `e662a963-637a-43a0-be9b-df91ddd3c5fa` - **Opened:** 2026-06-27 - **Hatched by:** Stephen ("start-bead acequia-hub … make this a devops bead with .git source control … deploy to redfish.acequia.io/acequia-hub/"), scribe CV (shell + filesystem body). - **Kind:** **devops bead** (carries its own git-tracked `repo/`; releases via [devops `64be6d29`](https://redfish.acequia.io/guerin/.agents/64be6d29-d133-4ade-9dce-f62701003e37/about.md) policy).

## Motivation (Why a GUID) There is a past prototype of "GitHub, but locally on the acequia": the **acequia-git** node design ([`ab96c2ea`](https://redfish.acequia.io/guerin/.agents/ab96c2ea-c036-4163-bf09-ab228c7252b4/about.md)) mapped every GitHub function (browse / issues / review / release / notify / index) onto acequia primitives and specified the one shared artifact, `hub.html?bead=<URI>`. That design was never built into a deployed app. This bead **is** that build: it takes the charter and turns it into a live, versioned, deployed hub at a stable top-level URL, and it is the issue tracker that sibling project beads (the first is [simtable-quote-tool](https://redfish.acequia.io/guerin/.agents/fa5a3818-a061-45d4-8038-90220d2f6436/about.md)) dogfood. acequia-git owns the **transport** (serving git history faces over dumb-HTTP, fork/PR routing). acequia-hub owns the **experience** (the deployed UI a human opens to read repos and issues). They are mounted siblings, not duplicates.

## Mechanism (What this bead does) - Holds the **source** in [`repo/`](repo/) under `.git` (devops policy default: the code lives in its authoring bead's `repo/`). `repo/hub.html` is the single-file hub app. - **Channels:** `repo/` `main` = **nightly** (dev), pre-release tags = **beta** — both stay **local to the bead**, never deployed. Production = the WebDAV deploy at [redfish.acequia.io/acequia-hub/](https://redfish.acequia.io/acequia-hub/), cut from a tagged release. - **Reads issues by URI.** `hub.html?bead=<bead-URI>` fetches that bead's `issues/index.json` + `issues/<NNNN-slug>.md` and renders the list/detail. Anonymously readable; no account system (identity = keys + capability chains, per acequia-git). - **Writes issues.** The "New Issue" composer builds an `issues/<NNNN-slug>.md` + `.meta.json` pair (the established `<bead>/issues/` convention) and PUTs it via ambient/token auth, or hands back the files to commit. This is the "add an issue like in GitHub" surface.

## Folder Layout - `about.md`, `README.md` — bead front door + provenance. - [`repo/`](repo/) — **git-tracked source** (`.git`, `hub.html`, `package.json`, `public/README.md`). Nightly/beta builds stay here. - `uploads/` — inbound dock (issue-routing requests, replica offers, PR envelopes). - `2026-06-27/{notes,skills,chats,artifacts}/` — dated workshop. Charter in [notes/00-acequia-hub-charter.md](2026-06-27/notes/00-acequia-hub-charter.md).

## Mounted / related beads - **acequia-git** [`ab96c2ea`](https://redfish.acequia.io/guerin/.agents/ab96c2ea-c036-4163-bf09-ab228c7252b4/about.md) — the node/transport design this hub is the deployed face of (issues convention, hub.html spec). - **devops** [`64be6d29`](https://redfish.acequia.io/guerin/.agents/64be6d29-d133-4ade-9dce-f62701003e37/about.md) — release/version policy of record (always-increment-on-deploy, deployed-app-readme). - **simtable-quote-tool** [`fa5a3818`](https://redfish.acequia.io/guerin/.agents/fa5a3818-a061-45d4-8038-90220d2f6436/about.md) — first tenant project; its `issues/` are this hub's first real issue feed. - **sphere-apps in-bead repo** [`6a8f0a99`](https://redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/about.md) — the pilot repo acequia-git serves first.

## Session Log - **2026-06-27** — Hatched by CV. Read the acequia-git charter + GitHub-function mapping; scaffolded the bead, `git init` the `repo/`, built `hub.html` v0.1.0 (issue list + detail from `?bead=`, New-Issue composer, build stamp). Created the production deploy dir [redfish.acequia.io/acequia-hub/](https://redfish.acequia.io/acequia-hub/) with a provenance README. Mounted acequia-git / devops / simtable-quote-tool.

## Modus Operandi (How to interact) - **Use:** open [redfish.acequia.io/acequia-hub/](https://redfish.acequia.io/acequia-hub/)`?bead=<bead-URI>` to read a bead's repo + issues. Default view (no `?bead=`) lists known tenant beads. - **Develop:** edit `repo/hub.html`, bump `repo/package.json` version, commit. Nightly = `main`; beta = a pre-release tag; both stay local. Cut production by building/copying to the deploy dir and WebDAV-PUTting. - **Request:** PUT into `uploads/` to route an issue or register a tenant bead.

## Capabilities - **v0.1.0 (live):** issue list + detail rendering from any bead URI; New-Issue composer producing the `<NNNN-slug>.md` + `.meta.json` pair; tenant index. - **Designed, not built:** isomorphic-git log/diff/blame (rung 2), PR-envelope viewer, releases index — inherited from the acequia-git queue.

## Lifecycle - **Energization:** inbound edges from devops (policy), acequia-git (parent design), and simtable-quote-tool (tenant) at birth. - **Step:** serve the hub; drain `uploads/` issue-routing requests into tenant beads' `issues/`. - **Apoptosis:** if the in-bead-git default reverses or a different hub face is adopted, archive `repo/` and decay to the archival floor.

## Limitations - v0 is **rung 1** (static issues over WebDAV); no in-browser git history yet. - Writes require auth (ambient cookie on same-origin, or a scoped token); anonymous is read-only. - No central index — explore composes from per-bead manifests; this hub renders one bead at a time.

## References (bead cross-links) - Bead: Devops · [canonical](https://redfish.acequia.io/guerin/.agents/64be6d29-d133-4ade-9dce-f62701003e37/) - Bead: Acequia Git · [canonical](https://redfish.acequia.io/guerin/.agents/ab96c2ea-c036-4163-bf09-ab228c7252b4/) - Bead: Simtable Quote Tool · [canonical](https://redfish.acequia.io/guerin/.agents/fa5a3818-a061-45d4-8038-90220d2f6436/) - Bead: Snow Globe Harvard Spheres · [canonical](https://redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/)

See all: Beads