Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
281 commits
Select commit Hold shift + click to select a range
0cbc8e8
Merge branch 'feature/177-external-welcome-adapters' into tooling/178…
raiseCatError Oct 1, 2026
4434ce7
Use deterministic isolated launches in development tapes
raiseCatError Oct 1, 2026
56ba4bc
Add supported tool configuration review with native Starship adapter
raiseCatError Oct 1, 2026
f1d6899
Add optional tools browser and explicit installation previews
raiseCatError Oct 1, 2026
9f9ce08
Record v0.9 checkpoint and additive physical QA
raiseCatError Oct 1, 2026
78b9c41
Add consent-based mise project awareness and task discovery
raiseCatError Oct 1, 2026
0b0b2d0
Add named presets that launch new live shell sessions
raiseCatError Oct 1, 2026
389d87d
Record final v0.9 development acceptance and pending physical QA
raiseCatError Oct 1, 2026
eb9847e
Wait for frontend startup completion in cumulative preset acceptance
raiseCatError Oct 1, 2026
02cda58
Enforce preset storage byte limits before atomic replacement
raiseCatError Oct 1, 2026
d845e33
Introduce frontend terminal capabilities and bounded startup probes
raiseCatError Oct 1, 2026
a31e24e
Harden baseline rendering and add conservative color fallback
raiseCatError Oct 1, 2026
a0b4751
Isolate terminal configuration and bootstrap hints behind host adapters
raiseCatError Oct 1, 2026
4b8165d
Add capability profiles for iTerm2 Kitty and WezTerm
raiseCatError Oct 1, 2026
ae66506
Record v0.10 resource checkpoint after host profiles
raiseCatError Oct 1, 2026
4a0ba7b
Add capability-gated OSC 8 transcript presentation
raiseCatError Oct 1, 2026
4289b8b
Add deterministic CLI and TUI compatibility fixtures
raiseCatError Oct 1, 2026
ce0fdcc
Harden terminal mode replay and probe cleanup
raiseCatError Oct 1, 2026
d3e77f7
Document v0.10 development acceptance and remaining physical QA
raiseCatError Oct 1, 2026
d61607d
Bridge configured zsh completion knowledge into the owned composer
raiseCatError Oct 1, 2026
d80a165
Bound completion transport lifetime and clean hidden PTY groups
raiseCatError Oct 1, 2026
0df8cd6
Preserve the native completion query budget
raiseCatError Oct 2, 2026
dbec8aa
Improve native shell intelligence with live name metadata
raiseCatError Oct 1, 2026
00afcfd
Preserve authoritative shell names across generations and reattachment
raiseCatError Oct 2, 2026
f63f2f3
Wait for frontend ownership before compatibility assertions
raiseCatError Oct 2, 2026
be97375
Harden shell intelligence helper cleanup and completion insertion
raiseCatError Oct 2, 2026
1f09274
Retain managed shell cleanup ownership through exit and spawn failures
raiseCatError Oct 2, 2026
37244be
Throttle completion configuration reloads and isolate redraw regression
raiseCatError Oct 2, 2026
3eb4a2a
Document v0.11 cumulative acceptance and extensibility research
raiseCatError Oct 2, 2026
4a5ef78
Record final hardening evidence and completion reload limits
raiseCatError Oct 2, 2026
71472b7
feat: add composable Chroma treatments for owned surfaces
raiseCatError Oct 2, 2026
0815d90
feat: add bounded effects with shared presentation scheduling
raiseCatError Oct 2, 2026
45620a1
fix: harden presentation lifecycle and configuration preservation
raiseCatError Oct 2, 2026
cfc9c08
docs: record cumulative v0.12 acceptance and deferred physical QA
raiseCatError Oct 2, 2026
6fda729
feat: establish Linux zsh runtime and canonical CI baseline
raiseCatError Oct 2, 2026
78010a1
ci: avoid duplicate runs for stacked feature pushes
raiseCatError Oct 2, 2026
e433a8e
fix: harden zsh bootstrap paths and platform diagnostics
raiseCatError Oct 2, 2026
b34f7e3
fix: use absolute config defaults and flush fixture output
raiseCatError Oct 2, 2026
6dc303d
test: isolate Linux startup failures and preserve fixture exit status
raiseCatError Oct 2, 2026
4f74efe
ci: secure Ubuntu completion paths before zsh startup
raiseCatError Oct 2, 2026
2c280ca
fix: preserve commands submitted during slow shell bootstrap
raiseCatError Oct 2, 2026
0d086c1
test: await shell execution before detached output fixtures
raiseCatError Oct 2, 2026
48fdd15
fix: retain pre-bootstrap command state across reattach
raiseCatError Oct 2, 2026
3b0fc8a
test: verify detached retention independently of PTY chunks
raiseCatError Oct 2, 2026
e325bb3
docs: record v0.13 portability acceptance and deferred QA
raiseCatError Oct 2, 2026
b5de57b
fix: never overwrite unreadable settings and merge only changed value…
raiseCatError Oct 2, 2026
2f4b280
fix: recover preset storage lock from dead owners using pid ownership
raiseCatError Oct 2, 2026
87e3a83
fix: schedule presentation frames monotonically; make welcome test ch…
raiseCatError Oct 2, 2026
12ab1af
fix: classify notification slash commands semantically; track local m…
raiseCatError Oct 2, 2026
0792272
feat: optional Linux clipboard via wl-copy, xclip or xsel
raiseCatError Oct 2, 2026
dc398a4
fix: reconcile terminal modes when foreground ownership returns after…
raiseCatError Oct 2, 2026
2c3b705
fix: hold input and show explicit state while zsh startup is blocked …
raiseCatError Oct 2, 2026
e6bb9d0
fix: fill absent settings on partial saves; baseline hosts only recei…
raiseCatError Oct 2, 2026
ae45bbe
test: wait for the live session listing before inspecting startup fix…
raiseCatError Oct 2, 2026
6f761fe
docs: record v0.13 post-QA hardening acceptance
raiseCatError Oct 2, 2026
4f90c13
docs: explain the macOS skip count in post-QA acceptance
raiseCatError Oct 2, 2026
39923fc
fix: resolve adversarial startup and ownership blockers
raiseCatError Oct 2, 2026
38284c8
docs: record final adversarial hardening acceptance
raiseCatError Oct 2, 2026
2a4ca48
test: synchronize nested tmux startup and ownership return
raiseCatError Oct 2, 2026
a8937c6
fix: enable raw input before reattach terminal handoff
raiseCatError Oct 2, 2026
3b884a1
docs: finalize adversarial acceptance after reattach fix
raiseCatError Oct 2, 2026
71115f6
Merge pull request #290 from raiseCatError/docs/v013-adversarial-fina…
raiseCatError Oct 3, 2026
8baba22
Merge pull request #287 from raiseCatError/fix/v013-adversarial-harde…
raiseCatError Oct 3, 2026
404394b
Merge pull request #286 from raiseCatError/docs/v013-post-qa-acceptance
raiseCatError Oct 3, 2026
e97346e
Merge pull request #285 from raiseCatError/fix/v013-post-qa-hardening
raiseCatError Oct 3, 2026
edbc073
Merge pull request #283 from raiseCatError/docs/v013-cumulative-accep…
raiseCatError Oct 3, 2026
f436e81
Merge pull request #282 from raiseCatError/feature/v013-portability-h…
raiseCatError Oct 3, 2026
1edc150
Merge pull request #280 from raiseCatError/feature/v013-linux-baseline
raiseCatError Oct 3, 2026
27109b8
Merge pull request #278 from raiseCatError/docs/v012-cumulative-accep…
raiseCatError Oct 3, 2026
6eb971e
Merge pull request #277 from raiseCatError/feature/v012-presentation-…
raiseCatError Oct 3, 2026
febbf2b
Merge pull request #275 from raiseCatError/feature/v012-transient-eff…
raiseCatError Oct 3, 2026
8acece0
Merge pull request #273 from raiseCatError/feature/v012-chroma-treatm…
raiseCatError Oct 3, 2026
e10f6f1
Merge pull request #271 from raiseCatError/docs/v011-cumulative-accep…
raiseCatError Oct 3, 2026
32099ce
Merge pull request #269 from raiseCatError/feature/v011-shell-hardening
raiseCatError Oct 3, 2026
b30a263
Merge pull request #268 from raiseCatError/feature/v011-shell-intelli…
raiseCatError Oct 3, 2026
cace46d
Merge pull request #267 from raiseCatError/feature/v011-configured-co…
raiseCatError Oct 3, 2026
03c6568
Merge pull request #266 from raiseCatError/docs/v010-final-acceptance
raiseCatError Oct 3, 2026
67e05a2
Merge pull request #265 from raiseCatError/feature/v010-terminal-hard…
raiseCatError Oct 3, 2026
732edbe
Merge pull request #264 from raiseCatError/feature/v010-compatibility…
raiseCatError Oct 3, 2026
32eefc5
Merge pull request #263 from raiseCatError/feature/v010-osc8-links
raiseCatError Oct 3, 2026
b4de8dd
Merge pull request #262 from raiseCatError/feature/v010-host-profiles
raiseCatError Oct 3, 2026
a7544ad
Merge pull request #261 from raiseCatError/feature/v010-host-integration
raiseCatError Oct 3, 2026
7f87585
Merge pull request #260 from raiseCatError/feature/v010-baseline-host
raiseCatError Oct 3, 2026
cef80da
Merge pull request #259 from raiseCatError/feature/v010-host-capabili…
raiseCatError Oct 3, 2026
ada2be0
Merge pull request #258 from raiseCatError/docs/v09-final-acceptance
raiseCatError Oct 3, 2026
6952ef1
Merge pull request #257 from raiseCatError/feature/v09-session-presets
raiseCatError Oct 3, 2026
c884484
Merge pull request #256 from raiseCatError/feature/v09-mise-awareness
raiseCatError Oct 3, 2026
28f0b7a
Merge pull request #255 from raiseCatError/feature/v09-tools-browser
raiseCatError Oct 3, 2026
a1b4f7b
Merge pull request #254 from raiseCatError/feature/v09-supported-tool…
raiseCatError Oct 3, 2026
ad0399a
Merge pull request #183 from raiseCatError/tooling/178-vhs-demo-harness
raiseCatError Oct 3, 2026
c0b21eb
Merge pull request #181 from raiseCatError/feature/177-external-welco…
raiseCatError Oct 3, 2026
1d56667
Merge pull request #182 from raiseCatError/feature/176-linguist-langu…
raiseCatError Oct 3, 2026
971d273
Merge pull request #251 from raiseCatError/docs/v08-continuation-fina…
raiseCatError Oct 3, 2026
41a79aa
Merge pull request #250 from raiseCatError/test/208-fixture-writers
raiseCatError Oct 3, 2026
f62537e
Merge pull request #249 from raiseCatError/docs/v08-continuation-acce…
raiseCatError Oct 3, 2026
1708520
Merge pull request #248 from raiseCatError/fix/v08-continuation-harde…
raiseCatError Oct 3, 2026
a8bd35e
Merge pull request #247 from raiseCatError/test/208-tmpdir-hygiene
raiseCatError Oct 3, 2026
a120fcc
Merge pull request #246 from raiseCatError/feature/v08-command-notifi…
raiseCatError Oct 3, 2026
8d38e2d
Merge pull request #245 from raiseCatError/feature/v08-block-actions
raiseCatError Oct 3, 2026
072a474
Merge pull request #244 from raiseCatError/feature/v08-command-inspector
raiseCatError Oct 3, 2026
ae9b174
Merge pull request #241 from raiseCatError/docs/v08-command-intellige…
raiseCatError Oct 3, 2026
9a6ba4a
Merge pull request #240 from raiseCatError/fix/v08-intelligence-harde…
raiseCatError Oct 3, 2026
d61d144
Merge pull request #239 from raiseCatError/feature/152-safe-command-c…
raiseCatError Oct 3, 2026
941076f
Merge pull request #238 from raiseCatError/feature/147-directory-navi…
raiseCatError Oct 3, 2026
c431b94
Merge pull request #237 from raiseCatError/feature/145-picker-providers
raiseCatError Oct 3, 2026
2d63074
Merge pull request #236 from raiseCatError/feature/144-explicit-histo…
raiseCatError Oct 3, 2026
fd0db1c
Merge pull request #235 from raiseCatError/feature/143-command-history
raiseCatError Oct 3, 2026
3113c1c
Merge pull request #234 from raiseCatError/feature/141-completion-menu
raiseCatError Oct 3, 2026
75c0a59
Merge pull request #233 from raiseCatError/feature/140-structured-com…
raiseCatError Oct 3, 2026
401a95c
Merge pull request #193 from raiseCatError/tooling/155-performance-be…
raiseCatError Oct 3, 2026
2699735
feat: shell-style Up/Down history recall and a Zed host profile
raiseCatError Oct 3, 2026
1a1b850
docs: Zed as the primary development host; Up/Down history; host order
raiseCatError Oct 3, 2026
98ae5c1
feat: style profiles, new prompt styles and themes, vibrance and Chro…
raiseCatError Oct 3, 2026
9fb4890
feat: the /prompt summary names the active style, vibrance and Chroma
raiseCatError Oct 3, 2026
1fdabd3
docs: Native prompt customization axes, styles, Chroma and order of o…
raiseCatError Oct 3, 2026
28095e6
feat: Output folding in /transcript, sharing the Config setting
raiseCatError Oct 3, 2026
db4d31e
feat: curated in-place provider installs and restrained milestone eff…
raiseCatError Oct 3, 2026
9382553
test: provider install recipes resolve through the shared descriptor
raiseCatError Oct 3, 2026
47ca1d0
feat: /tools UI v2 with grouped categories and aligned status columns
raiseCatError Oct 3, 2026
34e1b7a
feat: completion UI v2 with semantic types, quiet ranking and descrip…
raiseCatError Oct 3, 2026
4151bfc
docs: v0.14 polish acceptance and pending physical QA checklist
raiseCatError Oct 3, 2026
04da944
chore: remove unused Ink, React and @types/react dependencies
raiseCatError Oct 3, 2026
a2ddfb4
feat: optional tool tiers, curated lifecycle metadata and opt-in upda…
raiseCatError Oct 3, 2026
0270651
feat: exact-match install offers for missing curated commands and com…
raiseCatError Oct 3, 2026
14de39c
feat: Setup Cat, a rerunnable non-destructive setup wizard
raiseCatError Oct 3, 2026
607a03e
feat: richer configured-zsh completion knowledge
raiseCatError Oct 3, 2026
b28196c
feat: theme families, Theme Studio, nested settings, cursor, prompt g…
raiseCatError Oct 3, 2026
c3ef0f3
fix: strip terminal controls from imported theme names
raiseCatError Oct 3, 2026
46b8e38
feat: idle visuals with Aurora Drift, deterministic scenes and a live…
raiseCatError Oct 3, 2026
06b57b1
docs: acceptance record and pending physical QA checklist for Setup C…
raiseCatError Oct 3, 2026
dba4329
feat: Full Chroma default, theme-aware UI chrome and Setup Cat previews
raiseCatError Oct 3, 2026
5454eda
feat: event-driven, color-aware light sweep (Shimmer)
raiseCatError Oct 3, 2026
3a70fd7
fix: Full Chroma physical QA — defaults, divider lines, theme text, l…
raiseCatError Oct 3, 2026
c348b39
docs: terminal-host independent positioning; group QA hosts instead o…
raiseCatError Oct 3, 2026
a36d360
fix: historical divider colors, slash-command recall and a Setup Cat …
raiseCatError Oct 3, 2026
04ec6b5
Merge pull request #302 from raiseCatError/feature/v015-chroma-polish
raiseCatError Oct 3, 2026
f50e58c
Sessions, agent activity, native history ranking and completion sources
raiseCatError Oct 3, 2026
c47bb08
Portability, uninstall, shell-environment and platform diagnostics
raiseCatError Oct 3, 2026
b5ad846
Capability-driven image surface with terminal-native fallback
raiseCatError Oct 3, 2026
531bc76
Real ShellAdapter with zsh, Fish and Bash backends and in-place switc…
raiseCatError Oct 3, 2026
ac1f5f6
Linux: freedesktop notifications via notify-send when available
raiseCatError Oct 3, 2026
5056a9b
Transcript find/filter and the HostActions editor bridge
raiseCatError Oct 3, 2026
8fd93eb
Settings: session notices, agent activity, default shell and Open wit…
raiseCatError Oct 3, 2026
0f81422
Docs: ShellAdapter, platforms/WSL, product boundary and HostActions, …
raiseCatError Oct 3, 2026
495e735
Fix fullscreen idle blinking: exclusive presentation ownership
raiseCatError Oct 3, 2026
3c63039
Docs: idle visuals ownership and focus semantics
raiseCatError Oct 3, 2026
4338343
Fix /open-diff palette parsing; v0.16 automated acceptance record
raiseCatError Oct 3, 2026
3e50fa2
Docs: accurate skip note in v0.16 acceptance
raiseCatError Oct 3, 2026
3e3b830
Ctrl+F find, multi-clause find/filter, two-row chrome, editor CLI dia…
raiseCatError Oct 3, 2026
ded0c5c
Service capability negotiation, generic shell handoffs, /exit and she…
raiseCatError Oct 3, 2026
e1f3cdc
/sessions: live-session view as a live-only mode of the /resume browser
raiseCatError Oct 3, 2026
fa320bf
Bundled completion catalog from withfig/autocomplete and carapace-bin
raiseCatError Oct 3, 2026
0eebab3
Handoff and switch ordering fixes, packaging test, audit corrections
raiseCatError Oct 3, 2026
8b489c9
Shell adapter lifecycle tests wait for the shell to exit before remov…
raiseCatError Oct 3, 2026
13f006d
Shell presentation: real backend in the welcome, fresh view on /shell…
raiseCatError Oct 3, 2026
2fa39b4
Current-shell prompt module with When different / Always / Never, in …
raiseCatError Oct 3, 2026
063a75b
Deliberate ordinary-shell handoff keeps the session: exact return, no…
raiseCatError Oct 3, 2026
bd9b9ec
NMSh-owned transcript selection that follows the wheel
raiseCatError Oct 3, 2026
843a04e
Ask: plain-English requests resolved to NMSh's own typed capabilities
raiseCatError Oct 3, 2026
918339d
Optional local understanding with one shared model service, and /prov…
raiseCatError Oct 3, 2026
99090be
Lavender Native: tinted text tiers and plum surfaces; syntax colors f…
raiseCatError Oct 4, 2026
cd3b9aa
Pin the official Qwen3 0.6B Q8_0 artifact as the recommended local model
raiseCatError Oct 4, 2026
5b282bd
Round-trip lifecycle test gives its ordinary zsh a .zshrc
raiseCatError Oct 4, 2026
d87da60
Round-trip test probes until the ordinary shell answers
raiseCatError Oct 4, 2026
40080a8
Lavender Native: optional Text tint and Background tint (both Off by …
raiseCatError Oct 4, 2026
c5ac1a9
Chroma motion: keep module text fixed while animated fills stay readable
raiseCatError Oct 4, 2026
128d03f
Panels: a guaranteed two-cell gutter between columns
raiseCatError Oct 4, 2026
0b61135
/prompt: one-row Chroma quick control in the theme gallery
raiseCatError Oct 4, 2026
a104831
Ask: deterministic NMSh product vocabulary with a coverage audit
raiseCatError Oct 4, 2026
f0c4ac4
Ask: Chat presentation, exchanges, bounded viewport; recorded Ask folds
raiseCatError Oct 4, 2026
24c100b
Ask: answer command questions from local command knowledge
raiseCatError Oct 4, 2026
d08e6c9
Ask: Git help from local facts, context-filled and shell-quoted
raiseCatError Oct 4, 2026
bfae075
Ask: continuous conversation, command blocks with Copy/Insert/Run, re…
raiseCatError Oct 4, 2026
630f2b1
Layout: Composer dividers On/Off
raiseCatError Oct 4, 2026
8f896dc
Ask: /guide, interactive /ask help and context-aware starters
raiseCatError Oct 4, 2026
e557a61
Ask: find, open and safely edit config files with verified plans
raiseCatError Oct 4, 2026
0fb2106
Ask: small verified repairs and formatter commands
raiseCatError Oct 4, 2026
61bd9cc
Ask: Homebrew as a first-class package manager
raiseCatError Oct 4, 2026
ac94e81
Ask: optional TLDR examples through tealdeer
raiseCatError Oct 4, 2026
91ad8b3
Test: size the capture-cleanup window from the helper's own deadline
raiseCatError Oct 4, 2026
170bff9
Agent sessions: harness registry, managed Claude Code sessions, obser…
raiseCatError Oct 4, 2026
3d5f3eb
Agent sessions in NMSh: /ai, the activity shelf, the agent view, /ses…
raiseCatError Oct 4, 2026
002a3ef
Ask input: a real editor shared with the composer, and Tab path compl…
raiseCatError Oct 4, 2026
8c8931b
Ask capabilities: files, terminal recipes, project scripts and manage…
raiseCatError Oct 4, 2026
5003472
Ask: failures from recorded facts, input dividers as a setting, scrol…
raiseCatError Oct 4, 2026
928319c
Local Intelligence: /llm, Qwen3 thinking policy, factual model choice…
raiseCatError Oct 4, 2026
4627cc2
Ask typo tolerance over known vocabulary only
raiseCatError Oct 4, 2026
3eab22a
Cursor & effects: portable engine, host-native Ghostty/Kitty integrat…
raiseCatError Oct 4, 2026
e5a4ba7
Motion: Command Transfer, Completion Materialization, Block Seal, Sem…
raiseCatError Oct 4, 2026
17ebc6c
/appearance becomes the visual hub; host opacity/blur kept
raiseCatError Oct 4, 2026
fb365ff
Session signatures: familiar names and a subtle accent for live and a…
raiseCatError Oct 4, 2026
c4cf53e
Add /doctor, failure explanation, paste preview guard and /watch
raiseCatError Oct 4, 2026
a6db8ef
Update /ask help and /guide; add Ask acceptance phrase tests
raiseCatError Oct 4, 2026
4b04351
/appearance Motion: live synthetic previews for each motion setting
raiseCatError Oct 4, 2026
023633b
Physical-QA follow-up: cursor, motion, paste review, notices and a co…
raiseCatError Oct 4, 2026
923ed23
Curate tools catalog discovery
raiseCatError Oct 4, 2026
b2f4958
Merge pull request #307 from raiseCatError/feature/tools-curated-disc…
raiseCatError Oct 4, 2026
8e5983f
Final pre-freeze polish: Clean/Rich motion, cursor effects, grouped C…
raiseCatError Oct 4, 2026
aeea586
Docs: reconcile roadmap, changelog and QA status with the v0.16 relea…
raiseCatError Oct 4, 2026
0b8125e
Merge pull request #303 from raiseCatError/feature/v016-platform-port…
raiseCatError Oct 4, 2026
55ca95d
Prepare v0.16.0 release
raiseCatError Oct 4, 2026
b81949b
Add contextual Relevant here, typed package-manager plans and bulk in…
raiseCatError Oct 4, 2026
d9707e7
Report integration activation from the running shell's name snapshot
raiseCatError Oct 4, 2026
1097d55
Add host launchers for iTerm2/WezTerm, Windows Terminal profile and d…
raiseCatError Oct 4, 2026
4f62cf3
Test that raw job-control, EOF and arrow bytes reach full-screen prog…
raiseCatError Oct 4, 2026
14ac975
Add automatic update preparation with Automatic/Notify only/Off modes…
raiseCatError Oct 4, 2026
8e4e66f
Add in-place kill with confirmation to the startup session pickers
raiseCatError Oct 4, 2026
383daff
CI: install Fish on Ubuntu and add a Fedora portability subset job
raiseCatError Oct 4, 2026
aafa96b
Document v0.17 support levels, roadmap and changelog
raiseCatError Oct 4, 2026
c9f7ffd
CI: give the Fedora subset lsof, ps and truecolor like the canonical …
raiseCatError Oct 4, 2026
f6c568b
Add screen-based savers: Black Hole, Fireworks, Circletastic and rais…
raiseCatError Oct 4, 2026
663694c
Cover the Run while busy setting in Setup
raiseCatError Oct 4, 2026
248ff29
Derive Random from the screensaver registry with natural loop boundaries
raiseCatError Oct 4, 2026
4852ada
CI: leave init-dependent clipboard process tests out of the Fedora co…
raiseCatError Oct 4, 2026
deecc07
Merge pull request #309 from raiseCatError/feature/v017-compatibility…
raiseCatError Oct 4, 2026
604e5f2
Speed up local verification and shard platform CI
raiseCatError Oct 4, 2026
e15f195
Merge pull request #312 from raiseCatError/feature/v017-compatibility…
raiseCatError Oct 4, 2026
488248c
Polish v0.17: active shell in Shell Environment, saver compositing, C…
raiseCatError Oct 4, 2026
7fcb41f
Anchor NMSh panels to the top in every composer position
raiseCatError Oct 4, 2026
3066c9a
Circletastic: per-circle rotation, catch-up, harvesting, collapse and…
raiseCatError Oct 4, 2026
ba35231
Black Hole: consume every captured glyph through one global gravity f…
raiseCatError Oct 4, 2026
907d3d6
Final v0.17 polish: panel position setting, clean Setup screen, orbit…
raiseCatError Oct 4, 2026
4a02520
Merge pull request #313 from raiseCatError/feature/v017-polish-qa
raiseCatError Oct 4, 2026
2f00f40
Native theme library, Theme Studio tabs, Prompt None, Theme Bridge an…
raiseCatError Oct 4, 2026
f87e25a
Theme library, importer, Theme Bridge, Prompt None and host semantics…
raiseCatError Oct 4, 2026
f396abe
Remove trailing blank line at end of themeImporters.ts
raiseCatError Oct 4, 2026
049e563
Theme Bridge: Helix target with a native palette-based theme and conf…
raiseCatError Oct 4, 2026
dacc801
Prompt None keeps the configured input marker; history stays promptless
raiseCatError Oct 4, 2026
02f4b8a
Theme Bridge QA pass: two-level policy, single panel, bat, file listi…
raiseCatError Oct 4, 2026
f4623ac
Providers inline panel, picker orientation, tmux Config Studio, tool …
raiseCatError Oct 4, 2026
df92d51
Harden dotfiles exact copy and tmux pane frontend; count only output …
raiseCatError Oct 5, 2026
fd351fb
Fix Bash file-listing wrapper parse failure; add real-shell and promp…
raiseCatError Oct 5, 2026
9673b2f
Shell frameworks and Oh My Posh provider, Keep Awake, Homebrew instal…
raiseCatError Oct 5, 2026
b2075db
Oh My Zsh guided steps download into your home, not a shared temp pat…
raiseCatError Oct 5, 2026
122e105
Add GitHub Sponsors funding metadata
raiseCatError Oct 5, 2026
f0cda67
Keep Awake hands the composer straight back and shows itself as compo…
raiseCatError Oct 5, 2026
431f043
Document current NMSh architecture for project owners
raiseCatError Oct 5, 2026
16c2d59
Docs pass and reproducible VHS demos; Prompt None wording; link ARCHI…
raiseCatError Oct 5, 2026
97efbef
Unify UI states and expand the NMSh showcase
raiseCatError Oct 5, 2026
98d66c2
Clarify terminal launch and login shell setup
raiseCatError Oct 5, 2026
e819206
Polish showcase chapters and vertical architecture diagrams
raiseCatError Oct 5, 2026
a520ee9
build shared local discovery foundation
raiseCatError Oct 5, 2026
6adfe85
fix(tools): use semantic selection surface for queued rows
raiseCatError Oct 5, 2026
704fd23
Checkpoint Context Engine and Context Rail UX
raiseCatError Oct 5, 2026
96825af
Document Context Engine architecture and integrate reel links
raiseCatError Oct 5, 2026
22e04d7
Make hosted reel the README hero
raiseCatError Oct 5, 2026
b0bfa08
Fix whitespace errors blocking release PR CI
raiseCatError Oct 5, 2026
542c057
Align prompt and Tools tests with current module and selection UI
raiseCatError Oct 5, 2026
de5a55c
Use an available shell in default indicator UX test
raiseCatError Oct 5, 2026
b42ac31
Prepare README and Homebrew release plumbing
raiseCatError Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: raiseCatError
30 changes: 30 additions & 0 deletions .github/actions/linux-shells/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Linux shell prerequisites
description: Install missing shell/build tools and secure system completion paths
runs:
using: composite
steps:
- shell: bash
run: |
# Ubuntu images supply native build tools; probe rather than reinstall.
packages=()
command -v zsh >/dev/null || packages+=(zsh)
command -v fish >/dev/null || packages+=(fish)
command -v g++ >/dev/null || packages+=(g++)
command -v make >/dev/null || packages+=(make)
command -v python3 >/dev/null || packages+=(python3)
if (( ${#packages[@]} )); then
sudo apt-get update
sudo apt-get install -y "${packages[@]}"
fi
insecure="$(zsh -fc 'autoload -Uz compaudit; compaudit' 2>/dev/null || true)"
while IFS= read -r path; do
[ -z "$path" ] && continue
case "$path" in
/usr/share/zsh|/usr/share/zsh/*|/usr/local/share/zsh|/usr/local/share/zsh/*)
sudo chown root:root "$path"
sudo chmod go-w "$path"
;;
*) echo "::error::Unexpected insecure completion path: $path"; exit 1 ;;
esac
done <<< "$insecure"
zsh -fc 'autoload -Uz compaudit; compaudit'
202 changes: 171 additions & 31 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
push:
branches: [master, dev]
pull_request:
branches: [master, dev]
workflow_dispatch:

permissions:
Expand All @@ -15,43 +14,184 @@ concurrency:
cancel-in-progress: true

jobs:
verify:
name: Verify
runs-on: macos-latest
changes:
name: Detect code changes
runs-on: ubuntu-24.04
outputs:
code: ${{ steps.changes.outputs.code }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: changes
env:
EVENT: ${{ github.event_name }}
BASE: ${{ github.event.pull_request.base.sha }}
HEAD: ${{ github.event.pull_request.head.sha }}
shell: bash
run: |
# Never path-skip the workflow: the final CI check must always exist.
# Push/manual runs always collect comprehensive evidence.
if [[ "$EVENT" != pull_request ]]; then
echo 'code=true' >> "$GITHUB_OUTPUT"
else
git diff --check "$BASE" "$HEAD"
git diff --no-renames --name-only -z "$BASE" "$HEAD" > /tmp/changed-files
python3 - <<'PYTHON' >> "$GITHUB_OUTPUT"
from pathlib import Path
files = Path('/tmp/changed-files').read_bytes().split(b'\0')
docs_only = all(f.startswith(b'docs/') or f.endswith(b'.md') for f in files if f)
print('code=' + str(not docs_only).lower())
PYTHON
fi

quality:
name: Quality (Node 26)
needs: changes
if: needs.changes.outputs.code == 'true'
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 26.x
cache: npm
- run: npm ci
- run: npm run build
- run: npm run typecheck:bench
- run: npm run test:fast
- run: git diff --check

tests:
name: Tests (${{ matrix.os }}, ${{ matrix.shard }}/2)
needs: changes
if: needs.changes.outputs.code == 'true'
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
node-version: [22.x, 26.x]

os: [macos-latest, ubuntu-24.04]
shard: [1, 2]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Typecheck
run: npm run typecheck
node-version: 26.x
cache: npm
- uses: ./.github/actions/linux-shells
if: runner.os == 'Linux'
- run: npm ci
# Built-launcher tests must execute rather than silently skip on fresh runners.
- run: npm run build
- run: npm test -- --shard=${{ matrix.shard }}/2 --test-timeout=120000
- name: Process leak check
if: always()
run: bash scripts/check-process-leaks.sh

- name: Run tests
run: npm test
node22:
name: Node 22 compatibility
needs: changes
if: needs.changes.outputs.code == 'true'
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22.x
cache: npm
- uses: ./.github/actions/linux-shells
- run: npm ci
- run: npm run build
- run: npm run test:node22 -- --test-timeout=120000
- name: Process leak check
if: always()
run: bash scripts/check-process-leaks.sh

- name: Verify working tree clean
run: git diff --check
timings:
name: Timing smoke (${{ matrix.os }}, Node 26)
if: github.event_name != 'pull_request'
runs-on: ${{ matrix.os }}
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-24.04]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 26.x
cache: npm
- uses: ./.github/actions/linux-shells
if: runner.os == 'Linux'
- run: npm ci
- run: npm run bench:smoke
- name: Process leak check
if: always()
run: bash scripts/check-process-leaks.sh

fedora:
name: Linux portability subset (Fedora)
if: github.event_name != 'pull_request'
runs-on: ubuntu-24.04
timeout-minutes: 15
container: fedora:42
steps:
- name: Install system prerequisites
run: dnf install -y git zsh fish gcc-c++ make python3 which lsof procps-ng
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22.x
cache: npm
- run: npm ci
- run: npm run build
- run: npm run test:fedora -- --test-timeout=120000
- name: Process leak check
if: always()
run: bash scripts/check-process-leaks.sh

status:
name: CI
if: always()
needs: [changes, quality, tests, node22, timings, fedora]
runs-on: ubuntu-24.04
steps:
- name: Require all applicable gates
env:
RESULTS: ${{ toJSON(needs) }}
run: |
if ps -axo pid,ppid,pgid,command | grep -E '[z]sh.*nmsh-semantic|[n]msh-semantic|viewportSyntax' | grep -v grep; then
echo "::error::NMSh helper or test processes leaked!"
exit 1
fi
echo "No processes leaked."
python3 - <<'PYTHON'
import json, os
jobs = json.loads(os.environ['RESULTS'])
code = jobs['changes']['outputs'].get('code')
required = ['changes']
if code == 'true':
required += ['quality', 'tests', 'node22']
elif code != 'false':
raise SystemExit('Missing change classification')
if '${{ github.event_name }}' != 'pull_request':
required += ['timings', 'fedora']
failed = [name for name in required if jobs[name]['result'] != 'success']
if failed:
raise SystemExit('Failed or skipped required gates: ' + ', '.join(failed))
print('All applicable CI gates passed')
PYTHON

# Preserve the exact check names required by the existing master ruleset.
required-checks:
name: Verify (${{ matrix.node-version }})
needs: status
if: always()
runs-on: ubuntu-24.04
strategy:
matrix:
node-version: [22.x, 26.x]
steps:
- name: Require aggregate CI success
env:
RESULT: ${{ needs.status.result }}
run: test "$RESULT" = success
68 changes: 68 additions & 0 deletions .github/workflows/homebrew-tap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Homebrew tap

# After a stable GitHub release is published, propose the matching formula
# update to raiseCatError/homebrew-tap as a pull request (reviewable; the
# tap's own CI installs and tests it). Never runs for prereleases, dev pushes
# or pull requests.
#
# Needs one secret, HOMEBREW_TAP_TOKEN: a fine-grained token limited to the
# raiseCatError/homebrew-tap repository with Contents and Pull requests write.

on:
release:
types: [published]

permissions:
contents: read

jobs:
formula:
# Distribution is not configured yet. Enable only in the separate Homebrew setup pass.
if: ${{ false }}
runs-on: ubuntu-latest
steps:
- name: Release facts
id: release
env:
TAG: ${{ github.event.release.tag_name }}
run: |
# Strict stable semver only: the value later reaches a URL and a sed expression.
printf '%s' "$TAG" | grep -Eqx 'v[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}' || { echo "Not a stable version tag."; exit 1; }
version="${TAG#v}"
url="https://github.com/${GITHUB_REPOSITORY}/archive/refs/tags/${TAG}.tar.gz"
curl -fsSL --retry 3 -o release.tar.gz "$url"
sha256="$(sha256sum release.tar.gz | cut -d' ' -f1)"
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "url=$url" >> "$GITHUB_OUTPUT"
echo "sha256=$sha256" >> "$GITHUB_OUTPUT"

- name: Check out the tap
uses: actions/checkout@v4
with:
repository: raiseCatError/homebrew-tap
token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
path: tap

- name: Propose the formula update
working-directory: tap
env:
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
VERSION: ${{ steps.release.outputs.version }}
URL: ${{ steps.release.outputs.url }}
SHA256: ${{ steps.release.outputs.sha256 }}
run: |
formula=Formula/nmsh.rb
if grep -q "^ url \"$URL\"$" "$formula"; then
# A published archive is immutable: never re-point the same version at different bytes.
grep -q "^ sha256 \"$SHA256\"$" "$formula" || { echo "The formula already names $URL with a different sha256. Publish a new patch release instead."; exit 1; }
echo "Formula already at $VERSION."; exit 0
fi
sed -i -E "s|^ url \".*\"$| url \"$URL\"|; s|^ sha256 \".*\"$| sha256 \"$SHA256\"|" "$formula"
git diff --stat
branch="nmsh-$VERSION"
git switch -c "$branch"
git -c user.name=J -c user.email=315733358+raiseCatError@users.noreply.github.com commit -am "nmsh $VERSION"
git push origin "$branch"
gh pr create --title "nmsh $VERSION" --body "Release: https://github.com/raiseCatError/notMyShell/releases/tag/v$VERSION
Archive: $URL
sha256: $SHA256"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
dist/
node_modules/
.DS_Store
*.swp
2 changes: 2 additions & 0 deletions .serena/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/cache
/project.local.yml
Loading
Loading