Skip to content

Retire cozystack-ui: migrate open issues/PRs into the monorepo, then archive #3097

Description

@myasnikovdaniil

Retire cozystack-ui: migrate open issues/PRs into the monorepo, then archive

Context. PR #2963 (merged 2026-06-26, 01addfc26) vendored the cozystack-ui console SPA into the monorepo at packages/system/dashboard/images/console/. The build no longer fetches the old repo; only the shipped image name (cozystack-ui) and immutable changelog entries still reference it, both intentionally. The standalone repo still has 2 open PRs and 14 open issues that must move here before it is archived.

New home for all UI work: packages/system/dashboard/images/console/.

Principles

  • Preserve authorship and discussion; credit original authors (Co-authored-by).
  • Use the monorepo's coarse label taxonomy. The old per-area labels (area/console|forms|vm|auth|tenants) collapse to area/dashboard; area/containerarea/build. kind/* and priority/* carry over verbatim.
  • Order: migrate PRs → migrate issues → update doc/CONTRIBUTING pointers → archive. Issues cannot be transferred out of an archived repo, so archive last.

Label mapping

cozystack-ui label monorepo label
area/console, area/forms, area/vm, area/auth, area/tenants area/dashboard
area/container area/build
kind/bug, kind/feature, kind/cleanup same
priority/backlog, priority/important-soon same
security confirm monorepo equivalent before applying

Granularity loss is expected — the monorepo deliberately uses one area/dashboard for the whole UI. If sub-area tracking is wanted later, propose new labels via PR per AGENTS.md (extend .github/labels.yml + pr-labeler.yaml).

Part 1 — Open PRs (2): re-apply (GitHub cannot transfer PRs)

For each: re-create the diff onto the new in-tree path, open a fresh monorepo PR with Co-authored-by: the original author, link back to the original, then close the original with a pointer. Verify each is still needed against the merged in-tree code first.

old PR author title path remap size note
#34 IvanHunters fix(k8s-client): redirect to oauth2-proxy on 401 packages/k8s-client/src/client.ts…/images/console/packages/k8s-client/src/client.ts +18/-0, 1 file trivial; confirm in-tree client.ts still lacks the 401 handler
#26 lexfrei refactor(forms): validate the schema form before page-level checks apps/console/src/routes/Backup*CreatePage(.test).tsx…/images/console/apps/console/… +92/-20, 8 files scope already reduced to validation-ordering (the VMDisk/StorageClass parts were obsoleted by #30, which is in the merged snapshot); re-verify against in-tree pages

Part 2 — Open issues (14): transfer + relabel

Mechanism (decided): gh issue transfer <N> cozystack/cozystack — preserves comments, author, and leaves a redirect from the old URL. Caveat: transfer drops labels not present in the target, so re-apply the mapped labels immediately afterward.

Triage: KEEP = migrate as-is. VERIFY = check whether the merged snapshot already resolves it before migrating.

old # title mapped labels triage
42 chore(deps): refresh npm dependencies with published security fixes area/dashboard, priority/important-soon, security KEEP — re-scope to the in-tree pnpm workspace; fold into Renovate/Scorecard coverage
41 Console nginx default client-header buffers → HTTP 400 on large OIDC tokens area/build, kind/bug, priority/important-soon KEEP
39 App detail Services tab: connection FQDN with configurable domain suffix area/dashboard, kind/feature, priority/backlog KEEP
38 App detail Services tab does not show external LoadBalancer IP area/dashboard, kind/bug, priority/important-soon KEEP (distinct from the #2963 enabled-gate fix)
37 Child tenants see no default VM images (picker reads cozy-public PVCs directly) area/dashboard, kind/bug, priority/important-soon KEEP
36 VM create form: cannot add a disk until the page is refreshed once area/dashboard, kind/bug, priority/backlog VERIFY — likely fixed by the #30 DynamicOptionsWidget refactor already in-tree
35 Cluster create form: cilium/coredns shown among toggleable addons w/o toggle area/dashboard, kind/cleanup, priority/backlog KEEP
33 Capacity drill-down pages show generic error instead of 403-specific copy area/dashboard, kind/cleanup, priority/backlog KEEP
32 Tenant picker shown on cluster-scoped /admin pages area/dashboard, kind/bug, priority/backlog KEEP
31 humanizeBytes renders Ki-range sizes as raw bytes area/dashboard, kind/bug, priority/backlog KEEP
14 Surface underlying Pod and HelmRelease events in application detail view area/dashboard, kind/feature, priority/backlog KEEP
10 immutable-paths: array reorder re-anchors source values to new indices area/dashboard, kind/bug KEEP
9 immutable-paths: overlay does not materialise an immutable leaf when ancestor missing area/dashboard, kind/bug KEEP
8 immutable-paths: walker should descend into oneOf/anyOf/allOf branch properties area/dashboard, kind/bug KEEP

Part 3 — Doc/process pointers to repoint before archive

  • docs/storage-immutability.md:13 → link cozystack/cozystack-ui#6 (fixed in cleanup PR B).
  • cozystack-ui README / CONTRIBUTING: add a banner "Development moved to cozystack/cozystack — file issues and PRs there", link the monorepo dashboard path.
  • Any "report UI bugs here" links in monorepo docs/website pointing at the old tracker.

Progress — 2026-06-26

Migration executed. Old cozystack-ui#N → new monorepo issue #M:

old new old new old new
#8 #3101 #31 #3105 #37 #3110
#9 #3102 #32 #3106 #38 #3111
#10 #3103 #33 #3107 #39 #3112
#14 #3104 #35 #3108 #41 #3113
#36 #3109 #42 #3114

All 14 carry mapped labels (area/dashboard, or area/build for #3113; kind/*/priority/*/security/triage/accepted retained on transfer). #3109 (was #36) keeps its own "verify against current main" request — the disk-array-add symptom still needs a runtime repro before closing. cozystack-ui now has 0 open issues.

PRs re-applied (originals closed with pointer comments):

Sequencing checklist

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dashboardIssues or PRs related to the dashboard / UIkind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debtpriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions