Date: 2025-07-10
Fork: possibilities/prise (upstream: rockorager/prise)
Integration branch: arthack-prod
Consumers: ~/code/dotfiles, ~/code/arthack
| type: custom-title | |
| customTitle: possibilities--prise-52c8eb3c | |
| sessionId: 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d | |
| --- | |
| type: permission-mode | |
| permissionMode: plan | |
| sessionId: 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d | |
| --- | |
| type: file-history-snapshot | |
| messageId: 87d3174b-b5d8-4a2e-8f19-3ad19d399f20 |
| id: 499589 | |
| ts: 1775612687.7028081 | |
| session_id: 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d | |
| hook_event: UserPromptSubmit | |
| event_type: user_prompt_submit | |
| tool_name: null | |
| matcher: null | |
| cwd: /Users/mike/src/possibilities--prise | |
| permission_mode: plan | |
| agent_id: null |
| id: 499526 | |
| ts: 1775612141.306039 | |
| session_id: 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d | |
| hook_event: SessionStart | |
| event_type: session_start | |
| tool_name: null | |
| matcher: null | |
| cwd: /Users/mike/src/possibilities--prise | |
| permission_mode: null | |
| agent_id: null |
jobctl is a read-only query tool for discovering and inspecting running Claude Code sessions ("jobs"). It has two commands: list-jobs and show-job.
jobctl reads from a single SQLite database: ~/.local/state/claude/hooks-tracker.db. This database is populated by Claude Code's hook system (via hookctl), not by jobctl itself. jobctl never writes to it.
Key tables:
jobs— job_id, name, created_at, tmux coordinates, state
PR #114 swaps the dialog text input from a simple ArrayList-backed implementation to vaxis's gap-buffer TextInput. The swap changes three public API contracts. This document analyzes each change, explains why it happened, and asks whether there's a better way.
Before: text() returned []const u8 — a direct slice of the internal ArrayList buffer. Zero allocation, couldn't fail.
After: text() returns ![]const u8 — allocates a new buffer and copies both halves of the gap buffer into it. Callers must try and defer allocator.free(...).
The core plug system is a 10-commit plan covering registration, event forwarding, call routing, timeouts, Lua API, CLI, and docs. These three items are genuinely independent follow-ups — no hanging wires if deferred.
Lua API to spawn and manage plug processes directly from config, with auto-restart.
| # feat/detached-session | |
| Create sessions without attaching a client (`prise -d -s <name>`). Headless workflows need to prepare a session before any terminal connects. Known bug: `spawnDetachedPty()` sends rows/cols/attach but no environment -- server falls back to the service manager's minimal env. | |
| No PR. PR-ready after env bug fix. |