docs(agent): promote V2-capable PROPOSED items to NEXT #51–54
All checks were successful
Check / eval (push) Successful in 2m57s
All checks were successful
Check / eval (push) Successful in 2m57s
Bernardo-directed triage (VM now free post-#46): #51 Waybar/menu behaviour bugs, #52 theme fidelity Broken/high-ROI fixes, #53 missing previews + neon-glass whole-swap, #54 installer safety + polish. Promoted pitches removed from PROPOSED (breadcrumbs left); non-selected V2 items stay in PROPOSED. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
137
agent/BACKLOG.md
137
agent/BACKLOG.md
@@ -102,6 +102,55 @@ Next slice: on hardware, run `hyprctl clients` while each is open, read
|
||||
the real `class`, then append rules. Also revisit whether blueman/s-c-p
|
||||
actually float once seen (regex tolerance for the `.…-wrapped` form).
|
||||
|
||||
### 51. Waybar/menu behaviour bugs (promoted 2026-07-09, V2)
|
||||
- **Waybar doctor indicator never shows an icon:** `modules/home/waybar.nix`
|
||||
`nomarchy-doctor-status` prints `"text":""` on failure — empty-text custom
|
||||
modules self-hide, so the tripwire never appears. Fix: non-empty glyph
|
||||
(e.g. ``) + `class: bad` when unhealthy; no output/exit 0 when healthy.
|
||||
- **Control Center appearance toggles are silent no-ops:**
|
||||
`nomarchy-control-center.sh` `set_state` is always `--no-switch`, so
|
||||
blur/gaps only land on a later rebuild with no warning (unlike
|
||||
Updates/Bluetooth). Fix: run a switch for appearance keys, or warn clearly.
|
||||
- **summer-day workspace scroll misaligned:** `themes/summer-day/waybar.jsonc`
|
||||
uses `workspace e+1/e-1` (next empty) vs every other bar's `r±1` (relative)
|
||||
— align to `r±1`.
|
||||
V2: theme-shot session render (and/or a `checks.doctor` extension for the
|
||||
indicator).
|
||||
|
||||
### 52. Theme fidelity bugs — Broken/high-ROI (promoted 2026-07-09, V0+V2)
|
||||
Execute the six clear per-theme defects — **exact hexes in the
|
||||
"#### Broken / high-ROI fixes" block under _Per-theme design audit_ below**:
|
||||
rose-pine btop (Main-on-Dawn → invisible hi_fg; rewrite to Dawn); everforest
|
||||
+ summer-night btop `inactive_fg==main_bg` (invisible); vantablack role
|
||||
inversion (white-on-white selection/muted); osaka-jade warn≈good +
|
||||
text/subtext inverted; catppuccin-latte ANSI black/white axis inverted +
|
||||
mantle sludge; catppuccin (Mocha) btop is Frappé-on-Mocha. Verify:
|
||||
`check-theme-contrast` (V0) + a theme-shot render of each (V2).
|
||||
|
||||
### 53. Missing theme previews + neon-glass whole-swap (promoted 2026-07-09, V2)
|
||||
- Capture `executive-slate` + `neon-glass` `preview.png` headlessly via the
|
||||
theme-shot recipe proven on boreal (480×270); optional hand `btop.theme`.
|
||||
- **First, for neon-glass:** its `waybar.css` uses `@text/@base/…` with no
|
||||
`@define-color` block (and no `waybar.jsonc`), so applying it yields broken
|
||||
bar colours. Decide: **finish** (self-contained colours + jsonc + preview)
|
||||
or **quarantine** (remove `waybar.css` → falls back to the generated bar),
|
||||
then capture the preview. V2 render.
|
||||
|
||||
### 54. Installer safety + polish (promoted 2026-07-09, V0+V2)
|
||||
- **Offline fail-closed:** when the offline path is active and
|
||||
`compose-lock.py` fails, the script currently *warns* and runs `nix flake
|
||||
lock` (needs network) → a promised offline install can hang. Fail the
|
||||
install with a clear message instead. (V2 offline install.)
|
||||
- **Destructive-data warning:** at disk selection/review, if `lsblk -f`/`blkid`
|
||||
shows Windows/BitLocker/NTFS/existing-LUKS on the **chosen** disk, add one
|
||||
explicit "data will be destroyed" line. Single whole-disk only — no
|
||||
dual-boot path. (V0 + V2.)
|
||||
- **Password min length = 8:** the account password only requires non-empty
|
||||
while LUKS needs ≥8 — align to one 8-char rule (not a strength meter). (V0.)
|
||||
- **HM pre-activate recovery hint:** on pre-activate failure, drop a flag
|
||||
file / MOTD snippet on the target so first login still shows the fix
|
||||
(observed warning this session; the install still booted themed). (V2.)
|
||||
|
||||
## LATER
|
||||
|
||||
- **Wallpapers artifact split** (ROADMAP § Faster switches — decided,
|
||||
@@ -168,41 +217,8 @@ neon-glass quarantine.
|
||||
|
||||
### Bugs / broken behavior (codebase exam 2026-07-09)
|
||||
|
||||
- **Waybar doctor indicator never shows an icon**
|
||||
`modules/home/waybar.nix` `nomarchy-doctor-status` prints
|
||||
`"text":""` on failure. Waybar custom modules with empty `text`
|
||||
self-hide, so the tripwire never becomes visible (tooltip-only if
|
||||
it rendered at all). Intent in comments is opposite: appear only
|
||||
when the sheet has a ✖. Fix: non-empty glyph (e.g. `` / `!`) +
|
||||
`class: bad` when unhealthy; exit 0 / no output when healthy.
|
||||
Cost: one-line script fix; V2 with existing `checks.doctor` if
|
||||
extended, else V1.
|
||||
|
||||
- **neon-glass theme ships a broken Waybar whole-swap**
|
||||
`themes/neon-glass/waybar.css` uses `@text` / `@base` / `@accent` /
|
||||
etc. with **no** `@define-color` block. Whole-swap CSS replaces the
|
||||
entire stylesheet with no palette prepend (`waybar.nix`), so
|
||||
applying neon-glass yields undefined / broken bar colors (same
|
||||
class as the purged stub CSS, JOURNAL #45). Also missing
|
||||
`waybar.jsonc`, `preview.png`, `btop.theme`; CSS covers only a
|
||||
subset of modules. Fix: either finish (self-contained colors +
|
||||
layout parity + preview) **or** remove `waybar.css` until ready so
|
||||
apply falls back to the generated bar. Cost: medium polish or
|
||||
small quarantine delete; V2/V3 visual.
|
||||
|
||||
- **Control Center appearance toggles are no-ops without a rebuild**
|
||||
`nomarchy-control-center.sh` `set_state` always uses `--no-switch`.
|
||||
Blur / gaps (and similar appearance keys) only take effect after a
|
||||
home switch, but the UI never runs one and never warns (unlike
|
||||
Updates/Bluetooth which print "requires rebuild"). User flips look
|
||||
identical until a later rebuild. Fix: run switch for appearance
|
||||
keys, or refuse / warn clearly. Cost: small UX fix in one script.
|
||||
|
||||
- **summer-day workspace scroll dispatches differently from every other bar**
|
||||
`themes/summer-day/waybar.jsonc` uses `workspace e+1` / `e-1` (next
|
||||
**empty** workspace); summer-night, executive-slate, boreal use
|
||||
`r+1` / `r-1` (relative). Likely leftover; behavior differs under
|
||||
scroll. Fix: align to `r±1`. Cost: two lines.
|
||||
_(Waybar doctor indicator, Control Center appearance no-ops, summer-day
|
||||
scroll → #51; neon-glass broken waybar → #53.)_
|
||||
|
||||
- **Battery charge-limit / powerprofile only match `BAT*` sysfs names**
|
||||
`power.nix` oneshot and menu/waybar globs use
|
||||
@@ -236,16 +252,13 @@ nomarchy-menu usage string, secondary docs, always-on pieces → #47.)_
|
||||
|
||||
### Theme polish / completeness (codebase exam 2026-07-09)
|
||||
|
||||
- **Missing theme picker previews + hand btop for identity themes**
|
||||
`executive-slate` and `neon-glass` lack `preview.png` (picker
|
||||
plain-name rows). All three still ship generated btop only (no hand
|
||||
`btop.theme`). `boreal` now has a `preview.png` (2026-07-09) but it's a
|
||||
**headless theme-shot capture** — a clean bare desktop+bar, not the
|
||||
floating-terminal (fastfetch+btop) composition the other 21 use; a
|
||||
real-hardware recapture to match the grid would be nicer (VM is the
|
||||
documented fallback). CSS/jsonc for boreal/executive-slate are solid.
|
||||
Capture the other two after neon-glass is fixed/quarantined. Cost:
|
||||
asset capture + optional hand btop; V3 visual.
|
||||
- **boreal preview recapture nicety** (executive-slate + neon-glass previews
|
||||
→ **#53**). `boreal` now has a `preview.png` (2026-07-09) but it's a headless
|
||||
theme-shot capture — a clean bare desktop+bar, not the floating-terminal
|
||||
(fastfetch+btop) composition the other 21 use; a real-hardware recapture to
|
||||
match the grid would be nicer (VM is the documented fallback). Optional hand
|
||||
`btop.theme` for the three identity themes still open. Cost: asset capture;
|
||||
V3 visual.
|
||||
|
||||
- **Generated Waybar missing identity-bar affordances**
|
||||
Whole-swap bars ship `custom/powermenu` and a left logo → main menu;
|
||||
@@ -277,6 +290,9 @@ flagged separately from fidelity bugs.*
|
||||
|
||||
#### Broken / high-ROI fixes
|
||||
|
||||
_→ promoted as NEXT **#52** (2026-07-09); the six bullets below are its
|
||||
spec (exact hexes). The rest of the per-theme audit stays PROPOSED._
|
||||
|
||||
- **rose-pine btop is Main-on-Dawn (near-invisible hi_fg)**
|
||||
JSON is **Rosé Pine Dawn** (`mode: light`, base `#faf4ed`, text
|
||||
`#575279`) but `themes/rose-pine/btop.theme` mixes Dawn
|
||||
@@ -559,25 +575,11 @@ installer questionnaire.*
|
||||
(workflow test run 2026-07-09): pass bare `"0"`; disko accepts
|
||||
`"0"`/`"0G"`; unattended needs passphrase or `NOMARCHY_NO_LUKS=1`.
|
||||
|
||||
- **Offline mode must not silently fall back to network lock**
|
||||
When the network probe fails (or install is offline),
|
||||
`compose-lock.py` failure currently **warns** and runs `nix flake
|
||||
lock` (needs network). That can turn a promised offline install into a
|
||||
hung/partial one. **Fix:** if offline path is active and compose-lock
|
||||
fails → **fail the install** with a clear message (dirty ISO / missing
|
||||
narHash). Network `flake lock` only when the probe said online.
|
||||
Cost: small branch in `nomarchy-install.sh`; V2 offline install test.
|
||||
_(Offline fail-closed → #54.)_
|
||||
|
||||
#### Safety / clarity (one line each — no new install menus)
|
||||
|
||||
- **Review panel: warn when target already has Windows / BitLocker /
|
||||
NTFS / crypto_LUKS**
|
||||
Typed disk-name confirm is solid, but multi-OS machines still risk
|
||||
“wrong disk.” At selection or review, if `lsblk -f`/`blkid` shows
|
||||
BitLocker, NTFS, Microsoft, or existing LUKS on the **chosen** disk,
|
||||
add one explicit line: data will be destroyed. Still single-disk,
|
||||
whole-disk only — **no** dual-boot path. Cost: few lines of probe +
|
||||
review string; V0 + V2 optional.
|
||||
_(Review-panel destructive-data warning → #54.)_
|
||||
|
||||
- **Review panel: offline vs online source line**
|
||||
Review always implies “no network needed” even when the online path
|
||||
@@ -585,10 +587,7 @@ installer questionnaire.*
|
||||
line conditional on the same `cache.nixos.org` probe so expectations
|
||||
match. Cost: tiny; V0.
|
||||
|
||||
- **User password minimum length = LUKS (8 chars)**
|
||||
LUKS requires ≥8; account password only requires non-empty. Align to
|
||||
8 for one consistent rule — not a strength meter. Cost: one check;
|
||||
V0.
|
||||
_(User password minimum length = 8 → #54.)_
|
||||
|
||||
#### Live ISO discoverability (one durable cue)
|
||||
|
||||
@@ -604,13 +603,7 @@ installer questionnaire.*
|
||||
|
||||
#### Generated config / post-install polish
|
||||
|
||||
- **HM pre-activate failure → one durable recovery hint on target**
|
||||
Installer already prints the `home-manager switch` one-liner and logs
|
||||
to `/var/log/nomarchy-hm-preactivate.log`. If pre-activate fails, also
|
||||
drop a small flag file or MOTD snippet on the target so first login
|
||||
still shows the fix after the live session is gone. Avoid permanent
|
||||
first-boot checklists (fwupd/fprintd belong in menu/doctor). Cost:
|
||||
small install-script write; V2.
|
||||
_(HM pre-activate failure → durable recovery hint → #54.)_
|
||||
|
||||
- **MIGRATION.md: installer snapshot layout vs `@home-snapshots`**
|
||||
Installer creates disko `@snapshots` → `/.snapshots` and a first-boot
|
||||
|
||||
Reference in New Issue
Block a user