plans: agent credentials and git identity brief (MVP T1 item 6, #1697, Megavolt, reviewer Duckworth); Megavolt seat dir
This commit is contained in:
1 parent
a7661ada06
commit
992650232f
3 files changed
+66
No files matched your search
@@ -22,6 +22,7 @@ not fleet seats. Keep changes in `/mnt/storage/src/mosaic-stack`; do not modify
|
|||||||
| Gander | Builder, the human boundary across uids (P19 333, #1694) | T3 session (Codex, gpt-6.1-sol), started by Sage under mos-0977 | none, T3 only |
|
| Gander | Builder, the human boundary across uids (P19 333, #1694) | T3 session (Codex, gpt-6.1-sol), started by Sage under mos-0977 | none, T3 only |
|
||||||
| Herb | Builder, a second gate lane (#1695) | T3 session (Codex, gpt-6.1-sol), started by Sage under mos-0977 | none, T3 only |
|
| Herb | Builder, a second gate lane (#1695) | T3 session (Codex, gpt-6.1-sol), started by Sage under mos-0977 | none, T3 only |
|
||||||
| Bushroot | Builder, retire the control board writer on 7331 (#1696) | T3 session (Claude, claude-haiku-5-5), started by Sage under mos-1008 | none, T3 only |
|
| Bushroot | Builder, retire the control board writer on 7331 (#1696) | T3 session (Claude, claude-haiku-5-5), started by Sage under mos-1008 | none, T3 only |
|
||||||
|
| Megavolt | Builder, MVP T1 item 6 (agent credentials and git identity, #1697) | T3 session (Claude, Opus 5.5), started by Sage under mos-0974/0977 | none, T3 only |
|
||||||
| Webby | Reviewer: Case 2 designs, rows 192 and 194 | T3 session (Claude, Opus 5.5, thread 03086006), started by Mos (mos-0981) | none, T3 only |
|
| Webby | Reviewer: Case 2 designs, rows 192 and 194 | T3 session (Claude, Opus 5.5, thread 03086006), started by Mos (mos-0981) | none, T3 only |
|
||||||
| Duckworth | Reviewer: federation designs, row 193 | T3 session (Claude, Opus 5.5, thread ffceafec), started by Mos (mos-0977) | none, T3 only |
|
| Duckworth | Reviewer: federation designs, row 193 | T3 session (Claude, Opus 5.5, thread ffceafec), started by Mos (mos-0977) | none, T3 only |
|
||||||
| Sage | Project lead: coordination, review, integration; earlier DYOR strategy records retained | T3 session (Claude Code); Pi launcher `zai/glm-5.3:high` retained | `agents/sage/launch.sh` |
|
| Sage | Project lead: coordination, review, integration; earlier DYOR strategy records retained | T3 session (Claude Code); Pi launcher `zai/glm-5.3:high` retained | `agents/sage/launch.sh` |
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Megavolt
|
||||||
|
|
||||||
|
Builder seat, Claude Opus 5.5, started by Sage under mos-0974 and mos-0977 item 5 for MVP T1 item 6, the
|
||||||
|
credential store per agent with its own git identity (#1697).
|
||||||
|
|
||||||
|
No launcher in this directory. The seat runs as a T3 thread and works in its own worktree. It has no
|
||||||
|
credentials of its own; until the credentials row settles per-agent identity, it pushes only its own `megavolt/*`
|
||||||
|
branches through the repository credential helper (mos-0981), never `refactor`, `main` or another seat's branch.
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# Brief: a credential store per agent, own git identity, pushes to a remote
|
||||||
|
|
||||||
|
Sage, 2026-10-20, for mos-0974 (MVP T1 item 6) and the MVP plan
|
||||||
|
(`jason-master-restart/projects/mosaic-mvp/PLAN.md` item 6, GAP-MAP G11 and G13; TARGET.md: "credentials store
|
||||||
|
available for all agents; secrets protected with RLS equivalent" and "Agent uses own credentials for git and
|
||||||
|
other actions"). Gitea #1697. Owner Megavolt (Opus 5.5, a new builder seat), reviewer Duckworth, gate owner
|
||||||
|
Sage. Base: refactor at the brief commit. Design first. The first deliverable is
|
||||||
|
`agents/megavolt/work/queue-ROW/DESIGN.md`.
|
||||||
|
|
||||||
|
This row draws a security boundary. Sage reviews the design's authority model, and Mos rules on it before any
|
||||||
|
code is written.
|
||||||
|
|
||||||
|
## What exists today (GAP-MAP, measured at 9ae8c73ac)
|
||||||
|
|
||||||
|
- G11. Credential references exist per instance for Gitea and Vikunja only
|
||||||
|
(`packages/business/src/credentials.mjs`, `packages/bus/src/credentials.mjs`, `vocabulary.mjs:103`). One
|
||||||
|
Claude env file is shared by every seat.
|
||||||
|
- G13. Agents use their own Vikunja token (`packages/tasks/src/adapter.mjs`). Git goes through the host
|
||||||
|
socket (`packages/cli/src/git-socket.mjs`). Gitea tokens are loaded but never used.
|
||||||
|
- The development repository's helper (`scripts/git-credential-mosaic.mjs`, wired in `.git/config` for
|
||||||
|
git.mosaicstack.dev) pushes as one identity. Until this row lands, seats push only their own `<seat>/*`
|
||||||
|
branches through it (mos-0981).
|
||||||
|
|
||||||
|
## What the design must settle
|
||||||
|
|
||||||
|
1. The store. Where each agent's credentials live, per instance, under the row 190 config canon. File modes,
|
||||||
|
ownership and the read path. Which process may read which entry, and how the bus enforces that (the "RLS
|
||||||
|
equivalent"). A process asking for another agent's entry is refused and logged.
|
||||||
|
2. Kinds. Gitea (git over HTTPS, and the API), Vikunja, and the model provider. Say which kinds 10-27 needs
|
||||||
|
and which wait. The model provider entry must not copy jwoltje's `claude-session.env`. If it needs a new
|
||||||
|
provider account or subscription, flag it for Jason and don't pick one.
|
||||||
|
3. Git identity and push. Each agent commits with its own name and email and pushes with its own token to a
|
||||||
|
remote it is granted. Which refs an agent may push (its own branches, never the default branch or another
|
||||||
|
agent's), and where that's enforced: the Gitea side (branch protection, token scopes) and our side. How
|
||||||
|
this fits the host git socket, or replaces it.
|
||||||
|
4. Lifecycle. Issue, rotate (`rotateBy`, `expires`), revoke and delete, and what row 194 (agent lifecycle) calls
|
||||||
|
when an agent is hired or fired. A fired agent's credentials stop working at once.
|
||||||
|
5. Who does what. Creating a Gitea user or token, or any account outside the fleet, is Jason's (Q173
|
||||||
|
exclusions). The design lists each such step as a command or UI action for Jason. Agents never mint
|
||||||
|
accounts.
|
||||||
|
6. Migration. Today's seats (jarvis helper, seat tokens) keep working until each moves. The mos-0981 push
|
||||||
|
rule ends only when Mos says so.
|
||||||
|
7. What this row closes in G11 and G13, and what stays open.
|
||||||
|
|
||||||
|
## Boundaries
|
||||||
|
|
||||||
|
- No credential value is read, printed, logged or committed. Tests use fake tokens in scratch roots and a
|
||||||
|
fake Gitea.
|
||||||
|
- No change to `~/.mosaic-dev`, `~/.config/mosaic-dev`, the live units, slot files, `~/.mosaic` or the live
|
||||||
|
`.git/config` of the canonical checkout.
|
||||||
|
- No request to git.mosaicstack.dev, tasks.woltje.com or any provider from a test.
|
||||||
|
|
||||||
|
## Gate
|
||||||
|
|
||||||
|
Duckworth approves DESIGN.md, Mos rules on the authority model, then Duckworth approves the manifest. The bus,
|
||||||
|
business, cli and tasks suites and every `scripts/test-*.sh` are green on Sage's gate, and the design's
|
||||||
|
mutants are killed.
|
||||||
Reference in new issue
Block a user