@carlesandres/house 0.3.0 → 0.4.0

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
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to house (renamed from `openmdr` in 0.3.0) land here. Format follows
3
+ All notable changes to house land here. Format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
5
5
  follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) from
6
6
  v0.1.0 onward.
@@ -12,6 +12,57 @@ file is the curated, narrative version.
12
12
 
13
13
  ## [Unreleased]
14
14
 
15
+ ## [0.4.0] — 2026-05-21
16
+
17
+ ### Added
18
+
19
+ - Command palette v1: `ctrl+p` opens a modal palette with visible browser
20
+ commands derived from the keymap, including quit, sidebar toggle, help,
21
+ filter, open-in-browser, and theme controls.
22
+ - Palette search uses a small tiered scorer so empty queries stay in keymap
23
+ order while typed queries rank stronger title and word-boundary matches.
24
+
25
+ ### Fixed
26
+
27
+ - Reader scroll focus is suspended while overlays are open, preventing palette
28
+ arrow navigation from scrolling the markdown pane behind the modal.
29
+
30
+ ### Tests
31
+
32
+ - Added command-palette interaction coverage plus scroll regression checks.
33
+
34
+ ## [0.3.1] — 2026-05-17
35
+
36
+ Beta release gates (DESIGN §10.2) closed.
37
+
38
+ ### Fixed
39
+
40
+ - Language-tagged fenced code blocks no longer disappear while markdown
41
+ highlighting settles. `house` now uses opentui `0.2.12`, which includes
42
+ markdown/code-block rendering fixes, and the browser pane no longer
43
+ remounts markdown for one file while still holding another file's loaded
44
+ content.
45
+ - Strikethrough text (`~~strike~~`) now renders distinctly (dim + muted
46
+ foreground) instead of as plain body text. opentui's syntax-style API
47
+ has no true strikethrough attribute; this is the closest visual we can
48
+ produce, documented in DESIGN §5.1.
49
+
50
+ ### Changed
51
+
52
+ - Reduced re-renders and allocations in `Browser` / `Footer` hot paths.
53
+ - DESIGN §10.2 test gate rephrased to target the integration surface
54
+ house owns (the tree-sitter scope map) rather than re-testing opentui's
55
+ renderer; `test/theme-syntax-map.test.ts` enforces scope coverage for
56
+ every node type §5.1.3 promises.
57
+
58
+ ### Docs
59
+
60
+ - README embeds a VHS-generated demo gif; `tape/` holds the source
61
+ scripts.
62
+ - `CONTRIBUTING.md` documents the `captureSpans()` / `MockTreeSitterClient`
63
+ / `TestRecorder` testing patterns and the "before blaming `<markdown>`"
64
+ stale-watcher debugging checklist.
65
+
15
66
  ## [0.3.0] — 2026-05-16
16
67
 
17
68
  ### Changed
@@ -172,7 +223,9 @@ auto-detect, single-binary distribution (issue
172
223
  [#2](https://github.com/carlesandres/openmdr/issues/2)),
173
224
  Homebrew tap. All tracked.
174
225
 
175
- [Unreleased]: https://github.com/carlesandres/house/compare/v0.3.0...HEAD
226
+ [Unreleased]: https://github.com/carlesandres/house/compare/v0.4.0...HEAD
227
+ [0.4.0]: https://github.com/carlesandres/house/compare/v0.3.1...v0.4.0
228
+ [0.3.1]: https://github.com/carlesandres/house/compare/v0.3.0...v0.3.1
176
229
  [0.3.0]: https://github.com/carlesandres/house/compare/v0.2.1...v0.3.0
177
230
  [0.2.1]: https://github.com/carlesandres/house/compare/v0.2.0...v0.2.1
178
231
  [0.2.0]: https://github.com/carlesandres/house/compare/v0.1.0...v0.2.0
package/README.md CHANGED
@@ -1,15 +1,9 @@
1
1
  # house
2
2
 
3
- > **Renamed from `openmdr`.** The old npm package `@carlesandres/openmdr`
4
- > is deprecated; install `@carlesandres/house` instead. The CLI binary is
5
- > now `house` (was `openmdr`).
6
-
7
- A terminal markdown reader built on [opentui](https://github.com/nicholasgasior/opentui).
3
+ A terminal markdown reader built on [opentui](https://github.com/anomalyco/opentui).
8
4
  Point it at a directory and navigate its `.md` files without leaving the terminal.
9
5
 
10
- ```
11
- npx @carlesandres/house docs/
12
- ```
6
+ ![house demo](tape/house.gif)
13
7
 
14
8
  Requires [Bun](https://bun.sh) on `PATH`.
15
9
 
@@ -43,6 +37,34 @@ house [options] <path>
43
37
  |------|---------|-------------|
44
38
  | `--theme <name>` | `opencode` | Starting theme (see list below) |
45
39
  | `--tone dark\|light` | `dark` | Starting tone |
40
+ | `--config-path` | — | Print the resolved config-file path and exit |
41
+
42
+ ## Configuration
43
+
44
+ house reads optional defaults from a TOML file:
45
+
46
+ ```
47
+ $XDG_CONFIG_HOME/house/config.toml (defaults to ~/.config/house/config.toml)
48
+ ```
49
+
50
+ Run `house --config-path` to print the exact location.
51
+
52
+ ```toml
53
+ # ~/.config/house/config.toml
54
+ theme = "tokyonight"
55
+ tone = "dark"
56
+ ```
57
+
58
+ Precedence, highest to lowest:
59
+
60
+ 1. CLI flags (`--theme`, `--tone`)
61
+ 2. Env vars (`HOUSE_THEME`, `HOUSE_TONE`)
62
+ 3. Config file
63
+ 4. Built-in defaults (`opencode` / `dark`)
64
+
65
+ The file is optional — a missing file is fine. Invalid keys, unknown themes,
66
+ or malformed TOML fail loudly with a one-line error. Per-project config
67
+ (`.house/config.toml`) and additional keys are deferred.
46
68
 
47
69
  ## Keys
48
70
 
@@ -52,8 +74,9 @@ house [options] <path>
52
74
  |-----|--------|
53
75
  | `q` / `ctrl+c` | Quit |
54
76
  | `tab` | Toggle focus (sidebar ↔ reader) |
55
- | `\` | Toggle sidebar visibility |
77
+ | `s` | Toggle sidebar visibility |
56
78
  | `?` | Show / dismiss help overlay |
79
+ | `o` | Open current file in browser as HTML |
57
80
  | `t` | Next theme |
58
81
  | `T` | Previous theme |
59
82
  | `L` | Toggle dark / light tone |
@@ -64,12 +87,13 @@ house [options] <path>
64
87
  |-----|--------|
65
88
  | `j` / `↓` | Move selection down |
66
89
  | `k` / `↑` | Move selection up |
67
- | `J` | Jump down 10 |
68
- | `K` | Jump up 10 |
69
- | `space` / `ctrl+d` | Page down |
70
- | `b` / `ctrl+u` | Page up |
90
+ | `J` | Jump down 8 |
91
+ | `K` | Jump up 8 |
92
+ | `space` / `pagedown` / `ctrl+d` | Page down |
93
+ | `b` / `pageup` / `ctrl+u` | Page up |
71
94
  | `g` | First file |
72
95
  | `G` | Last file |
96
+ | `/` | Filter files (fuzzy match on path) |
73
97
  | `↵` / `→` / `l` | Open file (focus reader) |
74
98
 
75
99
  ### Reader
@@ -94,6 +118,12 @@ house [options] <path>
94
118
 
95
119
  Each theme supports dark and light tones. Cycle with `t` / `T`; toggle tone with `L`.
96
120
 
121
+ ## Inspiration
122
+
123
+ - [glow](https://github.com/charmbracelet/glow) — render markdown on the CLI, with pizzazz
124
+ - [ghui](https://github.com/kitlangton/ghui) — keyboard-driven terminal UI for GitHub pull requests
125
+ - [hunk](https://github.com/modem-dev/hunk) — review-first terminal diff viewer for agent-authored changesets
126
+
97
127
  ## License
98
128
 
99
129
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlesandres/house",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "TUI-first markdown reader on opentui",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -44,12 +44,14 @@
44
44
  "format": "oxfmt src/",
45
45
  "format:check": "oxfmt --check src/",
46
46
  "test": "bun test",
47
- "build:themes": "bun run dev/build-themes.ts"
47
+ "build:themes": "bun run dev/build-themes.ts",
48
+ "repro:pty-codeblocks": "bun run dev/repro-pty-codeblocks.ts",
49
+ "prepare": "git config core.hooksPath .githooks 2>/dev/null || true"
48
50
  },
49
51
  "dependencies": {
50
52
  "@effect/atom-react": "4.0.0-beta.59",
51
- "@opentui/core": "0.2.1",
52
- "@opentui/react": "0.2.1",
53
+ "@opentui/core": "0.2.12",
54
+ "@opentui/react": "0.2.12",
53
55
  "effect": "4.0.0-beta.59",
54
56
  "ignore": "^7.0.5",
55
57
  "marked": "^18.0.3",