@carlesandres/house 0.4.7 → 0.4.8
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 +27 -3
- package/README.md +21 -9
- package/package.json +1 -1
- package/src/Browser.tsx +235 -160
- package/src/CommandPalette.tsx +78 -14
- package/src/Footer.tsx +41 -33
- package/src/Header.tsx +4 -1
- package/src/StatusPopover.tsx +189 -0
- package/src/cli/argv.ts +12 -5
- package/src/commands/buildCommands.ts +22 -33
- package/src/commands/score.ts +1 -1
- package/src/discovery/walk.ts +20 -3
- package/src/index.tsx +120 -155
- package/src/keymap/browser.ts +14 -20
- package/src/keymap/keymap.ts +4 -4
- package/src/layout/sidebarEmptyState.ts +7 -0
- package/src/markdown/frontmatter.ts +62 -0
- package/src/theme/resolve.ts +1 -1
- package/src/theme/themes/aura.json +1 -1
- package/src/theme/themes/carbonfox.json +1 -1
- package/src/theme/themes/lucent-orng.json +4 -4
- package/src/theme/themes/nightowl.json +2 -2
- package/src/theme/themes/orng.json +2 -2
- package/src/theme/themes/solarized.json +6 -2
- package/src/theme/themes/vesper.json +2 -2
- package/src/tips.ts +0 -5
- package/src/update/check.ts +1 -1
- package/src/update/runtime.ts +1 -1
- package/src/HelpOverlay.tsx +0 -148
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,29 @@ The publish workflow (`.github/workflows/publish.yml`) runs on the `release: pub
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.4.8] — 2026-06-02
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Discovery scan failures now render short, user-facing footer status instead of raw Effect diagnostics.
|
|
14
|
+
- Partial discovery warnings now show a compact footer trigger that opens root-relative skipped-directory details.
|
|
15
|
+
- Sidebar empty states now distinguish empty roots from zero-match filters with specific copy.
|
|
16
|
+
- Pane frames stay neutral while selected sidebar rows remain highlighted even when the sidebar is inactive.
|
|
17
|
+
|
|
18
|
+
### Docs
|
|
19
|
+
|
|
20
|
+
- Corrected usage docs and `--help` text: directory browsing is controlled by `--root` / `defaultRoot`; the positional path now seeds the initial browser filter query.
|
|
21
|
+
- Refreshed unified-browser docs, roadmap state, and demo tapes after the single Browser model landed.
|
|
22
|
+
- Added ADR 0001 documenting the decision to keep the current `marked`-based browser preview instead of adopting Streamdown for now.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Removed the separate file-target launch path: non-serve launches always open the browser over the discovery root, with any positional path applied as the initial sidebar filter.
|
|
27
|
+
|
|
28
|
+
### Tests
|
|
29
|
+
|
|
30
|
+
- Added reusable status popover coverage for parent-owned panels, long-line wrapping, and small-viewport clipping.
|
|
31
|
+
|
|
9
32
|
## [0.4.7] — 2026-05-27
|
|
10
33
|
|
|
11
34
|
### Added
|
|
@@ -128,7 +151,7 @@ The publish workflow (`.github/workflows/publish.yml`) runs on the `release: pub
|
|
|
128
151
|
|
|
129
152
|
### Added
|
|
130
153
|
|
|
131
|
-
- Header chrome: borderless one-row identity strip above the panes carries the ⌂ brand mark and running version. Renders in both directory
|
|
154
|
+
- Header chrome: borderless one-row identity strip above the panes carries the ⌂ brand mark and running version. Renders in the Browser UI for both directory and named-file launches. Hidden on terminals shorter than 20 rows so tight panes keep the reader breathable.
|
|
132
155
|
|
|
133
156
|
## [0.4.0] — 2026-05-21
|
|
134
157
|
|
|
@@ -202,7 +225,7 @@ Beta release gates (DESIGN §10.2) closed.
|
|
|
202
225
|
- **`--tone dark|light`** flag to select the variant of a theme. Defaults to `dark`. Not all themes have a well-tuned light variant; quality is best-effort for those.
|
|
203
226
|
- **JSON theme format**: each theme is a `{defs, theme: {dark, light}}` file validated against `schema/openmdr-theme.schema.json`. The format mirrors opencode's TUI theme shape; `defs` supports variable substitution.
|
|
204
227
|
- **`dev/build-themes.ts`**: fetches themes from the opencode GitHub API, strips diff tokens, resolves variables, and regenerates `src/theme/loader.ts`. Supports `GITHUB_TOKEN` and `--dry-run`. Not shipped in the npm package.
|
|
205
|
-
- **Runtime theme cycling**: press `t` / `T` to step forward / backward through all themes without restarting. Press `L` (shift+l) to toggle between dark and light tone. Works in both
|
|
228
|
+
- **Runtime theme cycling**: press `t` / `T` to step forward / backward through all themes without restarting. Press `L` (shift+l) to toggle between dark and light tone. Works in the Browser UI for both directory and named-file launches. Theme changes take effect immediately; syntax highlighting rebuilds with the new palette.
|
|
206
229
|
|
|
207
230
|
### Changed
|
|
208
231
|
|
|
@@ -257,7 +280,8 @@ The v1 MVP, published as `@carlesandres/openmdr` on npm.
|
|
|
257
280
|
|
|
258
281
|
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.
|
|
259
282
|
|
|
260
|
-
[Unreleased]: https://github.com/carlesandres/house/compare/v0.4.
|
|
283
|
+
[Unreleased]: https://github.com/carlesandres/house/compare/v0.4.8...HEAD
|
|
284
|
+
[0.4.8]: https://github.com/carlesandres/house/compare/v0.4.7...v0.4.8
|
|
261
285
|
[0.4.7]: https://github.com/carlesandres/house/compare/v0.4.6...v0.4.7
|
|
262
286
|
[0.4.6]: https://github.com/carlesandres/house/compare/v0.4.5...v0.4.6
|
|
263
287
|
[0.4.5]: https://github.com/carlesandres/house/compare/v0.4.4...v0.4.5
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ⌂ house
|
|
2
2
|
|
|
3
|
-
A terminal markdown reader and navigator — themable and configurable, with a keyboard-driven modern UI.
|
|
3
|
+
A terminal markdown reader and navigator — themable and configurable, with a keyboard-driven modern UI. Browse a directory of `.md` files without leaving the terminal.
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -42,10 +42,21 @@ bun add -g @carlesandres/house
|
|
|
42
42
|
## Usage
|
|
43
43
|
|
|
44
44
|
```
|
|
45
|
-
house [options]
|
|
45
|
+
house [query] [options]
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
By default, `house` opens the browser over the configured discovery root: the current directory, or the git root when `defaultRoot = "git"` is configured. Use `--root <dir>` to browse a specific directory.
|
|
49
|
+
|
|
50
|
+
`[query]` seeds the initial sidebar filter query. It can be a filename, a relative path, or any path fragment you want to match. It does **not** set the discovery root; use `--root <dir>` for that.
|
|
51
|
+
|
|
52
|
+
Examples:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
house # browse the configured discovery root
|
|
56
|
+
house README.md # browse with README.md preloaded as the sidebar filter
|
|
57
|
+
house --root docs # browse docs/ as the discovery root
|
|
58
|
+
house --serve README.md
|
|
59
|
+
```
|
|
49
60
|
|
|
50
61
|
### Options
|
|
51
62
|
|
|
@@ -55,10 +66,11 @@ house [options] <path>
|
|
|
55
66
|
| `--tone dark\|light` | `dark` | Starting tone |
|
|
56
67
|
| `--width <N>` | — | Cap rendered markdown width at N columns |
|
|
57
68
|
| `--show <list>` | `""` | Reveal normally-skipped entries; comma-separated subset of `hidden`, `gitignored`. Use `--show ""` to clear. |
|
|
69
|
+
| `--root <dir>` | current directory | Discovery root to walk; overrides `defaultRoot` config/env |
|
|
58
70
|
| `--sort <mode>` | `dirs-first` | Sidebar order: `dirs-first` or `files-first` |
|
|
59
71
|
| `--sidebar <mode>` | `auto` | Initial sidebar visibility: `auto`, `on`, or `off` |
|
|
60
72
|
| `--focus <mode>` | `filter` | Startup focus: `sidebar`, `reader`, or `filter`. `filter` opens the sidebar filter prompt immediately. |
|
|
61
|
-
| `--serve` | off | Serve the
|
|
73
|
+
| `--serve` | off | Serve the positional path as HTML in the browser (skips TUI) |
|
|
62
74
|
| `--port <N>` | OS-assigned | Port for `--serve` |
|
|
63
75
|
| `--no-mdx` | off | Exclude `.mdx` files from discovery |
|
|
64
76
|
| `--no-update-check` | off | Suppress the "newer version available" check (also via `NO_UPDATE_NOTIFIER=1`) |
|
|
@@ -83,18 +95,19 @@ tone = "dark"
|
|
|
83
95
|
mdx = true
|
|
84
96
|
show = ["hidden", "gitignored"]
|
|
85
97
|
focus = "filter"
|
|
98
|
+
defaultRoot = "cwd" # or "git"
|
|
86
99
|
```
|
|
87
100
|
|
|
88
|
-
Supported keys: `theme`, `tone`, `mdx`, `show`, `focus`.
|
|
101
|
+
Supported keys: `theme`, `tone`, `mdx`, `show`, `focus`, `defaultRoot`.
|
|
89
102
|
|
|
90
103
|
`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
104
|
|
|
92
105
|
Precedence, highest to lowest:
|
|
93
106
|
|
|
94
|
-
1. CLI flags (`--theme`, `--tone`, `--no-mdx`, `--show`, `--focus`)
|
|
95
|
-
2. Env vars (`HOUSE_THEME`, `HOUSE_TONE`, `HOUSE_MDX`, `HOUSE_SHOW`, `HOUSE_FOCUS`)
|
|
107
|
+
1. CLI flags (`--theme`, `--tone`, `--no-mdx`, `--show`, `--focus`, `--root`)
|
|
108
|
+
2. Env vars (`HOUSE_THEME`, `HOUSE_TONE`, `HOUSE_MDX`, `HOUSE_SHOW`, `HOUSE_FOCUS`, `HOUSE_DEFAULT_ROOT`)
|
|
96
109
|
3. Config file
|
|
97
|
-
4. Built-in defaults (`opencode` / `dark` / `mdx = true` / `show = []` / `focus = "filter"`)
|
|
110
|
+
4. Built-in defaults (`opencode` / `dark` / `mdx = true` / `show = []` / `focus = "filter"` / `defaultRoot = "cwd"`)
|
|
98
111
|
|
|
99
112
|
`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
113
|
|
|
@@ -109,7 +122,6 @@ The file is optional — a missing file is fine. Invalid keys, unknown themes, o
|
|
|
109
122
|
| `q` / `ctrl+c` | Quit |
|
|
110
123
|
| `tab` | Toggle focus (sidebar ↔ reader) |
|
|
111
124
|
| `s` | Toggle sidebar visibility |
|
|
112
|
-
| `?` | Show / dismiss help overlay |
|
|
113
125
|
| `ctrl+p` | Command palette |
|
|
114
126
|
| `O` | Open current file in browser as HTML |
|
|
115
127
|
| `E` | Open current file in `$EDITOR` (`$VISUAL` takes precedence) |
|