Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
f8d99c4
chore: initialize project brain
automagik-genie Sep 3, 2026
7e33d7d
docs(brainstorm): design DSH Genie board plugin
automagik-genie Sep 3, 2026
0166750
docs(wish): plan DSH Genie board plugin
automagik-genie Sep 3, 2026
534bec5
docs(wish): close dsh board review gaps
namastex888 Sep 3, 2026
8ea3a1a
docs(wish): record dsh board plan blockers
automagik-genie Sep 3, 2026
a5a440d
docs(wish): resolve dsh board plan gate
automagik-genie Sep 3, 2026
9a852e3
docs(wish): approve dsh board plan
automagik-genie Sep 3, 2026
fef7710
docs(wish): start dsh board execution
automagik-genie Sep 3, 2026
4928e39
test: stabilize release and subprocess validation
namastex888 Sep 7, 2026
9cef95e
feat(board): return complete consistent board snapshots
namastex888 Sep 7, 2026
6e928b7
feat(dsh): add authenticated Genie board plugin
namastex888 Sep 7, 2026
04a523c
test: budget the multi-process roadmap sync scenario
namastex888 Sep 7, 2026
875e750
feat(release): verify and package DSH board payloads
namastex888 Sep 7, 2026
c2fc025
fix(roadmap): ignore JSON object key ordering during sync
namastex888 Sep 7, 2026
a4d4426
docs(skills): resolve per-group fix-loop budgets explicitly
namastex888 Sep 7, 2026
ce6fd7a
fix(state): return hires atomically under concurrent removal
namastex888 Sep 7, 2026
a1574d1
test: set explicit modes in delivery fixtures
namastex888 Sep 7, 2026
c06f058
chore(brain): integrate the reviewed project scaffold
namastex888 Sep 7, 2026
535b4fb
chore: synchronize published channel manifests from main
namastex888 Sep 7, 2026
b8b64cf
feat: integrate Genie board and delivery improvements (#2895)
automagik-genie Sep 7, 2026
a79ec04
chore(version): bump to 5.260907.1 [auto-version]
github-actions[bot] Sep 7, 2026
5f97e66
fix(dsh): reject Unicode controls in board input
namastex888 Sep 7, 2026
eeafaea
fix: close promotion review gaps
namastex888 Sep 7, 2026
01ac5d6
Merge pull request #2897 from automagik-dev/nmstx/genie-promotion-rev…
automagik-genie Sep 7, 2026
e5cac71
chore(version): bump to 5.260907.2 [auto-version]
github-actions[bot] Sep 7, 2026
1bb35f9
chore(roadmap): publish the local board snapshot
namastex888 Sep 8, 2026
6f85741
chore(roadmap): retire stale planning cards
namastex888 Sep 8, 2026
beb144b
Merge pull request #2898 from automagik-dev/chore/roadmap-board-repub…
namastex888 Sep 9, 2026
2175769
chore(version): bump to 5.260909.1 [auto-version]
github-actions[bot] Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .brain/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"brainId": "brn_w06loz",
"vaultDir": "brain"
}
2 changes: 1 addition & 1 deletion .genie/INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@

## Simmering


- khal-app-kit-identity + genie-remote-ssh — **RELOCATED 2026-07-23** with the whole khal-native-desktop track to `khal-os/genie-desktop:.genie/` (branch `wish/khal-native-theme`; Felipe: desktop context lives in the desktop repo). Second and third of the Theme→Identity→SSH order, both WRS 60 simmering there
- [genie-boards-ui](brainstorms/genie-boards-ui/DRAFT.md) — WRS 70; genie desktop boards module: ABSORB of the G4 kanban decided by Felipe; tab + split-toggle layout tentatively locked ("that looks good", confirm at crystallize); archive section + per-project .genie-commit checkboxes added to scope; roadmap shape (per-project board + groom-with-agent task) recommended, awaiting Felipe; depended on ui-bridge board-payload extension (protocol 1.1) + genie-ui-dash G5 (2026-07-21) — **both retired 2026-08-30** (#2834, Felipe: Orca integration is the only UI); this draft is superseded unless re-scoped onto Orca
- [intent-to-wish-compiler](brainstorms/intent-to-wish-compiler/DRAFT.md) — **LIVE (re-verified 2026-07-21):** WRS 92; Demand→Patch/Standard/Program router + circuit-breaker (flex cuts autonomous, payout cuts human-only); invisible routing compiled from intent — program-scale, splits at pour time
- [brainstorm-domain-map](brainstorms/brainstorm-domain-map/DRAFT.md) — **LIVE (re-verified 2026-07-21):** WRS 80; executable spec compiler (intent → requirement-ID → oracle-class → execution → proof-packet); deterministic gates, residual-risk review only; subjective-truth ownership still open (umbrella G8)
## Ready
- [dsh-genie-board — DESIGN](brainstorms/dsh-genie-board/DESIGN.md) → [WISH](wishes/dsh-genie-board/WISH.md) — **IN PROGRESS 2026-09-03** from approved plan `9c5ba2714` after direct Felipe implementation authorization; Group 1 is the sole active wave under WIP=1, while merge, stable release, deploy, topic publication, spend, and credential changes remain separately gated
- [skills-everywhere-b — WISH](wishes/skills-everywhere-b/WISH.md) · [skills-everywhere-c — WISH](wishes/skills-everywhere-c/WISH.md) — **both APPROVED 2026-08-31** (B: plan SHIP round 3 `e86d3f12…` after two FIX-FIRST loops — the ~20k-line subtractive wish, 7 groups, wave-0 gates: Wish A stable + rebase ≥ 1b34d7d4b; C: plan SHIP round 2 `8e5611226…` — skills-lint tokens, CLAUDE.md/AGENTS.md/docs rewrite, depends-on B). Wish A flipped SHIPPED with the @ref-pin correction (skills@1.5.23 serves the default branch for any ref).
- [skills-everywhere — DESIGN](brainstorms/skills-everywhere/DESIGN.md) · [WISH A](wishes/skills-everywhere/WISH.md) — **design SHIP 2026-08-30 (rev. 6, digest `fafaef24…`, re-stamped after rename from `codex-skill-installer`); Wish A SHIPPED 2026-08-31 (all 7 groups; @ref-pin correction recorded) — umbrella A→B→C, base `dev`:** everywhere except Orca, Genie = skills (skills.sh `npx skills add automagik-dev/genie@v<ver> --all --copy`) + CLI, nothing else — Codex/Claude/Kimi/Hermes/pi integrations, hooks, role agents, council stamp and `agent-sync` deleted; 4-platform Codex dogfood matrix → skills-install + update-path smokes

Expand Down
90 changes: 90 additions & 0 deletions .genie/brainstorms/dsh-genie-board/DESIGN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Design: Genie board for DSH Web

| Field | Value |
|-------|-------|
| **Slug** | `dsh-genie-board` |
| **Date** | 2026-09-03 |
| **WRS** | 100/100 |

## Problem

DSH users cannot inspect or operate the authoritative Genie board from DSH Web. The integration must render Genie's real lifecycle lanes without turning `genie.db` into a cross-repository API or reviving the retired `genie mcp` / `genie ui-bridge` surfaces.

## Scope

### IN

- A dual-face DSH Web plugin at `plugins/dsh-genie-board/`, using `dsh-task-board` only as licensed UI, build, and plugin-loading schematics.
- Host-side execution of supported `genie board --json` and `genie task ...` commands in a DSH workspace selected by stable workspace id.
- A Genie-branded kanban that renders board-defined lanes, card metadata, and Host-confirmed mutations.
- Board selection plus task create, move, comment, block/unblock, checkout/release, and done actions supported by the current CLI.
- Fail-closed executable, workspace, argv, timeout, output-size, and JSON validation; same-origin Host routes; focused tests and a local linked-plugin smoke.
- Public installation documentation, reference attribution, release packaging, and the `dsh-plugin` GitHub topic after verification.

### OUT

- Direct reads or writes to `.genie/genie.db`.
- Reintroducing `genie mcp`, `genie ui-bridge`, a daemon, a plugin-owned ledger, or another Genie protocol.
- The reference plugin's cron scheduler, execution runner, continuation cards, handover bundles, or sleep inhibitor.
- Automatic task execution by DSH sessions, hard delete, task dependency editing, wish authoring, or promotion/deploy controls in v1.
- Homolog, production, stable release, or external announcement beyond the requested repository topic without a separate gate.

## Approach

Co-locate `@automagik/genie-dsh-board` under `plugins/dsh-genie-board/` in the public Genie repository. Its Host half receives a DSH workspace id, resolves that id through `workspaceRegistry`, requires a physical repository containing `.genie`, and invokes the installed `genie` executable with a fixed command allowlist, argv arrays, `shell: false`, a bounded environment, deadline, and output cap. Reads parse and validate `genie board list --json`, `genie board --board <ref> --json`, and `genie task status <id>` outputs; writes map a strict discriminated action union to current `genie task` commands and then return a fresh board snapshot.

The browser half follows the reference plugin's Cordis manifest, client injection, sidebar mount, CSS, and kanban component patterns while keeping Genie authoritative. It discovers eligible DSH workspaces from a Host endpoint, lets the user choose a workspace and board, re-fetches on explicit refresh, successful mutation, and page visibility recovery, and never applies optimistic task state. Host errors are bounded and visible.

Alternatives considered: `namastexlabs/dsh-plugins` would reuse DSH tooling but is private and publishing it would expose unrelated packages; a new public repository would add release/version-skew policy immediately; reviving MCP/ui-bridge contradicts their explicit retirement; direct SQLite access freezes a private schema. All lose to co-location plus the supported CLI.

## Simplicity Case

- **Simplest complete design:** one dual-face package, one in-memory request mapping, and the existing Genie CLI as the only state authority; browser state is replaced from confirmed snapshots.
- **Added machinery:** a Host route fence, strict action union, child-process deadline/output cap, and schema validation are required because a browser-triggered long-lived Host is crossing into repository mutations.
- **Deferred until measured:** SSE/file watchers, polling, caches, batch mutations, autonomous card execution, cron, and resumable requests stay out until explicit user demand or measured refresh latency makes manual/visibility refresh inadequate.
- **Complexity removed:** no new durable state, migration, socket, daemon, synchronization protocol, duplicate task ledger, or cross-repository compatibility matrix.

## Decisions

| # | Decision | Rationale |
|---|----------|-----------|
| 1 | Package lives in `automagik-dev/genie` at `plugins/dsh-genie-board/`. | The adapter and the CLI contract ship together; the existing public repository can carry the requested topic without exposing unrelated private code. |
| 2 | Only current public CLI commands cross the boundary. | `genie mcp` and `genie ui-bridge` are explicit refusal stubs; SQLite is private. |
| 3 | Resolve workspace ids through DSH and never accept arbitrary browser paths. | Keeps path authority on the Host and prevents traversal or mutation of an unselected repository. |
| 4 | Mutations are strict action-to-argv mappings and refresh before response. | Prevents command injection and ensures the browser never displays unconfirmed state. |
| 5 | Copy only MIT-licensed plugin/UI schematics with attribution. | Reuses proven DSH mount mechanics without importing the reference ledger, scheduler, runner, or security assumptions. |
| 6 | v1 is a human board surface, not an execution orchestrator. | Meets the requested Genie-board integration while avoiding a second agent lifecycle and permission model. |
| 7 | Add the `dsh-plugin` topic only after build, tests, and linked-profile smoke succeed. | The topic is an external discoverability claim and should point to a working install path. |

## Risks & Assumptions

| # | Risk | Severity | Mitigation |
|---|------|----------|------------|
| 1 | Current CLI output omits data or stable JSON for a desired action. | Medium | Freeze only observed documented JSON reads; make unsupported actions visible and add Genie-side JSON only when a concrete UI criterion requires it. |
| 2 | Browser-triggered CLI processes hang or emit excessive/malformed output. | High | Abort deadline, terminate child, cap stdout/stderr, validate JSON and exit code, and test every failure path. |
| 3 | DSH package APIs differ between local `0.1.1-rc.2` and the newer reference package. | Medium | Target and smoke the installed profile first; use only official injected services available locally and declare the proven engine floor. |
| 4 | Co-locating a DSH package silently breaks Genie's release payload. | Medium | Extend package/build/release manifests intentionally and run the repository's full check plus release verification for the affected platform contract. |
| 5 | Reference code is copied without attribution or drifts into unrelated behavior. | Medium | Preserve MIT attribution in package documentation/NOTICE and use a file-by-file provenance inventory in review. |
| 6 | Topic publication precedes a usable install. | Low | Topic mutation is the final, separately evidenced action after linked-plugin read-back. |

## Success Criteria

- [ ] In DSH Web, a user selects an eligible workspace and Genie board and sees lanes/cards semantically matching the same CLI JSON snapshot, including status, assignment, liveness, blocks, and comments where the CLI exposes them.
- [ ] Create and move round-trip through `genie task`, and every supported mutation returns a fresh confirmed snapshot with no optimistic browser state.
- [ ] An unknown workspace id, non-physical or non-Genie directory, missing executable, disallowed action, invalid input, timeout, oversized output, malformed JSON, or non-zero exit produces a bounded visible error and no out-of-scope mutation.
- [ ] The Host never invokes a shell, accepts an executable path or raw argv from the browser, reads SQLite directly, or persists a second task ledger.
- [ ] Package typecheck, unit tests, build, focused security tests, local `dsh plugin --profile web add link:...` smoke, and the Genie full gate pass against the final commit.
- [ ] Installation and compatibility are documented, copied reference portions are attributed, the plugin is included in the supported release payload, and `automagik-dev/genie` has the `dsh-plugin` topic.

## Next Step

After an independent design review returns SHIP, persist the evidence below and verify its content digest before running `wish`.

<!-- genie-design-review:start -->
## Design Review Evidence

- **Verdict:** SHIP
- **Reviewed content SHA-256:** `073cce9acfc9a256756a87440cf752559fc9fd9a1d31d8ca7c36615fcece4aaf`
- **Reviewer:** agent:steve:dashboard:0950bf4d-628a-4797-b387-2d2dcaf3273a
- **Reviewed at:** 2026-09-03T13:29:28.000Z
<!-- genie-design-review:end -->
66 changes: 66 additions & 0 deletions .genie/brainstorms/dsh-genie-board/DRAFT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Draft: Genie board for DSH Web

| Field | Value |
|-------|-------|
| **Slug** | `dsh-genie-board` |
| **Date** | 2026-09-03 |
| **WRS** | 100/100 |

## Problem

DSH users cannot inspect or operate the authoritative Genie board from DSH Web. The integration must render Genie's real lifecycle lanes without turning `genie.db` into a cross-repository API or reviving the retired `genie mcp` / `genie ui-bridge` surfaces.

## Scope

### IN

- A dual-face DSH Web plugin using the `dsh-task-board` package only as UI and plugin-loading schematics.
- Host-side execution of the supported `genie board --json` and `genie task ...` CLI contracts in an explicitly selected DSH workspace.
- A kanban UI that renders Genie's board-defined lanes and refreshes after confirmed Host mutations.
- Focused task actions supported by the current CLI: create, move, comment, block/unblock, checkout/release, and done.
- Fail-closed repository, executable, output-size, timeout, and argument validation.
- Install, build, test, and topic-based discovery documentation.

### OUT

- Direct reads or writes to `.genie/genie.db`.
- Reintroducing `genie mcp`, `genie ui-bridge`, a daemon, or a new Genie protocol.
- Copying the reference plugin's independent ledger, cron scheduler, execution runner, continuation cards, or sleep inhibitor.
- Automatic execution of cards by DSH agents in the first release.
- Homolog or production promotion before separate human approval.

## Candidate Approaches

1. **Co-located package in `automagik-dev/genie` (chosen).** Keep the DSH adapter next to the CLI contract it consumes, install from the public GitHub repository, and add the `dsh-plugin` topic to that repository. This avoids a second release authority and version-skew policy.
2. **Package in private `namastexlabs/dsh-plugins`.** Reuses its DSH monorepo tooling, but public discoverability would require publishing an existing private repository whose other contents were not placed in scope.
3. **New standalone public repository.** Gives the cleanest marketplace identity, but immediately creates cross-repository release/version-skew work and conflicts with the current registered-project list.

## Simplest Complete Design

The DSH Host resolves one workspace root, runs a fixed allowlist of `genie` argv arrays with `shell: false`, parses bounded JSON for reads, and returns confirmed snapshots/actions over same-origin Host routes. The browser mounts a Genie-branded board and re-fetches after each mutation. No plugin-owned task database and no background synchronization state are introduced.

## Decisions

- Settled: Genie CLI is the only task-state boundary; SQLite is private.
- Settled: DSH task-board code is a schematic/reference, not a state model to fork wholesale.
- Settled: v1 is human-operated board management, not scheduled autonomous execution.
- Settled: the package lives at `plugins/dsh-genie-board/` in `automagik-dev/genie`; the repository receives the `dsh-plugin` topic after the plugin is verified.

## Risks

- CLI JSON/exit contracts may be incomplete for some UI actions; freeze only current documented commands and surface unsupported actions rather than inventing writes.
- DSH Host is long-lived while Genie is zero-daemon; every child process needs timeout, output caps, abort cleanup, and no shell.
- A broad copy of `dsh-task-board` would import an unrelated ledger and security model; copy only mount/build/UI patterns.
- The installed DSH is `0.1.1-rc.2`, while the reference task-board targets newer alpha packages; compatibility must be proven against the local profile.

## Success Criteria

- A DSH Web user selects a Genie repository and sees the same boards, lanes, cards, status, assignment, liveness, block, and comment information represented by the CLI JSON output.
- Create and move actions round-trip through `genie task` and the UI shows only Host-confirmed state.
- Invalid workspace paths, missing Genie, timeouts, malformed/oversized output, and non-zero CLI exits produce bounded visible errors and no state mutation outside the selected repository.
- Package typecheck, unit tests, build, a local linked-plugin smoke, and the Genie repository's required validation gates pass.
- The public installation path is documented and its public GitHub repository has the `dsh-plugin` topic.

## Next Step

Crystallize the design, obtain an independent cross-family review, and only then scaffold the executable wish.
Loading