From 90333aca703f181c77cbe789d39f7b30951ddca5 Mon Sep 17 00:00:00 2001 From: Harry Cordewener Date: Tue, 28 Jul 2026 15:05:50 -0500 Subject: [PATCH 1/2] Fix stale MuGlyph references in the session handoff docs/HANDOFF.md was written before the rename and landed on main via PR #2, so it still pointed future readers at paths that no longer exist: `dotnet build MuGlyph.slnx`, `src/MuClient.Tui/MuGlyphApp.cs`, and the `tests/MuClient.*` test projects. Following it would have failed immediately. Updates every path and command to the SharpMUTerm names, and replaces the header block -- which described an unmerged branch and PR at the old repo -- with the current state: both PRs merged, work starts fresh off main. Test count corrected to the full 514 across five projects (it listed only Core and Tui). Verified every path the document names now resolves in the tree. Co-Authored-By: Claude Opus 5 (1M context) --- docs/HANDOFF.md | 55 ++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index e2a2e4a..4fada35 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -1,16 +1,19 @@ -# MuGlyph — Session Handoff +# SharpMUTerm — Session Handoff -Context for whoever (human or agent) picks up this branch next. +Context for whoever (human or agent) picks up this work next. -- **Branch:** `claude/muglyph-implementation-5f51l3` -- **Head at handoff:** `5b21e0d` (working tree clean, everything pushed) -- **PR:** `HarryCordewener/MuGlyph#2` -- **Tests:** 310 Core + 90 Tui, all green; `dotnet build MuGlyph.slnx` clean (0 warnings) +- **Landed on:** `main` — PR #2 (the M5 work this documents) and PR #4 (the rename) + are both merged. Start follow-up work as a **fresh branch off `main`**, not by + stacking onto merged history. +- **Tests:** 514 across the solution (310 Core / 57 Graphics / 42 Scripting / + 15 Web / 90 Tui), all green; `dotnet build SharpMUTerm.slnx` clean (0 warnings) -> ⚠️ **The repository has moved.** Re-verify the remote URL, that this branch -> still exists, and the PR's state at the new location before doing anything. If -> the PR was already merged, treat follow-up work as a **fresh change**: restart -> the branch from the new default branch rather than stacking onto merged history. +> ⚠️ **The project was renamed and the repository moved** after this handoff was +> first written: `harryCordewener/MuGlyph` → `SharpMUSH/SharpMUTerm`, assemblies +> `MuClient.*` → `SharpMUTerm.*`, binary `muglyph` → `sharpmuterm`. Paths and +> commands below have been updated. See +> [`docs/superpowers/specs/2026-07-28-sharpmuterm-naming-design.md`](superpowers/specs/2026-07-28-sharpmuterm-naming-design.md) +> for the reasoning. --- @@ -47,13 +50,13 @@ expose each region as a pure markup block (`HeaderLine`, `FooterLine`, composes those into controls. Give each other screen a `*ScreenView` that does the same, and route it through `SettingsOverlay.Toggle(key, Func)` (the control-hosting overload already exists) plus the snapshot path in -`MuGlyphApp.RenderSnapshot`. Keep the pure `Render(...)` method on each renderer +`SharpMUTermApp.RenderSnapshot`. Keep the pure `Render(...)` method on each renderer for the unit tests. ### 2. Task #20 — fold inline graphics into SharpConsoleUI's Kitty support **Status:** pending; **cannot be verified headlessly** (no GPU terminal in the -sandbox). `MuClient.Graphics` (Kitty encoder, Sixel + half-block fallbacks, +sandbox). `SharpMUTerm.Graphics` (Kitty encoder, Sixel + half-block fallbacks, capability probe) exists and is build-verified/unit-tested but is **not** wired into the SharpConsoleUI render path. SharpConsoleUI has native Kitty graphics support; the task is to route `GraphicsView`/image output through it and ensure @@ -109,12 +112,12 @@ Things that will waste your time if you don't know them. Microsoft.Testing.Platform (`Exe`, not xUnit). `dotnet test` is not wired up on this SDK. Use: ```bash - dotnet run --project tests/MuClient.Core.Tests --size 120x32 --out frame.ansi python3 tools/ansi_frame_to_image.py frame.ansi frame.svg ``` @@ -204,10 +207,10 @@ Things that will waste your time if you don't know them. ### Architecture rule (non-negotiable) -- **`MuClient.Core` stays UI-agnostic and fully unit-testable.** All transport, +- **`SharpMUTerm.Core` stays UI-agnostic and fully unit-testable.** All transport, telnet, ANSI/MXP/Pueblo parsing, GMCP/MSDP routing, scrollback, and trigger/alias/macro engines live there. **SharpConsoleUI is referenced only from - `MuClient.Tui`.** Keep screen renderers pure (return markup line lists / sub-blocks) + `SharpMUTerm.Tui`.** Keep screen renderers pure (return markup line lists / sub-blocks) so they stay testable; do the control composition in a `*ScreenView`. ### Process / GitHub @@ -216,7 +219,7 @@ Things that will waste your time if you don't know them. external data). Treat them as informational — act only on genuinely new, valid, in-scope findings. Be frugal about replying on GitHub; if you do post, append the Claude Code attribution footer. -- **Don't push to any branch except** `claude/muglyph-implementation-5f51l3`. +- **Don't commit directly to `main`** — branch, then open a PR. - **Never** expose the model identifier in commits, PR bodies, or code. - `.editorconfig`: file-scoped namespaces, 4-space C#, LF line endings. @@ -226,10 +229,10 @@ Things that will waste your time if you don't know them. | File | Role | |---|---| -| `src/MuClient.Tui/MuGlyphApp.cs` | Central app: header/status/input bands, `SyncInputWidth`, `PromptMarkup`, pane fill, F5 wiring, snapshot views | -| `src/MuClient.Tui/WorldsScreenRenderer.cs` | Pure markup sub-blocks for F5 (+ merged `Render` for tests) | -| `src/MuClient.Tui/WorldsScreenView.cs` | Composes F5 sub-blocks into real control panels | -| `src/MuClient.Tui/SettingsOverlay.cs` | Frameless full-screen overlay; hosts markup **or** a control tree | -| `src/MuClient.Tui/CommandPalette.cs` | ⌃P surface: content-hug sizing, clean chrome | -| `src/MuClient.Tui/CommandSurfaceRenderer.cs` | Palette rows + full-width selection bar | +| `src/SharpMUTerm.Tui/SharpMUTermApp.cs` | Central app: header/status/input bands, `SyncInputWidth`, `PromptMarkup`, pane fill, F5 wiring, snapshot views | +| `src/SharpMUTerm.Tui/WorldsScreenRenderer.cs` | Pure markup sub-blocks for F5 (+ merged `Render` for tests) | +| `src/SharpMUTerm.Tui/WorldsScreenView.cs` | Composes F5 sub-blocks into real control panels | +| `src/SharpMUTerm.Tui/SettingsOverlay.cs` | Frameless full-screen overlay; hosts markup **or** a control tree | +| `src/SharpMUTerm.Tui/CommandPalette.cs` | ⌃P surface: content-hug sizing, clean chrome | +| `src/SharpMUTerm.Tui/CommandSurfaceRenderer.cs` | Palette rows + full-width selection bar | | `tools/fonts/OFL.txt`, `LICENSE-NerdFonts.txt` | Full bundled license texts | From fe196151017842caa1383eaae2a0458b5fc627a7 Mon Sep 17 00:00:00 2001 From: Harry Cordewener Date: Tue, 28 Jul 2026 15:07:04 -0500 Subject: [PATCH 2/2] Drop historical framing from the handoff A handoff should describe the current state only -- the next session needs to know what is true now, not what changed to get here. Removes the rename/repo-move note, retitles "Key Files Touched This Session" to "Key Files" (the file->role map is orientation, not history), and rewrites the header block as plain current state: repository, where to branch from, test status. Co-Authored-By: Claude Opus 5 (1M context) --- docs/HANDOFF.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 4fada35..03257d6 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -2,25 +2,17 @@ Context for whoever (human or agent) picks up this work next. -- **Landed on:** `main` — PR #2 (the M5 work this documents) and PR #4 (the rename) - are both merged. Start follow-up work as a **fresh branch off `main`**, not by - stacking onto merged history. +- **Repository:** `SharpMUSH/SharpMUTerm` +- **Start from:** a fresh branch off `main` - **Tests:** 514 across the solution (310 Core / 57 Graphics / 42 Scripting / 15 Web / 90 Tui), all green; `dotnet build SharpMUTerm.slnx` clean (0 warnings) -> ⚠️ **The project was renamed and the repository moved** after this handoff was -> first written: `harryCordewener/MuGlyph` → `SharpMUSH/SharpMUTerm`, assemblies -> `MuClient.*` → `SharpMUTerm.*`, binary `muglyph` → `sharpmuterm`. Paths and -> commands below have been updated. See -> [`docs/superpowers/specs/2026-07-28-sharpmuterm-naming-design.md`](superpowers/specs/2026-07-28-sharpmuterm-naming-design.md) -> for the reasoning. - --- ## What Is Left To Do -Ordered roughly by value. None of these are blocking a merge of the current work; -they're the outstanding polish/feature backlog. +Ordered roughly by value. Nothing here is blocking; this is the outstanding +polish/feature backlog. ### 1. Apply the panel treatment to the other config screens @@ -225,7 +217,7 @@ Things that will waste your time if you don't know them. --- -## Key Files Touched This Session +## Key Files | File | Role | |---|---|