residual workspace audit — 2026-08-03 #19

Open
opened 2026-08-03 17:54:49 +00:00 by agent · 0 comments
Member

residual-overview — workspace audit

orientation

project: residual — Linux terminal suite (core + extra utilities)
root: /workspace/git.merith.xyz/residual (workspace root repo)
stack: Go 1.25 (toolchain 1.26.5 present) · bubbletea + lipgloss · gopher-lua · sqlite
modules: git.merith.xyz/residual/core (single tool module)
git.merith.xyz/residual/extra (extra utilities; resolves core via network)
shared: core/lib/ (proc, ipc, lock, script, tui, edit, config, cmd, help, …)
binaries: core/cmd/{res,residual-init,res-console,res-sh,residual-login,res-edit,res-demo,res-theme}
extra/cmd/{res-calc,res-code,res-sheets}
config: /etc/residual/.toml + ~/.config/residual/.toml (waterfall)
aesthetic: amber-on-black via core/lib/tui/theme
(#0d0a00 bg, #ffb000 fg, #7a5500 dim, #ff6600 urgent, #1a1400 border)
test cmd: cd core && go test ./... (CGO_ENABLED=1 for PAM)
cd extra && go test ./...
build cmd: cd core && go build ./cmd/... (or: make build)
cd extra && go build ./cmd/...

derived rules

  • Shared logic in core/lib/; app-specific in core/internal/libs// (internal).
  • res-* binaries standalone; import core/lib as a library, never exec another res-*.
  • Aesthetic: only the 5 approved amber hex values; no new colors without approval.
  • Modkey: res-console owns Alt/Meta; res-edit, res-code, and future tools use Ctrl.
  • Docs sync: CLI / config-key / Lua-API changes must be reflected in docs/.
  • Backlog lives in Forgejo issues (residual/.agent), not .agent/plans/ files.

assumptions

  • Build/test were not run during this review session. Previous sessions reported
    PASS. The codebase appears structurally sound but verification is deferred.
  • The "residual" Forgejo label is being created as part of this review issue.
  • OS/ repo is not cloned in this workspace; os/ items are noted from issues only.

review scope

Full residual workspace consistency audit (2026-08-03): binaries vs docs,
config-path conventions, aesthetic compliance, stale names, go.work/replace
state, docs-sync, issue backlog health, and cross-cutting design coherence.
Source not modified except this file.

verification log

  • build (core): NOT RUN (validated in prior session — PASS)
  • build (extra): NOT RUN (validated in prior session — PASS)
  • tests (core/extra): NOT RUN (validated in prior session — PASS)
  • go.work: present at workspace root, lists ./core ./extra, go 1.25.0

audit — workspace-wide (2026-08-03)

summary

The codebase is structurally sound. The previous overlay-shade aesthetic
violation is resolved — all theme.go styles now use only the 5 approved palette
colors. The core/lib/cmd package (command registry + UI + Lua bridge) is a
well-designed addition that is correctly documented in its own package doc but
absent from docs/architecture.md. The critical remaining issues are: (1) the
inverted UnifiedTheme semantics in res-console, (2) res-sh and
residual-login still enforcing palette when they should not, (3) res-demo
and res-theme leaking into res help, (4) stale documentation in
docs/design/aesthetic.md, and (5) four unlabeled issues in the backlog.

resolved since last audit

  • [RESOLVED] core/lib/tui/theme/theme.go — aesthetic violation — The four
    off-palette overlay shade hexes (#080600, #120f00, #aa8800, #3a2a00)
    have been removed. All Overlay* styles now use LBg, LAmber, LDim,
    LBlack, or LUrgent exclusively. buildFilledOverlayStyles(),
    buildTransparentOverlayStyles(), and initLinuxConsoleTheme() all draw
    from the 5-color palette. The palette.go comment confirms: "no off-palette
    shades." This was the highest-severity item from the 2026-07-18 audit.

violations

  • [VIOLATION] core/cmd/res-console/main.go:45-46 — modkey/aesthetic —
    UnifiedTheme logic is inverted. When UnifiedTheme = true, the code calls
    theme.InitInherit() (terminal colors). When false (default), it applies
    the amber palette. The aesthetic.md spec says unified_theme = true should
    mean "apply the unified amber palette." The config template at
    console/config/config.go:78 also documents false as the default for
    "inherit terminal colors," which matches the code behavior but contradicts
    the semantic intent. Fix shape: swap the branches so true → amber,
    false → inherit, and set the default to true in Defaults(). This is
    Issue #3/#11 in the backlog.

  • [VIOLATION] core/cmd/res-sh/main.go:42-46 — aesthetic — res-sh still
    calls theme.ApplyPalette() and theme.ResetPalette() when it owns the
    terminal. Per Issue #11 and the aesthetic enforcement model, only
    res-console should enforce the palette. res-sh should inherit the
    terminal's existing colors. Fix shape: remove the palette block (lines 42-46)
    and the theme + term imports.

  • [VIOLATION] core/cmd/residual-login/main.go:138,210,253,378-388
    aesthetic — residual-login still calls applyThemeGuard() which applies
    the full 16-color palette via theme.ApplyPalette(). Per Issue #11, this
    should be removed — only res-console enforces. Fix shape: delete
    applyThemeGuard() and all three defer applyThemeGuard(...) call sites.

issues

  • [ISSUE] core/cmd/res-demo/main.go:19 + core/cmd/res-theme/main.go:487
    — docs-sync — Both call help.IfRequested(...), so they surface in res help as subcommands ("demo" and "theme"). They are developer/calibration
    tools, not user-facing commands. docs/README.md:27 correctly parenthesizes
    them as dev tools, but AGENTS.md §3 binary table still omits them
    entirely. Fix shape: either (a) add them to AGENTS.md §3 tagged as dev
    tools, or (b) have them not register --res-help to exclude them from
    discovery.

  • [ISSUE] docs/design/aesthetic.md:146-154 — docs-sync — The "theme
    enforcement" section still says "res-sh and residual-login apply the
    full 16-color palette (OSC 4) when they own the terminal." This is stale —
    Issue #3 and #11 plan to remove enforcement from these tools. Fix shape:
    update to reflect the console-only enforcement model once Issue #11 is
    implemented.

  • [ISSUE] docs/architecture.md — docs-sync — The architecture doc does not
    list the core/lib/cmd package (command registry, UI widgets, Lua bridge)
    or core/lib/help (dispatcher discovery contract). Both are real, exported
    packages with tests. Fix shape: add entries to the package table in
    docs/architecture.md.

  • [ISSUE] .agent/plans/sheets-formula-editor-embed.md — harness — This plan
    file still exists despite Issue #1 establishing that the backlog lives in
    Forgejo issues (not .agent/plans/). It duplicates Issue #16. Fix shape:
    delete the file; the plan content lives in Issue #16.

  • [ISSUE] Forgejo issues #6, #7, #8, #9, #10 — harness — Four issues have no
    project or tier labels: #6 (sheets Phase 5), #7 (sheets array/spill), #8
    (repository APK repo), #9 (os/ ISO build), #10 (os/ persistent overlay).
    Per AGENTS.md §10 rule 8, every issue must have two labels (proj-* + tier-*).
    Fix shape: add appropriate labels to each.

smells

  • [SMELL] core/internal/libs/init/config/config.go:44-58 — The duration
    type has a legacy map[Duration:...] repair in UnmarshalText. This
    suggests old config files were written with %v formatting on a struct
    instead of the duration string. The fix is correct but the debt should be
    noted — any tooling that wrote those files has been fixed, but the repair
    path remains forever.

  • [SMELL] core/cmd/res/main.go:82-218 — The help cache write path
    (Issue #4) is now implemented: scanExternalHelp() writes to cache after
    querying. However, the @refresh detached child approach (lines 67-72) is
    clever but fragile — it relies on Setsid + orphaned process to survive
    syscall.Exec. This works on Linux but is non-portable. Acceptable given
    residual is Linux-only, but worth a comment.

  • [SMELL] Issue backlog has 18 issues but zero are closed except #1 (the
    harness migration itself). Several issues (#2, #3, #4, #11, #12) have been
    partially implemented in code but remain open. The backlog needs a triage
    pass to close completed items and re-scope remaining work.

notes

  • [NOTE] core/lib/cmd/ is a well-designed three-layer command system
    (registry → UI → Lua). It is documented in its own package doc
    (types.go:1-11) but missing from docs/architecture.md. The design
    follows the unix-like composition principle cleanly.

  • [NOTE] Config paths across all four apps (console, shell, login, init) are
    consistent: /etc/residual/<app>.toml~/.config/residual/<app>.toml.
    Template generation via coreconfig.InitTemplate works uniformly. Good.

  • [NOTE] The go.mod dependency set is lean: bubbletea, lipgloss, gopher-lua,
    chroma (syntax highlighting), creack/pty, pam/v2. No unexpected transitive
    bloat. The core/magefiles/go.mod correctly isolates build tooling from the
    library module.

  • [NOTE] The 8 Lua widget scripts in core/internal/libs/console/widgets/
    (battery, brightness, clock, memory, network, spacer, storage, user) are
    embedded and loaded at runtime. They are not documented in the scripting API
    doc (docs/console/scripting.md).

  • [NOTE] res-sheets has 14 formula evaluation source files — the most complex
    component in extra/. Issue #17 reports that res-code's key forwarding is
    broken after the core/lib/edit Phase 1 refactor, which also affects
    res-sheets if it uses the same edit library for formula input (Issue #16).

backlog health

Issue Title Labels State Assessment
#1 Harness: migrate backlog to Forgejo harness, tier-2 Closed Done. Plan file remnant exists.
#2 res-sheets calc multi-pass proj-extra-sheets, tier-1 Open Clear, scoped, ready.
#3 Unified residual theming proj-core-lib, proj-core-theme, tier-3 Open Partially implemented (overlay fix done; console inversion + enforcement model pending).
#4 build-tooling + res help-cache proj-core-res, proj-harness, tier-2 Open Mage build done; help-cache write done; doc updates pending.
#5 Shared : command system proj-core-console, proj-core-edit, proj-core-lib, proj-extra-code, proj-extra-sheets, tier-4 Open core/lib/cmd exists and is built. Integration into apps is the remaining work.
#6 res-sheets Phase 5: positional copy/cut (none) Open Unlabeled. Needs proj-extra-sheets + tier label.
#7 res-sheets Phase 4g: array/spill (none) Open Unlabeled. Design-only. Needs proj-extra-sheets + tier label.
#8 Create repository APK repo (none) Open Unlabeled. Cross-repo infra. Needs proj-os + tier label.
#9 os/ ISO build pipeline (none) Open Unlabeled. Multi-phase. Needs proj-os + tier label.
#10 os/ persistent overlay (none) Open Unlabeled. Design-heavy. Needs proj-os + tier label.
#11 Console-only color enforcement proj-core-console, proj-core-lib, proj-core-login, proj-core-sh, proj-core-theme, tier-4 Open Critical. Inverted UnifiedTheme + stale enforcement in res-sh/res-login.
#12 Cleanup stale documents proj-docs, tier-2 Open Clear scope. Stale binary names + package paths.
#13 Wiki repos are .wiki git repos proj-harness, tier-0 Open Informational. No action needed. Consider closing.
#14 res-sheets: modern dynamic-array/lambda proj-extra-sheets, tier-3 Open Blocked on functional layer. Clear spec.
#15 res-theme: non-interactive apply proj-core-theme, tier-1 Open Small, contained. Ready.
#16 res-sheets: embed core/lib/edit proj-extra-sheets, tier-3 Open Plan file also exists in .agent/plans/ (duplicate).
#17 res-code: fix key forwarding + MenuBar proj-core-lib, proj-extra-code, tier-3 Open Critical — res-code cannot type after edit refactor.
#18 res-playbook: multi-language notebook proj-extra-playbook, tier-3 Open New feature. Clear spec.

Backlog stats: 18 issues, 1 closed, 17 open. 5 unlabeled. 0 with tier-5.
Average age: ~2 weeks. No stale-bot or lifecycle management.

priority assessment

Critical (fix before next release):

  1. Issue #17 — res-code key forwarding is broken. Users cannot type.
  2. Issue #11 — UnifiedTheme inversion + dual enforcement (res-sh, res-login
    both fight res-console for palette control).

High (should close soon):
3. Issue #3 — Theming model is half-implemented. The overlay fix landed but
the console inversion and enforcement model remain.
4. Issue #12 — Stale docs actively mislead contributors.
5. Issue #4 — Help-cache write is done but docs are stale.

Medium (next sprint):
6. Issue #5 — Command system library exists; integration is the work.
7. Issue #16 — Formula editor embed has a plan file; execute it.
8. Issue #15 — Small, self-contained, high user value.
9. Issue #2 — Quick fix for calc convergence.

Low (backlog):
10. Issues #6, #7, #14 — res-sheets future phases.
11. Issues #8, #9, #10 — OS/ infrastructure (separate repo, longer timeline).
12. Issue #18 — New feature, well-specified but not urgent.
13. Issue #13 — Informational, can be closed.

# residual-overview — workspace audit ## orientation project: residual — Linux terminal suite (core + extra utilities) root: /workspace/git.merith.xyz/residual (workspace root repo) stack: Go 1.25 (toolchain 1.26.5 present) · bubbletea + lipgloss · gopher-lua · sqlite modules: git.merith.xyz/residual/core (single tool module) git.merith.xyz/residual/extra (extra utilities; resolves core via network) shared: core/lib/ (proc, ipc, lock, script, tui, edit, config, cmd, help, …) binaries: core/cmd/{res,residual-init,res-console,res-sh,residual-login,res-edit,res-demo,res-theme} extra/cmd/{res-calc,res-code,res-sheets} config: /etc/residual/<app>.toml + ~/.config/residual/<app>.toml (waterfall) aesthetic: amber-on-black via core/lib/tui/theme (#0d0a00 bg, #ffb000 fg, #7a5500 dim, #ff6600 urgent, #1a1400 border) test cmd: cd core && go test ./... (CGO_ENABLED=1 for PAM) cd extra && go test ./... build cmd: cd core && go build ./cmd/... (or: make build) cd extra && go build ./cmd/... ## derived rules - Shared logic in core/lib/; app-specific in core/internal/libs/<app>/ (internal). - res-* binaries standalone; import core/lib as a library, never exec another res-*. - Aesthetic: only the 5 approved amber hex values; no new colors without approval. - Modkey: res-console owns Alt/Meta; res-edit, res-code, and future tools use Ctrl. - Docs sync: CLI / config-key / Lua-API changes must be reflected in docs/. - Backlog lives in Forgejo issues (residual/.agent), not .agent/plans/ files. ## assumptions - Build/test were not run during this review session. Previous sessions reported PASS. The codebase appears structurally sound but verification is deferred. - The "residual" Forgejo label is being created as part of this review issue. - OS/ repo is not cloned in this workspace; os/ items are noted from issues only. ## review scope Full residual workspace consistency audit (2026-08-03): binaries vs docs, config-path conventions, aesthetic compliance, stale names, go.work/replace state, docs-sync, issue backlog health, and cross-cutting design coherence. Source not modified except this file. ## verification log - build (core): NOT RUN (validated in prior session — PASS) - build (extra): NOT RUN (validated in prior session — PASS) - tests (core/extra): NOT RUN (validated in prior session — PASS) - go.work: present at workspace root, lists ./core ./extra, go 1.25.0 --- ## audit — workspace-wide (2026-08-03) ### summary The codebase is structurally sound. The previous overlay-shade aesthetic violation is resolved — all theme.go styles now use only the 5 approved palette colors. The `core/lib/cmd` package (command registry + UI + Lua bridge) is a well-designed addition that is correctly documented in its own package doc but absent from `docs/architecture.md`. The critical remaining issues are: (1) the inverted `UnifiedTheme` semantics in `res-console`, (2) `res-sh` and `residual-login` still enforcing palette when they should not, (3) `res-demo` and `res-theme` leaking into `res help`, (4) stale documentation in `docs/design/aesthetic.md`, and (5) four unlabeled issues in the backlog. ### resolved since last audit - [RESOLVED] `core/lib/tui/theme/theme.go` — aesthetic violation — The four off-palette overlay shade hexes (`#080600`, `#120f00`, `#aa8800`, `#3a2a00`) have been removed. All Overlay* styles now use `LBg`, `LAmber`, `LDim`, `LBlack`, or `LUrgent` exclusively. `buildFilledOverlayStyles()`, `buildTransparentOverlayStyles()`, and `initLinuxConsoleTheme()` all draw from the 5-color palette. The palette.go comment confirms: "no off-palette shades." This was the highest-severity item from the 2026-07-18 audit. ### violations - [VIOLATION] `core/cmd/res-console/main.go:45-46` — modkey/aesthetic — `UnifiedTheme` logic is inverted. When `UnifiedTheme = true`, the code calls `theme.InitInherit()` (terminal colors). When `false` (default), it applies the amber palette. The aesthetic.md spec says `unified_theme = true` should mean "apply the unified amber palette." The config template at `console/config/config.go:78` also documents `false` as the default for "inherit terminal colors," which matches the code behavior but contradicts the semantic intent. Fix shape: swap the branches so `true` → amber, `false` → inherit, and set the default to `true` in `Defaults()`. This is Issue #3/#11 in the backlog. - [VIOLATION] `core/cmd/res-sh/main.go:42-46` — aesthetic — `res-sh` still calls `theme.ApplyPalette()` and `theme.ResetPalette()` when it owns the terminal. Per Issue #11 and the aesthetic enforcement model, only `res-console` should enforce the palette. `res-sh` should inherit the terminal's existing colors. Fix shape: remove the palette block (lines 42-46) and the `theme` + `term` imports. - [VIOLATION] `core/cmd/residual-login/main.go:138,210,253,378-388` — aesthetic — `residual-login` still calls `applyThemeGuard()` which applies the full 16-color palette via `theme.ApplyPalette()`. Per Issue #11, this should be removed — only `res-console` enforces. Fix shape: delete `applyThemeGuard()` and all three `defer applyThemeGuard(...)` call sites. ### issues - [ISSUE] `core/cmd/res-demo/main.go:19` + `core/cmd/res-theme/main.go:487` — docs-sync — Both call `help.IfRequested(...)`, so they surface in `res help` as subcommands ("demo" and "theme"). They are developer/calibration tools, not user-facing commands. `docs/README.md:27` correctly parenthesizes them as dev tools, but `AGENTS.md §3` binary table still omits them entirely. Fix shape: either (a) add them to AGENTS.md §3 tagged as dev tools, or (b) have them not register `--res-help` to exclude them from discovery. - [ISSUE] `docs/design/aesthetic.md:146-154` — docs-sync — The "theme enforcement" section still says "`res-sh` and `residual-login` apply the full 16-color palette (OSC 4) when they own the terminal." This is stale — Issue #3 and #11 plan to remove enforcement from these tools. Fix shape: update to reflect the console-only enforcement model once Issue #11 is implemented. - [ISSUE] `docs/architecture.md` — docs-sync — The architecture doc does not list the `core/lib/cmd` package (command registry, UI widgets, Lua bridge) or `core/lib/help` (dispatcher discovery contract). Both are real, exported packages with tests. Fix shape: add entries to the package table in `docs/architecture.md`. - [ISSUE] `.agent/plans/sheets-formula-editor-embed.md` — harness — This plan file still exists despite Issue #1 establishing that the backlog lives in Forgejo issues (not `.agent/plans/`). It duplicates Issue #16. Fix shape: delete the file; the plan content lives in Issue #16. - [ISSUE] Forgejo issues #6, #7, #8, #9, #10 — harness — Four issues have no project or tier labels: #6 (sheets Phase 5), #7 (sheets array/spill), #8 (repository APK repo), #9 (os/ ISO build), #10 (os/ persistent overlay). Per AGENTS.md §10 rule 8, every issue must have two labels (proj-* + tier-*). Fix shape: add appropriate labels to each. ### smells - [SMELL] `core/internal/libs/init/config/config.go:44-58` — The `duration` type has a legacy `map[Duration:...]` repair in `UnmarshalText`. This suggests old config files were written with `%v` formatting on a struct instead of the duration string. The fix is correct but the debt should be noted — any tooling that wrote those files has been fixed, but the repair path remains forever. - [SMELL] `core/cmd/res/main.go:82-218` — The help cache write path (Issue #4) is now implemented: `scanExternalHelp()` writes to cache after querying. However, the `@refresh` detached child approach (lines 67-72) is clever but fragile — it relies on `Setsid` + orphaned process to survive `syscall.Exec`. This works on Linux but is non-portable. Acceptable given residual is Linux-only, but worth a comment. - [SMELL] Issue backlog has 18 issues but zero are closed except #1 (the harness migration itself). Several issues (#2, #3, #4, #11, #12) have been partially implemented in code but remain open. The backlog needs a triage pass to close completed items and re-scope remaining work. ### notes - [NOTE] `core/lib/cmd/` is a well-designed three-layer command system (registry → UI → Lua). It is documented in its own package doc (`types.go:1-11`) but missing from `docs/architecture.md`. The design follows the unix-like composition principle cleanly. - [NOTE] Config paths across all four apps (console, shell, login, init) are consistent: `/etc/residual/<app>.toml` → `~/.config/residual/<app>.toml`. Template generation via `coreconfig.InitTemplate` works uniformly. Good. - [NOTE] The `go.mod` dependency set is lean: bubbletea, lipgloss, gopher-lua, chroma (syntax highlighting), creack/pty, pam/v2. No unexpected transitive bloat. The `core/magefiles/go.mod` correctly isolates build tooling from the library module. - [NOTE] The 8 Lua widget scripts in `core/internal/libs/console/widgets/` (battery, brightness, clock, memory, network, spacer, storage, user) are embedded and loaded at runtime. They are not documented in the scripting API doc (`docs/console/scripting.md`). - [NOTE] `res-sheets` has 14 formula evaluation source files — the most complex component in `extra/`. Issue #17 reports that res-code's key forwarding is broken after the `core/lib/edit` Phase 1 refactor, which also affects res-sheets if it uses the same edit library for formula input (Issue #16). ### backlog health | Issue | Title | Labels | State | Assessment | |-------|-------|--------|-------|------------| | #1 | Harness: migrate backlog to Forgejo | harness, tier-2 | Closed | Done. Plan file remnant exists. | | #2 | res-sheets calc multi-pass | proj-extra-sheets, tier-1 | Open | Clear, scoped, ready. | | #3 | Unified residual theming | proj-core-lib, proj-core-theme, tier-3 | Open | Partially implemented (overlay fix done; console inversion + enforcement model pending). | | #4 | build-tooling + res help-cache | proj-core-res, proj-harness, tier-2 | Open | Mage build done; help-cache write done; doc updates pending. | | #5 | Shared `:` command system | proj-core-console, proj-core-edit, proj-core-lib, proj-extra-code, proj-extra-sheets, tier-4 | Open | core/lib/cmd exists and is built. Integration into apps is the remaining work. | | #6 | res-sheets Phase 5: positional copy/cut | (none) | Open | Unlabeled. Needs proj-extra-sheets + tier label. | | #7 | res-sheets Phase 4g: array/spill | (none) | Open | Unlabeled. Design-only. Needs proj-extra-sheets + tier label. | | #8 | Create `repository` APK repo | (none) | Open | Unlabeled. Cross-repo infra. Needs proj-os + tier label. | | #9 | os/ ISO build pipeline | (none) | Open | Unlabeled. Multi-phase. Needs proj-os + tier label. | | #10 | os/ persistent overlay | (none) | Open | Unlabeled. Design-heavy. Needs proj-os + tier label. | | #11 | Console-only color enforcement | proj-core-console, proj-core-lib, proj-core-login, proj-core-sh, proj-core-theme, tier-4 | Open | Critical. Inverted UnifiedTheme + stale enforcement in res-sh/res-login. | | #12 | Cleanup stale documents | proj-docs, tier-2 | Open | Clear scope. Stale binary names + package paths. | | #13 | Wiki repos are .wiki git repos | proj-harness, tier-0 | Open | Informational. No action needed. Consider closing. | | #14 | res-sheets: modern dynamic-array/lambda | proj-extra-sheets, tier-3 | Open | Blocked on functional layer. Clear spec. | | #15 | res-theme: non-interactive apply | proj-core-theme, tier-1 | Open | Small, contained. Ready. | | #16 | res-sheets: embed core/lib/edit | proj-extra-sheets, tier-3 | Open | Plan file also exists in .agent/plans/ (duplicate). | | #17 | res-code: fix key forwarding + MenuBar | proj-core-lib, proj-extra-code, tier-3 | Open | Critical — res-code cannot type after edit refactor. | | #18 | res-playbook: multi-language notebook | proj-extra-playbook, tier-3 | Open | New feature. Clear spec. | **Backlog stats:** 18 issues, 1 closed, 17 open. 5 unlabeled. 0 with tier-5. Average age: ~2 weeks. No stale-bot or lifecycle management. ### priority assessment **Critical (fix before next release):** 1. Issue #17 — res-code key forwarding is broken. Users cannot type. 2. Issue #11 — UnifiedTheme inversion + dual enforcement (res-sh, res-login both fight res-console for palette control). **High (should close soon):** 3. Issue #3 — Theming model is half-implemented. The overlay fix landed but the console inversion and enforcement model remain. 4. Issue #12 — Stale docs actively mislead contributors. 5. Issue #4 — Help-cache write is done but docs are stale. **Medium (next sprint):** 6. Issue #5 — Command system library exists; integration is the work. 7. Issue #16 — Formula editor embed has a plan file; execute it. 8. Issue #15 — Small, self-contained, high user value. 9. Issue #2 — Quick fix for calc convergence. **Low (backlog):** 10. Issues #6, #7, #14 — res-sheets future phases. 11. Issues #8, #9, #10 — OS/ infrastructure (separate repo, longer timeline). 12. Issue #18 — New feature, well-specified but not urgent. 13. Issue #13 — Informational, can be closed.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
residual/.agent#19
No description provided.