[nu-demo] META — Sequential close-out plan for the remaining 36 [nu-demo] bugs (post-2026-04-26 sweep) #193

Closed
opened 2026-04-27 03:00:57 +00:00 by mik-tf · 18 comments
Owner

Context

After the 2026-04-26 verification sweep + TF Grid degate work, 9 [nu-demo] issues are now closed:

  • home#126, home#127, home#135, home#138, home#141, home#169, home#170, home#179, home#192.

36 [nu-demo] issues remain open, falling into 8 categories. nu-server universality is now verified solid — no hardcoded TF-Grid-only paths remain in critical install/runtime code (see home#192 close comment for the matrix).

This meta tracks the plan to close out the rest sequentially, in priority order. As each child issue is closed, check it off in this issue's checklist below.

Working agreement

  • Sequential execution: complete Group A before Group B, etc. — no fan-out.
  • Per-change OK required on non-hero_demo repos (existing policy: hero_demo direct-push allowed; other repos require explicit go-ahead per change).
  • Each child issue closed gets a close comment citing the commit + verification (file:line + smoke-test where applicable).
  • This meta-issue is updated (checkboxes ticked) after each close, with a one-line status comment.
  • nu-server universality must stay intact — no new hardcoded TF-Grid-only paths. New defaults derive from HERO_ROUTER_ADDRESS env var (auto-set by install.sh only when 10.1.2.x is detected).

Group A — Quick code wins (start here)

One-liner-ish fixes, clear scope, high signal-to-effort:

  • home#142 — install.sh nushell silent fail (|| warn|| die at L799 since nushell is required)
  • home#136 — hero_agent OPENROUTER_API_KEYS singular fallback (config.rs:84 — second arg should be OPENROUTER_API_KEY, not duplicate plural)
  • home#131 — hero_os Makefile ~/.cargo/bin/dx hardcode (use DX ?= env-overridable)
  • home#133 — service_livekit redis preflight (pkg_ensure redis-server + redis-tools in install step)

Group B — Verify-then-close candidates

May already be fixed — read issue body + grep current state. Close if fix is in place; flag-as-partial otherwise:

  • home#128 — installers.nu missing apt dev packages (compare list against current install_base)
  • home#132 — service_codescalers socket naming mismatch
  • home#168 — hero_embedder dependency ordering (current start_timeout_ms: 180000 may suffice)
  • [⚠] home#139 — hero_foundry seed_media path — triaged, needs design (option (b) per-context bootstrap is non-trivial; deferred from Group B to design-work bucket)

Group C — UI/visual (deploy + Hero Browser MCP required)

Cannot verify by code grep alone. Stack for a single visual-pass deploy session:

  • home#146 — Photos <img> rendering — closed as duplicate of home#156 (leading-slash storage_path)
  • home#147 — hero_collab dark theme should follow hero_os theme tokens
  • home#154 — Purple highlight remains after closing apps
  • home#155 — Right-click on a topic in hero_voice — menu items cut off
  • home#184 — hero_books library cards — light-mode text contrast

Group D — AI/agent grounding (design work)

Larger surface; may need design before code:

  • home#149 — hero_agent prompt.rs tool-use directive for hero_* questions needs strengthening + reliable rebuild
  • home#150 — hero_agent tool_choice="required" for grounded modes in llm_client.rs
  • home#152 — hero_agent triage classifier routes 'What is Hero OS?' to Knowledge path (no tools offered) — grounding never happens
  • home#153 — hero_agent tools payload blocks every LLM: 165 tools > 128 limit, dots in tool names violate regex, duplicate agent_run

Group E — OSIS / contexts (likely linked — shared root cause suspected)

  • home#125 — hero_router clobbers client X-Hero-Context header with state.context
  • home#129 — service_osis.nu does not populate contexts registry or pass HERO_CONTEXTS / HERO_S...
  • home#130 — hero_osis_ai domain not registered (registration code present at hero_osis.rs:240-247 but ai feature is intentionally excluded from all-domains in hero_osis_server/Cargo.toml:30-46design call: enable or close-as-by-design with the feature still under dev?)
  • home#151 — Switching contexts doesn't work (per memory: rebuild deployed v0.9.10-dev with latest hero_rpc/osis/os/archipelagos was the path)
  • home#175 — hero_osis_ui stuck at 'Loading service spec...' — no /api/services route, per-domain discovery never completes

Group F — Books-specific

  • home#157 — Books island builds URL as {base}/ + /rpc → double-slash 404 in All Books / library listing
  • home#158 — hero_books re-runs LLM Q&A extraction despite pre-shipped .ai/<page>.toml cache (content_hash mismatch)
  • home#176 — hero_books_ui navbar disappears when clicking into a library — emits /hero_books_ui/library/X (underscore) instead of /hero_books/ui/library/X (slash)

Group G — Misc service / infra

  • home#134 — packages.nu service_browser/books/matrixchat still commented out (voice + agent already uncommented)
  • home#137 — hero_aibroker modelsconfig.yml ships Groq-only with no fallback chain
  • home#140 — hero_os WASM shell is 211 MB debug — needs release + wasm-opt + brotli/gzip sidecars
  • home#143 — CRUD delete across hero_osis SDK — server returns bool, SDK calls rpc_call::<String> (confirmed on contact.delete)
  • home#144 — Roadmap: seed Office archipelago with per-library generated PDFs/docs
  • home#145 — hero_embedder_server panics with blocking reqwest inside tokio async context; namespace.create rejects Q1 in daemon mode (spawn_blocking wrapper present, but namespace.create Q1 may persist)
  • home#156 — Media seed_data writes storage_path with leading slash — '/Photos/foo.jpg' breaks photo/video/song URLs
  • home#171 — Dock islands broken on web feature build — OSIS/Services have only native variants, Services is dead wood, Videos missing, Books needs iframe default

Group H — Meta-trackers (stay open by design)

Not bugs — deliverables/snapshots. Excluded from the close-out count, listed for completeness:

  • home#148 — Documentation index: heronu deployment flow, AI grounding chain, per-service gaps
  • home#159 — CANONICAL — Intelligence pipeline documented end-to-end
  • home#160 — STATE OF HERONU as of 2026-04-24 — what works, what's still broken
  • THIS issue (the close-out plan)

Closed during the 2026-04-26 sweep (for reference)

# Title Repo
home#126 hero_livekit_ui middleware order hero_livekit
home#127 hero_slides path dep on hero_lib hero_slides
home#135 service_agent.nu missing hero_skills
home#138 hero_aibroker --reset clobber hero_skills
home#141 service_books.nu parens parse error (+sister bug) hero_skills
home#169 libclang-dev installer hero_skills
home#170 uv installer hero_skills
home#179 Biz iframe /ui/ missing hero_os
home#192 TF Grid hardcoded 10.1.2.2 defaults hero_skills

Filed 2026-04-26 post-sweep. Signed-off-by: mik-tf

## Context After the 2026-04-26 verification sweep + TF Grid degate work, **9 [nu-demo] issues are now closed**: - home#126, home#127, home#135, home#138, home#141, home#169, home#170, home#179, home#192. **36 [nu-demo] issues remain open**, falling into 8 categories. nu-server universality is now verified solid — no hardcoded TF-Grid-only paths remain in critical install/runtime code (see home#192 close comment for the matrix). This meta tracks the plan to close out the rest **sequentially, in priority order**. As each child issue is closed, check it off in this issue's checklist below. ## Working agreement - Sequential execution: complete Group A before Group B, etc. — no fan-out. - Per-change OK required on non-`hero_demo` repos (existing policy: hero_demo direct-push allowed; other repos require explicit go-ahead per change). - Each child issue closed gets a close comment citing the commit + verification (file:line + smoke-test where applicable). - This meta-issue is updated (checkboxes ticked) after each close, with a one-line status comment. - **nu-server universality must stay intact** — no new hardcoded TF-Grid-only paths. New defaults derive from `HERO_ROUTER_ADDRESS` env var (auto-set by `install.sh` only when `10.1.2.x` is detected). ## Group A — Quick code wins (start here) One-liner-ish fixes, clear scope, high signal-to-effort: - [x] home#142 — `install.sh` nushell silent fail (`|| warn` → `|| die` at L799 since nushell is required) - [x] home#136 — `hero_agent` `OPENROUTER_API_KEYS` singular fallback (`config.rs:84` — second arg should be `OPENROUTER_API_KEY`, not duplicate plural) - [x] home#131 — `hero_os` Makefile `~/.cargo/bin/dx` hardcode (use `DX ?=` env-overridable) - [x] home#133 — `service_livekit` redis preflight (`pkg_ensure redis-server` + redis-tools in install step) ## Group B — Verify-then-close candidates May already be fixed — read issue body + grep current state. Close if fix is in place; flag-as-partial otherwise: - [x] home#128 — `installers.nu` missing apt dev packages (compare list against current `install_base`) - [x] home#132 — `service_codescalers` socket naming mismatch - [x] home#168 — `hero_embedder` dependency ordering (current `start_timeout_ms: 180000` may suffice) - [⚠] home#139 — `hero_foundry` seed_media path — **triaged, needs design** (option (b) per-context bootstrap is non-trivial; deferred from Group B to design-work bucket) ## Group C — UI/visual (deploy + Hero Browser MCP required) Cannot verify by code grep alone. Stack for a single visual-pass deploy session: - [x] home#146 — Photos `<img>` rendering — closed as duplicate of home#156 (leading-slash storage_path) - [x] home#147 — hero_collab dark theme should follow hero_os theme tokens - [x] home#154 — Purple highlight remains after closing apps - [x] home#155 — Right-click on a topic in hero_voice — menu items cut off - [x] home#184 — hero_books library cards — light-mode text contrast ## Group D — AI/agent grounding (design work) Larger surface; may need design before code: - [x] home#149 — `hero_agent prompt.rs` tool-use directive for hero_* questions needs strengthening + reliable rebuild - [x] home#150 — `hero_agent` `tool_choice="required"` for grounded modes in `llm_client.rs` - [x] home#152 — `hero_agent` triage classifier routes 'What is Hero OS?' to Knowledge path (no tools offered) — grounding never happens - [x] home#153 — `hero_agent` tools payload blocks every LLM: 165 tools > 128 limit, dots in tool names violate regex, duplicate agent_run ## Group E — OSIS / contexts (likely linked — shared root cause suspected) - [x] home#125 — `hero_router` clobbers client `X-Hero-Context` header with `state.context` - [x] home#129 — `service_osis.nu` does not populate contexts registry or pass `HERO_CONTEXTS` / `HERO_S...` - [ ] home#130 — `hero_osis_ai` domain not registered (registration code present at `hero_osis.rs:240-247` but `ai` feature is intentionally excluded from `all-domains` in `hero_osis_server/Cargo.toml:30-46` — **design call**: enable or close-as-by-design with the feature still under dev?) - [ ] home#151 — Switching contexts doesn't work (per memory: rebuild deployed v0.9.10-dev with latest hero_rpc/osis/os/archipelagos was the path) - [ ] home#175 — `hero_osis_ui` stuck at 'Loading service spec...' — no `/api/services` route, per-domain discovery never completes ## Group F — Books-specific - [ ] home#157 — Books island builds URL as `{base}/` + `/rpc` → double-slash 404 in All Books / library listing - [ ] home#158 — `hero_books` re-runs LLM Q&A extraction despite pre-shipped `.ai/<page>.toml` cache (content_hash mismatch) - [ ] home#176 — `hero_books_ui` navbar disappears when clicking into a library — emits `/hero_books_ui/library/X` (underscore) instead of `/hero_books/ui/library/X` (slash) ## Group G — Misc service / infra - [ ] home#134 — `packages.nu` `service_browser/books/matrixchat` still commented out (voice + agent already uncommented) - [ ] home#137 — `hero_aibroker modelsconfig.yml` ships Groq-only with no fallback chain - [ ] home#140 — `hero_os` WASM shell is 211 MB debug — needs release + wasm-opt + brotli/gzip sidecars - [ ] home#143 — CRUD delete across `hero_osis` SDK — server returns `bool`, SDK calls `rpc_call::<String>` (confirmed on `contact.delete`) - [ ] home#144 — Roadmap: seed Office archipelago with per-library generated PDFs/docs - [ ] home#145 — `hero_embedder_server` panics with blocking reqwest inside tokio async context; namespace.create rejects Q1 in daemon mode (spawn_blocking wrapper present, but namespace.create Q1 may persist) - [ ] home#156 — Media seed_data writes storage_path with leading slash — '/Photos/foo.jpg' breaks photo/video/song URLs - [ ] home#171 — Dock islands broken on `web` feature build — OSIS/Services have only native variants, Services is dead wood, Videos missing, Books needs iframe default ## Group H — Meta-trackers (stay open by design) Not bugs — deliverables/snapshots. Excluded from the close-out count, listed for completeness: - home#148 — Documentation index: heronu deployment flow, AI grounding chain, per-service gaps - home#159 — CANONICAL — Intelligence pipeline documented end-to-end - home#160 — STATE OF HERONU as of 2026-04-24 — what works, what's still broken - THIS issue (the close-out plan) ## Closed during the 2026-04-26 sweep (for reference) | # | Title | Repo | |---|-------|------| | home#126 | hero_livekit_ui middleware order | hero_livekit | | home#127 | hero_slides path dep on hero_lib | hero_slides | | home#135 | service_agent.nu missing | hero_skills | | home#138 | hero_aibroker --reset clobber | hero_skills | | home#141 | service_books.nu parens parse error (+sister bug) | hero_skills | | home#169 | libclang-dev installer | hero_skills | | home#170 | uv installer | hero_skills | | home#179 | Biz iframe `/ui/` missing | hero_os | | home#192 | TF Grid hardcoded 10.1.2.2 defaults | hero_skills | Filed 2026-04-26 post-sweep. Signed-off-by: mik-tf
Author
Owner

Group A — 1/4 done. home#142 closed by hero_skills 4723d42. Group A remaining: home#136, home#131, home#133.

**Group A — 1/4 done.** home#142 closed by hero_skills `4723d42`. Group A remaining: home#136, home#131, home#133.
Author
Owner

Group A — 2/4 done. home#136 closed by hero_agent cec24b4. Group A remaining: home#131, home#133.

**Group A — 2/4 done.** home#136 closed by hero_agent `cec24b4`. Group A remaining: home#131, home#133.
Author
Owner

Group A — 3/4 done. home#131 closed by hero_os 03477c4. Group A remaining: home#133.

**Group A — 3/4 done.** home#131 closed by hero_os `03477c4`. Group A remaining: home#133.
Author
Owner

Group A — 4/4 done. Group A COMPLETE. home#133 closed by hero_skills 4927b3d. Moving to Group B (verify-then-close): home#128, home#132, home#168, home#139.

**Group A — 4/4 done. Group A COMPLETE.** home#133 closed by hero_skills `4927b3d`. Moving to Group B (verify-then-close): home#128, home#132, home#168, home#139.
Author
Owner

Group B — 1/4 done. home#128 closed by hero_skills 871ca0d (10 missing apt deps added to install_base — verified only 5 of 14 were present beforehand). Group B remaining: home#132, home#168, home#139.

**Group B — 1/4 done.** home#128 closed by hero_skills `871ca0d` (10 missing apt deps added to install_base — verified only 5 of 14 were present beforehand). Group B remaining: home#132, home#168, home#139.
Author
Owner

Group B — 2/4 done. home#132 closed by hero_skills bf6e668. Group B remaining: home#168, home#139.

**Group B — 2/4 done.** home#132 closed by hero_skills `bf6e668`. Group B remaining: home#168, home#139.
Author
Owner

Group B — 3/4 done. home#168 verified-fixed in current service_embedder.nu (start_timeout_ms bumped to 120s/180s — fix-option #1 from issue body via different mechanism). No code change needed; closed with explanation. Group B remaining: home#139.

**Group B — 3/4 done.** home#168 verified-fixed in current `service_embedder.nu` (start_timeout_ms bumped to 120s/180s — fix-option #1 from issue body via different mechanism). No code change needed; closed with explanation. Group B remaining: home#139.
Author
Owner

Group B — 4/4 triaged. home#139 is NOT fixed (current code still starts foundry with empty webdav). Triaged in-place: option (b) per-context bootstrap is non-trivial (needs context enumeration), so deferred to design-work bucket. Group B closed: 3 fixed (home#128, home#132, home#168) + 1 triaged-deferred (home#139). Moving to Group C.

**Group B — 4/4 triaged.** home#139 is NOT fixed (current code still starts foundry with empty webdav). Triaged in-place: option (b) per-context bootstrap is non-trivial (needs context enumeration), so deferred to design-work bucket. Group B closed: 3 fixed (home#128, home#132, home#168) + 1 triaged-deferred (home#139). Moving to Group C.
Author
Owner

Group C — 1/5 done. home#184 closed by hero_books 10493f5 (CSS specificity bump for .library-card.lib-theme-N). Verified live on herodemo via Hero Browser MCP — light + dark both readable. Group C remaining: home#146, home#147, home#154, home#155.

**Group C — 1/5 done.** home#184 closed by hero_books `10493f5` (CSS specificity bump for `.library-card.lib-theme-N`). Verified live on herodemo via Hero Browser MCP — light + dark both readable. Group C remaining: home#146, home#147, home#154, home#155.
Author
Owner

Group C — 2/5 done. home#147 closed by hero_collab 445f17b (canonical Hero theme pattern: localStorage-driven data-bs-theme + light/dark token variants). Group C remaining: home#146 (WASM-shell-blocked), home#154 (WASM-shell-blocked), home#155 (Askama UI, accessible).

**Group C — 2/5 done.** home#147 closed by hero_collab `445f17b` (canonical Hero theme pattern: localStorage-driven `data-bs-theme` + light/dark token variants). Group C remaining: home#146 (WASM-shell-blocked), home#154 (WASM-shell-blocked), home#155 (Askama UI, accessible).
Author
Owner

Group C — 3/5 done. home#155 closed by hero_voice a113955 (viewport-clamp logic in ContextMenu.show — verified live on herodemo, 60% of menu was cut off, all 18 items now visible). Group C remaining: home#146 + home#154 (both inside hero_os WASM shell — auth-blocked from Hero Browser; can be resolved by either solving the credential propagation or doing source-level fix + deploy verification).

**Group C — 3/5 done.** home#155 closed by hero_voice `a113955` (viewport-clamp logic in ContextMenu.show — verified live on herodemo, 60% of menu was cut off, all 18 items now visible). Group C remaining: home#146 + home#154 (both inside hero_os WASM shell — auth-blocked from Hero Browser; can be resolved by either solving the credential propagation or doing source-level fix + deploy verification).
Author
Owner

Group C — 5/5 done. Group C COMPLETE. home#154 closed by hero_os 5a811a3. home#146 closed as duplicate of home#156 (the Photos <img> failures are caused by leading-slash storage_path — verified by curl returning 403 on double-slash URL, 200 on single-slash). Also filed home#194 — long-term hero_browser_mcp basic-auth + extra-headers tool. Moving to Group D (AI/agent grounding).

**Group C — 5/5 done. Group C COMPLETE.** home#154 closed by hero_os `5a811a3`. home#146 closed as duplicate of home#156 (the Photos `<img>` failures are caused by leading-slash storage_path — verified by curl returning 403 on double-slash URL, 200 on single-slash). Also filed home#194 — long-term hero_browser_mcp basic-auth + extra-headers tool. Moving to Group D (AI/agent grounding).
Author
Owner

Group D — 1/4 done. home#149 closed by hero_agent 61d702d (mandatory grounding directive + regression test). Group D remaining: home#150 (tool_choice), home#152 (triage classifier), home#153 (tools payload limit).

**Group D — 1/4 done.** home#149 closed by hero_agent `61d702d` (mandatory grounding directive + regression test). Group D remaining: home#150 (tool_choice), home#152 (triage classifier), home#153 (tools payload limit).
Author
Owner

Group D — 2/4 done. home#150 closed by hero_agent 54ba5d5 (ToolChoice enum + auto-force search_hero_docs grounding heuristic + 9 tests). Group D remaining: home#152 (triage classifier), home#153 (tools payload limit).

**Group D — 2/4 done.** home#150 closed by hero_agent `54ba5d5` (ToolChoice enum + auto-force search_hero_docs grounding heuristic + 9 tests). Group D remaining: home#152 (triage classifier), home#153 (tools payload limit).
Author
Owner

Group D — 3/4 done. home#152 closed by hero_agent b650591 (HERO_PATTERNS pre-check at the top of quick_triage). Grounding tripod complete: home#149 (prompt) + home#150 (tool_choice) + home#152 (triage routing). Group D remaining: home#153 (tools payload size + dot-in-name regex).

**Group D — 3/4 done.** home#152 closed by hero_agent `b650591` (HERO_PATTERNS pre-check at the top of quick_triage). Grounding tripod complete: home#149 (prompt) + home#150 (tool_choice) + home#152 (triage routing). Group D remaining: home#153 (tools payload size + dot-in-name regex).
Author
Owner

Group D — 4/4 done. Group D COMPLETE. home#153 closed by hero_agent e876a16 (sanitize + dedup + cap + reverse-lookup). The full AI/agent grounding path is now correct: prompt directive (#149) + tool_choice (#150) + triage routing (#152) + payload sanitization (#153). Moving to Group E (OSIS/contexts).

**Group D — 4/4 done. Group D COMPLETE.** home#153 closed by hero_agent `e876a16` (sanitize + dedup + cap + reverse-lookup). The full AI/agent grounding path is now correct: prompt directive (#149) + tool_choice (#150) + triage routing (#152) + payload sanitization (#153). Moving to Group E (OSIS/contexts).
Author
Owner

Group E — 2/5 closed; 1 likely-resolved transitively. Squash-merged in dependency order with kristof1 PR #35 attribution preserved:

  • hero_rpc f299402 — home#129(a) OServer::register registry-persist (after PR #35 landed first via API merge so kristof1s lock-bump kept its attribution)
  • hero_skills 3f8b700 — home#129(b) HERO_CONTEXTS / HERO_SEED_DIR env passthrough
  • hero_router fe1cbd6 — home#125 X-Hero-Context client header passthrough

home#125, home#129 closed. home#151 (Switching contexts doesnt work) is structurally unblocked by this trio — verify after deploy. Group E remaining: home#130 (design call), home#175 (substantial UI rework).

**Group E — 2/5 closed; 1 likely-resolved transitively.** Squash-merged in dependency order with kristof1 PR #35 attribution preserved: - hero_rpc `f299402` — home#129(a) `OServer::register` registry-persist (after PR #35 landed first via API merge so kristof1s lock-bump kept its attribution) - hero_skills `3f8b700` — home#129(b) HERO_CONTEXTS / HERO_SEED_DIR env passthrough - hero_router `fe1cbd6` — home#125 X-Hero-Context client header passthrough home#125, home#129 closed. home#151 (Switching contexts doesnt work) is structurally unblocked by this trio — verify after deploy. Group E remaining: home#130 (design call), home#175 (substantial UI rework).
Author
Owner

Moved to hero_demo#41 — see lhumina_code/hero_demo#41

Moved to hero_demo#41 — see https://forge.ourworld.tf/lhumina_code/hero_demo/issues/41
Sign in to join this conversation.
No labels
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
lhumina_code/home#193
No description provided.