Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions wiki/roadmap/dogfood-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ Phase 2 stays `active` through two weeks of real use on a real collection. Clock
| 2026-10-03 | decision | #126 publication record merged as `731d43f`; main synced and installed binary reports 0.1.3. Phase 2 remains on fixes-only hold until the ≈ 2026-10-13 adoption verdict; no phase exit or release authorised by this housekeeping | P3-08 |
| 2026-10-03 | decision | [P3-S2 herdr spike](spikes/p3-s2-herdr-integration.md): 0.9.0 popup launches with context cwd; operator confirmed real images, Help/Esc/Ctrl+Enter/q and no leftover fragments. Plain non-agent split metadata stored; operator confirmed title or token visible in the sidebar. Confirm feasibility for P3-09 popup and P3-10 ordinary-pane publishing; no metadata from popups (no pane ID). Overlay/split keys passed automation, graphics checks remain unverified. Scratch panes closed and global plugin unlinked; P4-05 theme-name following can use a config watcher without a plugin | P3-09, P3-10, P4-05 |

## v0.1.4 (preparation)
## v0.1.4

| Date | Kind | Note | Task IDs |
|------|------|------|----------|
Expand All @@ -139,11 +139,12 @@ Phase 2 stays `active` through two weeks of real use on a real collection. Clock
| 2026-10-03 | decision | P3-09 accepted by the operator on herdr 0.9.0: the `open` action's ordinary split pane draws images and diagrams (and they survive theme switches); the overlay and popup entrypoints open, take keys and dismiss but are text-only, showing the plugin-pane wording. Matches the retest prediction, so it is the documented limit, not a defect; images there wait for herdr to give plugin panes cell metrics | P3-09 |
| 2026-10-03 | bite | Operator, running the P3-09 split pane (installed 0.1.3): images survive theme switches, but some diagram images do not; switching pages and back reloads them and scrolling past refreshes them. Same symptom family as P2-56 | P2-60 |
| 2026-10-03 | fix | P2-60: cause found in `ratatui-image`'s Kitty path. The upload is embedded in the picture's first cell on its first render and is never repeated, so a picture first drawn under a popup (the options window is open while the theme applies) never reached the terminal; a page switch or a scroll builds a new encode, which explains the refresh. Popups record their panels; pictures wait until their first cell is visible. Two regression tests (Kitty picker, popup open while pictures first render; diagrams switched under the options window) fail without the fix. Distinct from P2-56 (palette-keyed size cache) | P2-60 |
| 2026-10-03 | decision | P3-10 implemented (unreleased): the reader publishes the current page's title and a `page` token to herdr's sidebar from a worker thread, on by default inside a herdr pane with its own pane id, `[herdr] publish = false` to opt out. [ADR-0022](../decisions/0022-herdr-launcher-and-page-publishing.md) records it with the ordinary-pane launcher. Unit tests cover the exact argv, debounce, renewal, monotonic seq, clear on drop and failure isolation; sidebar behaviour in a real pane still needs the operator pass | P3-10 |
| 2026-10-03 | decision | P3-10 implemented (v0.1.4): the reader publishes the current page's title and a `page` token to herdr's sidebar from a worker thread, on by default inside a herdr pane with its own pane id, `[herdr] publish = false` to opt out. [ADR-0022](../decisions/0022-herdr-launcher-and-page-publishing.md) records it with the ordinary-pane launcher. Unit tests cover the exact argv, debounce, renewal, monotonic seq, clear on drop and failure isolation; sidebar behaviour in a real pane still needs the operator pass | P3-10 |
| 2026-10-03 | bite | Operator P3-10 test in a plain pane (`target/debug/wiki-reader wiki`, pane `w30:p18`): `herdr pane get` showed no title or token, so nothing was published. Cause: herdr's CLI rejects `--title=value` ("unknown option"), and the publisher passed options that way; every report failed and, by design, it went quiet after three failures. The fake herdr in the unit tests could not catch it | P3-10 |
| 2026-10-03 | fix | P3-10: options and values now go as separate arguments (`--title T --token page=P`); herdr accepts a value that starts with `-` that way, has no `--` terminator. Added an opt-in contract test against the real CLI (`WIKI_READER_TEST_HERDR_PANE=<idle pane> cargo test -p wiki-reader real_herdr -- --ignored`): it publishes a dash-leading title and the `page` token, sees both in `pane get` with `agent_status` still `unknown`, and sees them cleared on drop. Sidebar appearance still needs the operator's eyes | P3-10 |
| 2026-10-03 | decision | P3-10 operator retest on herdr 0.9.0 (plain pane `w30:p18`, `target/debug/wiki-reader wiki`): `pane get` shows the page title and `tokens.page` following each page change (Decisions, ADR-0005, ADR-0006, ADR-0007), an unchanged page is not re-sent, `agent_status` stays `unknown`, and quitting leaves no title or token. Publishing works end to end. Not exercised: which sidebar element shows the title versus the token, the opt-out, a pane that hosts an agent, and TTL expiry after an unclean kill. Both fields stay on; ADR-0022 already records the agent-pane risk | P3-10 |
| 2026-10-03 | decision | Prepare v0.1.4 to put P2-60 (diagrams switched under the options window), the herdr launcher with text-only plugin panes (P3-09) and herdr page publishing (P3-10, [ADR-0022](../decisions/0022-herdr-launcher-and-page-publishing.md)) in the installed dogfood binary. Require green CI on the release merge commit before tagging. Phase 2 stays on fixes-only hold until the ≈ 2026-10-13 verdict; the adoption clock does not restart | P2-60, P3-09, P3-10, P3-08 |
| 2026-10-03 | release | [v0.1.4](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.4) published as a prerelease from #131 merge commit `5646e05` after its Ubuntu/macOS CI passed. All three release builds passed; three tarballs and three checksums present. macOS arm64 download checksum and binary version verified; Cargo dogfood install upgraded from v0.1.3 to v0.1.4 (`~/.cargo/bin/wiki-reader`, the only copy on `PATH`; `--version` reports 0.1.4), so the herdr `open` action's `exec wiki-reader` now runs a build that publishes. Operator verified P2-60, the launcher and page publishing in real herdr panes before the release. Clock continues without restarting | P2-60, P3-09, P3-10, P3-08 |

## Related

Expand Down
2 changes: 1 addition & 1 deletion wiki/roadmap/phase-2-mvp.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ Judged from tests, dogfood QA, and code — not a full interactive sweep of ever
| P2-57 | Docs audit and drift fixes | — | done | dogfood 2026-10; README/ui-spec ⚙, spec U3/U6–U9, modal viewers section, date drift, P3-07 Notes |
| P2-58 | Docs structure: short README Status, dogfood log as its own file, benchmarks as their own page | — | done | dogfood 2026-10; [dogfood-log.md](dogfood-log.md), [benchmarks.md](../architecture/benchmarks.md) |
| P2-59 | Narrow-terminal nav overlay: opaque inherited background, pinned header controls and outside-click dismissal | U2 / K1 | done | 2026-10-03 (v0.1.3): operator confirmed all three bugs on v0.1.2; pre-#121 `c69c348` renders reproduce bleed at 40/60 columns and regression tests fail for long breadcrumbs and outside clicks. Clear/fill only the overlay; reserve header icon columns and ellipsize overflow; outside clicks dismiss without activating underlying targets. Regression snapshots and mouse tests; post-fix terminal pass pending |
| P2-60 | Diagrams switched under the options window stay blank until the page is left or scrolled | D1 | done | 2026-10-03 (unreleased): the Kitty upload rides in a picture's first cell on its first render, and `ratatui-image` never repeats it. A theme switch re-renders every diagram while the options window is open, so a picture first drawn with its first cell under the popup lost its upload. Popups now record their panels (`HitMap::occlude`) and `ImageManager::draw` holds a picture back until its first cell is visible (`Entry::Ready.confirmed`, reset when its rectangle or crop changes). Regression tests use a Kitty-protocol picker and fail without the fix; the P2-56 theme-switch test is unchanged |
| P2-60 | Diagrams switched under the options window stay blank until the page is left or scrolled | D1 | done | 2026-10-03 (v0.1.4): the Kitty upload rides in a picture's first cell on its first render, and `ratatui-image` never repeats it. A theme switch re-renders every diagram while the options window is open, so a picture first drawn with its first cell under the popup lost its upload. Popups now record their panels (`HitMap::occlude`) and `ImageManager::draw` holds a picture back until its first cell is visible (`Entry::Ready.confirmed`, reset when its rectangle or crop changes). Regression tests use a Kitty-protocol picker and fail without the fix; the P2-56 theme-switch test is unchanged |
| P2-R38 | Copy fixes: empty table cells kept, wrapped cells rejoined, OSC 52 cap on the encoded payload (75 KB of text), held drag keeps scrolling | CP | done | round 2 follow-ups (PR 2) |
| P2-24b | Image diagrams and images | D1 | moved | slipped to Phase 3 as P3-12 (2026-09-30), now split into P3-12a…d; images follow [ADR-0017](../decisions/0017-static-local-images-only.md) |

Expand Down
6 changes: 3 additions & 3 deletions wiki/roadmap/phase-3-alpha.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Per batch: manual passes in Ghostty and herdr, plus iTerm2/tmux for media or fal

| ID | Task | Reqs | Status | Notes |
|----|------|------|--------|-------|
| P3-08 | Install via `cargo install` + release binaries | | done | daf8fc5; hygiene f90c378; release hardening 9012fce; [v0.1.0-alpha.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.1); [v0.1.0-alpha.2](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.2); [v0.1.0-alpha.3](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.3); [v0.1.0-alpha.4](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.4); [v0.1.0-alpha.4.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.4.1); [v0.1.0-alpha.5](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.5) (P3-12c/d Mermaid image tier); [v0.1.0-alpha.5.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.5.1) (P2-55 copy path); [v0.1.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.1) (P3-07/11/13/14/15, the first `v0.1.N` tag); [v0.1.2](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.2) (2026-10-03, P2-56 theme-switch fix and docs filing; three release targets and macOS arm64 download verified); [v0.1.3](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.3) (2026-10-03, P2-59 narrow-nav fix and the Batch A chrome pass P3-16/17/18; three release targets and macOS arm64 download verified); v0.1.4 (prepared 2026-10-03: P2-60 diagram upload fix, the herdr launcher P3-09 and page publishing P3-10; tag pending green CI on the release merge commit) |
| P3-08 | Install via `cargo install` + release binaries | | done | daf8fc5; hygiene f90c378; release hardening 9012fce; [v0.1.0-alpha.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.1); [v0.1.0-alpha.2](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.2); [v0.1.0-alpha.3](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.3); [v0.1.0-alpha.4](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.4); [v0.1.0-alpha.4.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.4.1); [v0.1.0-alpha.5](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.5) (P3-12c/d Mermaid image tier); [v0.1.0-alpha.5.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.0-alpha.5.1) (P2-55 copy path); [v0.1.1](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.1) (P3-07/11/13/14/15, the first `v0.1.N` tag); [v0.1.2](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.2) (2026-10-03, P2-56 theme-switch fix and docs filing; three release targets and macOS arm64 download verified); [v0.1.3](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.3) (2026-10-03, P2-59 narrow-nav fix and the Batch A chrome pass P3-16/17/18; three release targets and macOS arm64 download verified); [v0.1.4](https://github.com/luckgrid/wiki-reader/releases/tag/v0.1.4) (2026-10-03, P2-60 diagram upload fix, the herdr launcher P3-09 and page publishing P3-10; three release targets and macOS arm64 download verified) |
| P3-06 | Help overlay with clickable keys | | done | done via P2-20 (#71) |
| P3-07 | Themes | | done | Reworked 2026-10-02 (local time; [ADR-0019](../decisions/0019-theme-presets.md) retains its immutable UTC date, 2026-10-03): `dark` / `light` take the luckgrid.net palette, `herdr` follows the theme named in herdr's config and is the default inside herdr; live follow is P4-05. Original: `theme = dark \| light \| herdr` wired to `Theme::from_name`; light preset with a contrast test; syntect theme and Mermaid palette follow the preset (diagrams were always drawn light before); herdr preset is vesper-based; quadrant/xy-chart/ER-key fills stay light (renderer hard-codes them). Checked 2026-10-02: Mermaid fixtures look right in the default (dark) theme. Light and herdr presets got their in-app visual pass with the options window (P3-13) |
| P3-11 | Layout and theme config | C1 | done | `nav.position = left \| right` (default left); divider on the inner edge; Viewer ←/→ at the edge toward the nav hands focus over. Nav width stays session-only (P2-14). No other layout keys (formatted view removed, [ADR-0014](../decisions/0014-remove-formatted-view-toggle.md)). Feature request from 2026-09-30 dogfood |
Expand All @@ -72,8 +72,8 @@ Per batch: manual passes in Ghostty and herdr, plus iTerm2/tmux for media or fal
| P3-04 | Optional header ‹ › buttons | U4 | deferred | Operator decision 2026-10-03: Phase 4 seed P4-07 |
| P3-05 | Link hover preview popover | W6 | deferred | Operator decision 2026-10-03: Phase 4 seed P4-08 |
| P3-03 | Nav label options | U3 | done | completed by P3-16; two modes, literal filenames/folders and legacy config migration |
| P3-09 | herdr: launch as a herdr plugin pane | | done | Implemented in #128 (unreleased): `--herdr-context` and `--herdr-split`, an `integrations/herdr/` plugin whose default action opens the reader in an ordinary split pane (images work) plus text-only overlay and popup actions. [P3-S2](spikes/p3-s2-herdr-integration.md) retests show every herdr 0.9.x plugin pane, overlay included, lacks cell metrics, so plugin panes cannot draw images; wiki-reader names that in its fallback text and never guesses a cell size. Operator accepted 2026-10-03: the `open` action's split pane draws images and diagrams; overlay and popup open and take keys but are text-only on herdr 0.9.x, with the plugin-pane wording. Ships in v0.1.4 |
| P3-10 | herdr: publish the current page to herdr's sidebar | | done | Implemented in #130 (unreleased): `crates/wiki-reader/src/herdr.rs` `Publisher` (worker thread, 250 ms debounce, 10 min TTL renewed every 4 min, cleared on exit, `--seq` = Unix ms, failure isolation after 3 in a row), hooked into the event loop by `App::sync_herdr`; `[herdr] publish` (default on); [ADR-0022](../decisions/0022-herdr-launcher-and-page-publishing.md). Ordinary panes only: popups have no pane id. The first operator run found herdr rejects `--name=value`; fixed, and a real-CLI contract test now covers publish and clear. Operator verified 2026-10-03 on herdr 0.9.0: `pane get` follows page changes with title and `page` token, no duplicate for an unchanged page, `agent_status` stays `unknown`, cleared on quit. Not exercised: which sidebar element shows the title versus the token, opt-out, an agent-hosting pane, TTL after an unclean kill. Ships in v0.1.4 |
| P3-09 | herdr: launch as a herdr plugin pane | | done | Implemented in #128 (v0.1.4): `--herdr-context` and `--herdr-split`, an `integrations/herdr/` plugin whose default action opens the reader in an ordinary split pane (images work) plus text-only overlay and popup actions. [P3-S2](spikes/p3-s2-herdr-integration.md) retests show every herdr 0.9.x plugin pane, overlay included, lacks cell metrics, so plugin panes cannot draw images; wiki-reader names that in its fallback text and never guesses a cell size. Operator accepted 2026-10-03: the `open` action's split pane draws images and diagrams; overlay and popup open and take keys but are text-only on herdr 0.9.x, with the plugin-pane wording. Ships in v0.1.4 |
| P3-10 | herdr: publish the current page to herdr's sidebar | | done | Implemented in #130 (v0.1.4): `crates/wiki-reader/src/herdr.rs` `Publisher` (worker thread, 250 ms debounce, 10 min TTL renewed every 4 min, cleared on exit, `--seq` = Unix ms, failure isolation after 3 in a row), hooked into the event loop by `App::sync_herdr`; `[herdr] publish` (default on); [ADR-0022](../decisions/0022-herdr-launcher-and-page-publishing.md). Ordinary panes only: popups have no pane id. The first operator run found herdr rejects `--name=value`; fixed, and a real-CLI contract test now covers publish and clear. Operator verified 2026-10-03 on herdr 0.9.0: `pane get` follows page changes with title and `page` token, no duplicate for an unchanged page, `agent_status` stays `unknown`, cleared on quit. Not exercised: which sidebar element shows the title versus the token, opt-out, an agent-hosting pane, TTL after an unclean kill. Ships in v0.1.4 |
| P3-13 | Options window | U5 | done | feature request 2026-10-02. A popup like markdown-reader's, opened by a key and a footer/header button, that edits config from inside the app: **theme** selector (dark / light / herdr, live preview), **nav position** (left / right, P3-11), **nav labels** (titles ↔ filenames, `nav.labels`), **Mermaid** settings (`diagrams` tier: auto / image / text / source), **image** settings, **copy path** format (`copy.path`: relative / absolute, key added by P2-55). Implemented: `,` / `c` or the layout footer ⚙ (moved by P3-18) opens the overlay; writes via [ADR-0018](../decisions/0018-config-write-path.md); new `[images] enabled \| max_slot_rows`; live apply for every row (images re-enable after a disable needs a restart when the startup probe was skipped). Reworked 2026-10-02 (local time) after dogfood: grouped radio rows in the style of markdown-reader's settings window, `,` and `c` both open and close it, and the copy-path key is listed in Help as "Copy file path" |
| P3-14 | Table viewer | U6 | done | feature request 2026-10-02. Open a large table in a modal / window (like markdown-reader): scroll in both axes with a fixed header row and first column, **filter** rows by text, **sort** by a column, copy a cell or row (reuse the tab-separated table copy from P2-R38). Entry point: the existing "expand table" block action (BA), plus `Enter` on a focused table. Also the shell for P3-15. Implemented: `RenderedDoc::tables` (`DocTable`) from `render.rs`; `ExpandTable` block action and `Enter` open `tui/table_viewer.rs` inside `tui/modal_viewer.rs`. Keys: arrows / `hjkl`, `PgUp` / `PgDn`, `g` / `G`, `/` filter, `s` sort, `y` cell, `Y` row. See [UI spec: Modal viewers](../product/ui-spec.md#modal-viewers) |
| P3-15 | Image and diagram viewer | U7 | done | feature request 2026-10-02. Open an image or Mermaid diagram full size in a modal: **zoom** in/out and **pan**. Reuses the P3-12 pipeline at a larger pixel budget. Entry: `ExpandDiagram` / `Enter` on a slot. Keys: arrows / `hjkl` pan, `PgUp` / `PgDn`, `g` / `G`, `+` / `-` zoom, `0` reset. SVG/Mermaid re-rasterise at zoom; raster files scale from the bitmap. See [UI spec: Modal viewers](../product/ui-spec.md#modal-viewers). Deferred: mouse drag to pan, click on a picture to open it, carousel (P3-21), diagram state toggle (P3-22), viewer sizing (P3-20) |
Expand Down
Loading