@carlesandres/house 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,61 @@ The publish workflow (`.github/workflows/publish.yml`) runs on the `release: pub
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.7] — 2026-05-27
10
+
11
+ ### Added
12
+
13
+ - `--root <path>` and TOML `defaultRoot` let launches default to a configured browsing root while preserving explicit path arguments.
14
+ - Discovery/indexing status now shows a spinner in the chrome instead of only static text.
15
+
16
+ ### Changed
17
+
18
+ - File actions now use uppercase `E` / `O` instead of lowercase `e` / `o`, adding a small amount of friction to edit and open-in-browser actions.
19
+ - Sidebar filtering now applies after a short debounce to reduce churn while typing.
20
+ - Filtered browsing now keeps the first match sticky/selected as results update.
21
+
22
+ ### Fixed
23
+
24
+ - PTY typing coverage and footer hint tests now match the shifted file-action bindings.
25
+ - CI typechecking now satisfies exact optional prop typing in the release branch.
26
+
27
+ ### Docs
28
+
29
+ - Removed the obsolete `CONTEXT.md` glossary and inlined the beta-term explanation into `DESIGN.md` with cleaned-up cross-references.
30
+ - ROADMAP shipped items were pruned after the covered work landed.
31
+
32
+ ### Tests
33
+
34
+ - Browser test noise from React act warnings was reduced around the new filter behavior coverage.
35
+
36
+ ## [0.4.6] — 2026-05-25
37
+
38
+ ### Added
39
+
40
+ - Reader empty states now show one tip at a time and rotate through a relevance-ordered set of workflow hints.
41
+
42
+ ### Changed
43
+
44
+ - Startup behavior now uses `--focus <sidebar|reader|filter>`, `HOUSE_FOCUS`, and TOML `focus = "..."`; the built-in startup default is now `filter`.
45
+ - Active filter/status metadata now uses the secondary theme token, matching opencode's use of `secondary` for active contextual metadata.
46
+ - UI theme consumers now use the opencode-aligned `primary` token directly for strong emphasis and selected foreground.
47
+ - UI chrome no longer uses house-only aliases (`surface`, `selectedBg`, `selectedBgInactive`), and background/backgroundPanel are no longer reordered by luminance.
48
+ - Sidebar filtering now ranks basename matches above folder-only matches and softly prefers current-folder files over deeper nested paths, while keeping empty-query tree order unchanged.
49
+
50
+ ### Fixed
51
+
52
+ - Tabbing away from the sidebar filter now lands on the reader without dropping filter mode, and the next `Tab` restores focus to the filter input instead of the sidebar list.
53
+ - Batched key input no longer clears active filter focus unexpectedly during tab cycling.
54
+
55
+ ### Docs
56
+
57
+ - Added semantic token usage guidance for supported theme tokens.
58
+ - DESIGN now documents the sidebar filter's basename-first, pure-function ranking model.
59
+
60
+ ### Tests
61
+
62
+ - Added headless and PTY regression coverage for filter tab-cycle focus restoration.
63
+
9
64
  ## [0.4.5] — 2026-05-24
10
65
 
11
66
  ### Changed
@@ -26,7 +81,6 @@ The publish workflow (`.github/workflows/publish.yml`) runs on the `release: pub
26
81
 
27
82
  - Discovery visibility controls: new `--show <list>` CLI flag, `HOUSE_SHOW` env var, and TOML `show = ["..."]` config, replacing boolean discovery toggles with explicit categories (`hidden`, `gitignored`).
28
83
  - Session visibility toggle: `shift+a` flips discovery between the configured visibility set and showing all categories, preserving selection across the re-walk.
29
- - Launch-in-filter option: `--start-in-filter` CLI flag, `HOUSE_START_IN_FILTER` env var, and TOML `start_in_filter = true` open the sidebar filter prompt focused at startup.
30
84
 
31
85
  ### Changed
32
86
 
@@ -46,7 +100,7 @@ The publish workflow (`.github/workflows/publish.yml`) runs on the `release: pub
46
100
 
47
101
  ### Added
48
102
 
49
- - Editor hand-off: press `e` to open the selected file in `$EDITOR`/`$VISUAL` (`#19`).
103
+ - Editor hand-off: press `E` to open the selected file in `$EDITOR`/`$VISUAL` (`#19`).
50
104
  - Sidebar rows now render basename-first with segment-aware parent-path elision, improving scanability in deep trees.
51
105
  - `ctrl+\\` clears an active sidebar filter query without leaving filter mode.
52
106
 
@@ -180,7 +234,7 @@ The v1 MVP, published as `@carlesandres/openmdr` on npm.
180
234
  ### Added — keymap
181
235
 
182
236
  - `KeyBinding[]` with `id` / `description` / `keys` / `group` / optional `when` / `run`. Single source for both `useKeyboard` dispatch and the help overlay.
183
- - Bindings: `j`/`k` + arrows, shift-jump, page/half-page, `g`/`G`, `return`/`l`/`→`, `escape`/`h`/`←`, `[`/`]`, `tab`, `\`, `?`, `q`/`ctrl+c`. Reserved (not bound): `/`, `e`, `o`, `r`.
237
+ - Bindings: `j`/`k` + arrows, shift-jump, page/half-page, `g`/`G`, `return`/`l`/`→`, `escape`/`h`/`←`, `[`/`]`, `tab`, `\`, `?`, `q`/`ctrl+c`. Reserved (not bound): `/`, `r`.
184
238
 
185
239
  ### Added — release infra
186
240
 
@@ -203,7 +257,9 @@ The v1 MVP, published as `@carlesandres/openmdr` on npm.
203
257
 
204
258
  Search, stdin, URL fetching, cross-file link following, `$EDITOR` hand-off, syntax highlighting, persistent config, OS-appearance auto-detect, single-binary distribution (issue [#2](https://github.com/carlesandres/openmdr/issues/2)), Homebrew tap. All tracked.
205
259
 
206
- [Unreleased]: https://github.com/carlesandres/house/compare/v0.4.5...HEAD
260
+ [Unreleased]: https://github.com/carlesandres/house/compare/v0.4.7...HEAD
261
+ [0.4.7]: https://github.com/carlesandres/house/compare/v0.4.6...v0.4.7
262
+ [0.4.6]: https://github.com/carlesandres/house/compare/v0.4.5...v0.4.6
207
263
  [0.4.5]: https://github.com/carlesandres/house/compare/v0.4.4...v0.4.5
208
264
  [0.4.4]: https://github.com/carlesandres/house/compare/v0.4.3...v0.4.4
209
265
  [0.4.3]: https://github.com/carlesandres/house/compare/v0.4.2...v0.4.3
package/README.md CHANGED
@@ -57,10 +57,10 @@ house [options] <path>
57
57
  | `--show <list>` | `""` | Reveal normally-skipped entries; comma-separated subset of `hidden`, `gitignored`. Use `--show ""` to clear. |
58
58
  | `--sort <mode>` | `dirs-first` | Sidebar order: `dirs-first` or `files-first` |
59
59
  | `--sidebar <mode>` | `auto` | Initial sidebar visibility: `auto`, `on`, or `off` |
60
+ | `--focus <mode>` | `filter` | Startup focus: `sidebar`, `reader`, or `filter`. `filter` opens the sidebar filter prompt immediately. |
60
61
  | `--serve` | off | Serve the given file as HTML in the browser (skips TUI) |
61
62
  | `--port <N>` | OS-assigned | Port for `--serve` |
62
63
  | `--no-mdx` | off | Exclude `.mdx` files from discovery |
63
- | `--start-in-filter` | off | Open the sidebar filter prompt on launch so you can type a query immediately. Press Esc to dismiss. |
64
64
  | `--no-update-check` | off | Suppress the "newer version available" check (also via `NO_UPDATE_NOTIFIER=1`) |
65
65
  | `--config-path` | — | Print the resolved config-file path and exit |
66
66
  | `-h`, `--help` | — | Show help and exit |
@@ -82,19 +82,19 @@ theme = "tokyonight"
82
82
  tone = "dark"
83
83
  mdx = true
84
84
  show = ["hidden", "gitignored"]
85
- start_in_filter = false
85
+ focus = "filter"
86
86
  ```
87
87
 
88
- Supported keys: `theme`, `tone`, `mdx`, `show`, `start_in_filter`.
88
+ Supported keys: `theme`, `tone`, `mdx`, `show`, `focus`.
89
89
 
90
90
  `show` is a list of normally-skipped categories to opt into. Known categories: `hidden` (dot-prefixed entries), `gitignored` (entries matched by a `.gitignore`). Default is the empty list. Hard skips (`node_modules`, `.git`, `.venv`) always apply.
91
91
 
92
92
  Precedence, highest to lowest:
93
93
 
94
- 1. CLI flags (`--theme`, `--tone`, `--no-mdx`, `--show`, `--start-in-filter`)
95
- 2. Env vars (`HOUSE_THEME`, `HOUSE_TONE`, `HOUSE_MDX`, `HOUSE_SHOW`, `HOUSE_START_IN_FILTER`)
94
+ 1. CLI flags (`--theme`, `--tone`, `--no-mdx`, `--show`, `--focus`)
95
+ 2. Env vars (`HOUSE_THEME`, `HOUSE_TONE`, `HOUSE_MDX`, `HOUSE_SHOW`, `HOUSE_FOCUS`)
96
96
  3. Config file
97
- 4. Built-in defaults (`opencode` / `dark` / `mdx = true` / `show = []` / `start_in_filter = false`)
97
+ 4. Built-in defaults (`opencode` / `dark` / `mdx = true` / `show = []` / `focus = "filter"`)
98
98
 
99
99
  `HOUSE_SHOW` takes a comma-separated list (`HOUSE_SHOW=hidden,gitignored`). For `show` specifically, each source completely replaces the next — categories don't merge across layers. Press `shift+a` in the TUI to round-trip between the configured set and the full vocabulary without editing config.
100
100
 
@@ -111,8 +111,8 @@ The file is optional — a missing file is fine. Invalid keys, unknown themes, o
111
111
  | `s` | Toggle sidebar visibility |
112
112
  | `?` | Show / dismiss help overlay |
113
113
  | `ctrl+p` | Command palette |
114
- | `o` | Open current file in browser as HTML |
115
- | `e` | Open current file in `$EDITOR` (`$VISUAL` takes precedence) |
114
+ | `O` | Open current file in browser as HTML |
115
+ | `E` | Open current file in `$EDITOR` (`$VISUAL` takes precedence) |
116
116
  | `t` | Next theme |
117
117
  | `T` | Previous theme |
118
118
  | `L` | Toggle dark / light tone |
@@ -149,6 +149,9 @@ The file is optional — a missing file is fine. Invalid keys, unknown themes, o
149
149
 
150
150
  Each theme supports dark and light tones. Cycle with `t` / `T`; toggle tone with `L`.
151
151
 
152
+ For the supported semantic theme tokens and their intended usage, see
153
+ [DESIGN.md §7.5](https://github.com/carlesandres/house/blob/main/DESIGN.md#75-theming).
154
+
152
155
  ## Inspiration
153
156
 
154
157
  - [glow](https://github.com/charmbracelet/glow) — render markdown on the CLI, with pizzazz
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlesandres/house",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "TUI-first markdown reader on opentui",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -56,6 +56,7 @@
56
56
  "@effect/atom-react": "4.0.0-beta.70",
57
57
  "@opentui/core": "0.2.15",
58
58
  "@opentui/react": "0.2.15",
59
+ "commander": "^14.0.3",
59
60
  "effect": "4.0.0-beta.70",
60
61
  "ignore": "^7.0.5",
61
62
  "marked": "^18.0.4",