Skip to content

Instantly share code, notes, and snippets.

View possibilities's full-sized avatar

Mike Bannister possibilities

  • AI Life
  • Portland East
  • 23:32 (UTC -04:00)
View GitHub Profile
@possibilities
possibilities / 1-UserPromptSubmit.yaml
Created April 8, 2026 01:45
New hook events for Claude Code session 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d
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
@possibilities
possibilities / 1-SessionStart.yaml
Created April 8, 2026 01:38
Hook events for Claude Code session 52c8eb3c-7f09-4fec-b474-6a8ffe1c119d
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
@possibilities
possibilities / jobctl-explained.md
Created April 8, 2026 00:09
How jobctl works — architecture, tmux integration, and prise status

How jobctl Works

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.

Data Source

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
@possibilities
possibilities / prise-pr-next-steps.md
Created April 7, 2026 20:42
Prise fork PR submission plan — next steps for upstream contributions

Prise Fork: PR Submission Plan

2026-04-07

Gate: all 4 open PRs (#106, #110, #112, #114) merge or get positive signal before starting day 1.


Current Queue (waiting on maintainer)

@possibilities
possibilities / text-api-analysis.md
Created April 7, 2026 17:43
PR #114 TextInput API contract changes — analysis

TextInput API contract changes — analysis

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.

1. text() — infallible → failable

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(...).

Branches Without PRs (by lines changed)

Branch Added Deleted Total
arthack-prod 7,120 556 7,676
feat/rename-tab 1,241 94 1,335
fix/stale-session-attach 909 177 1,086
feat/spawn-pty 829 98 927
fix/crash-context 640 12 652
fix/tab-bar-click-regions 351 147 498
@possibilities
possibilities / prise-plug-deferred-briefs.md
Created April 5, 2026 17:55
Prise plug system — deferred work briefs

Prise Plug System — Deferred Work

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.

Briefs

1. Managed plug lifecycle (spawn_plug)

Lua API to spawn and manage plug processes directly from config, with auto-restart.

@possibilities
possibilities / gist:2c970fcaecbd9aa6cf24ed8d3dae3dc6
Created April 4, 2026 20:15
feat/detached-session — brief for upstream PR
# 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.
@possibilities
possibilities / prise.md
Last active April 4, 2026 13:56
/prise command template for prise fork maintenance
name prise
description Load prise fork development context for Zig/Lua work
argument-hint
instructions
allowed-tools Bash(pairctl:*), Bash(knowctl:*), Bash(summaryctl:*), Bash(claudectl:*), Bash(zigdoc:*), Bash(prise-build:*), Bash(zig:*)

{% set include_web_tools = false %} {% include '_partials/core.md.tmpl' %} {% include '_partials/tool-summaries.md.tmpl' %} {% include '_partials/dev-env.md.tmpl' %}

@possibilities
possibilities / 67fff5f1.md
Created April 3, 2026 01:53
Make an iterable document that builds prisectl...
session-id 67fff5f1-b19e-44e4-8bc7-55910fed2e04

User

/arthack:ask

Can I write shell scripts that interact with prise like I can for tmux?