Date: 2025-07-10
Fork: possibilities/prise (upstream: rockorager/prise)
Integration branch: arthack-prod
Consumers: ~/code/dotfiles, ~/code/arthack
These are NOT fork-specific — they exist in rockorager/prise:
- Lua widget tree (
Stack,Box,Text,TextInput,Positioned,Padding,Column) prise.tiling(),ui.setup(), customupdate()/view()overrides- Session management (
list_sessions,switch_session,rename_session,get_session_name) prise.request_frame(),prise.create_text_input(),prise.spawn()- RPC:
spawn_pty(basic),list_ptys,close_pty,write_pty - Tab bar custom render, keybind system with leader keys
- All basic tiling actions (
split_*,focus_*,resize_*,toggle_zoom, etc.)
These branches expose APIs that dotfiles or arthack directly call.
| Branch | Fork API | Consumer | Usage |
|---|---|---|---|
feat/rename-tab |
rename_tab RPC method |
arthack prisectl |
prisectl rename-tab, jobctl auto-rename hook |
feat/tab-info-api |
ui.get_active_tab_info(), ui.get_focused_pane_index() |
dotfiles init.lua |
Close-tab/pane confirmation dialogs |
feat/input-forwarding |
ui.send_key_to_focused(), ui.send_mouse_to_focused() |
dotfiles init.lua |
Ctrl-U/D, leader-g/G, scroll forwarding |
feat/spawn-pty |
spawn_pty + session, tab, title, focus, cmd params |
arthack prisectl |
run-claude session/tab routing |
feat/expose-theme-api |
ui.get_theme() |
dotfiles init.lua |
Theme for custom tab bar and dialogs |
feat/expose-execute-action |
ui.execute_action(name) |
dotfiles init.lua |
Confirmation dialogs trigger close_tab/close_pane |
feature/wrap-focus-movement |
focus_{dir}_wrap actions |
dotfiles init.lua |
Wrapping focus movement keybinds |
feat/tab-bar-state |
Tab is_zoomed, pane_count metadata |
dotfiles init.lua |
Custom tab bar icons |
feat/mmap-screen-dump |
mmap files at /tmp/prise-screen-*, /tmp/prise-pty-* |
arthack prisectl |
dump-screen, dump-pty commands |
No new API surface, but fix real issues hit by the consumers.
| Branch | What it fixes | Why needed |
|---|---|---|
fix/tab-bar-click-regions |
Tab bar click targeting | Dotfiles uses custom tab bar |
fix/zoom-state |
Zoom state tracking | Dotfiles renders zoom icon in tab bar |
fix/deserialized-pane-id |
Pane ID on session restore | Prisectl uses PTY IDs |
fix/stale-session-attach |
Session attach freezing client | Session switching is core workflow |
fix/headless-rpc-crash |
Crash on headless RPC disconnect | Prisectl triggers headless PTYs |
| Branch | What it adds | Notes |
|---|---|---|
feat/detached-session |
prise.place_pty_in_session(), prise.create_session() |
Exposed in Lua but never called by dotfiles or arthack. Prisectl's spawn_pty uses the RPC-level session param instead. |
feat/nested-session-switch |
Nested session switch via RPC notification | Zero references in either consumer project. |
| Branch | What it does | Notes |
|---|---|---|
feat/keep-attached |
Defers session switch to next tick, fixes floating state | No references in dotfiles or arthack config. May be implicitly relied on but no explicit dependency. |
feat/session-switch-no-exec |
Session switch without exec jank | Improves switch_session behavior but no new API consumed. |
feat/multi-client-resize-policy |
Stops multi-client resize thrashing | Behavioral fix for multiple attached clients. No API. |
feat/resize-boundary-overlay |
Dims excess area when surface < window | Visual polish only. No config or API reference. |
| Branch | What it does | Notes |
|---|---|---|
refactor/test-helpers |
Extracts shared test mock helpers | Test infra only. Other fork branches depend on it for their tests, so removing it would break the branch stack. |
feat/vaxis-text-input |
Swaps TextInput to vaxis gap-buffer engine | Improves create_text_input() internals. Dotfiles uses TextInput (upstream API) but this changes the engine underneath. Implicitly consumed. |
fix/zz-lua-typecheck-tiling |
LuaLS @cast annotations, type narrowing |
Dev tooling. No runtime effect. |
Listed in config.yaml but the branch has been deleted from the remote. The two commits (683de6a clear cwd_dirty after successful dupe, b47b818 add errdefer for cwd dupe in listPtys) are currently stacked on top of fix/headless-rpc-crash, which makes that branch contain two unrelated fixes:
683de6a clear cwd_dirty after successful dupe ← listptys fix
b47b818 add errdefer for cwd dupe in listPtys ← listptys fix
a50aff8 prevent server crash on headless RPC client disconnect ← headless rpc fix
Action: Split the listptys commits back into a standalone fix/listptys-oom-leak branch based on upstream/main, push it, and reset fix/headless-rpc-crash to just a50aff8. Both branches stay in config.yaml as they are today.
| Category | Count | Branches |
|---|---|---|
| Consumed by dependents | 9 | rename-tab, tab-info-api, input-forwarding, spawn-pty, expose-theme-api, expose-execute-action, wrap-focus-movement, tab-bar-state, mmap-screen-dump |
| Bug fixes (runtime) | 5 | tab-bar-click-regions, zoom-state, deserialized-pane-id, stale-session-attach, headless-rpc-crash |
| Unconsumed APIs | 2 | detached-session, nested-session-switch |
| Behavioral (no API) | 4 | keep-attached, session-switch-no-exec, multi-client-resize-policy, resize-boundary-overlay |
| Internal/dev tooling | 3 | refactor/test-helpers, vaxis-text-input, fix/zz-lua-typecheck-tiling |
| Needs branch split | 1 | fix/listptys-oom-leak (commits on wrong branch) |
| Total in config | 24 | 14 have clear justification, 9 are questionable, 1 is broken |
fix/listptys-oom-leak— branch deleted, commits misplaced onfix/headless-rpc-crash(needs split)feat/detached-session— APIs exposed but never calledfeat/nested-session-switch— no consumer at allfix/zz-lua-typecheck-tiling— dev tooling only, no runtime effectfeat/resize-boundary-overlay— visual polish, no config referencefeat/multi-client-resize-policy— behavioral, no explicit dependencyfeat/keep-attached— behavioral, no explicit dependencyfeat/session-switch-no-exec— behavioral, no explicit dependency