Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/session-rename/README.md

Raw
Rendered preview

session-rename

Automatic short session names for Pi.

Install / load

Loaded through the root pi-ext package. See root README.

Commands / tools / settings

  • Command: /session-rename [name]
    • no args: force a model pass to generate/refine the session name
    • with args: set the exact session name and lock it as user/manual
  • Tools: none
  • Settings: session-rename.idleDelayMs, see Settings
  • Hooks: session_start, turn_end, turn_start, input, agent_start, session_shutdown

Behavior

  • Generates 1–3 word session names from current branch activity.
  • Runs 700 ms after session load and session-rename.idleDelayMs (default 10 s) after turn end.
  • Cancels pending work when input, turn, or agent activity starts.
  • Requires meaningful branch activity: user text plus assistant text or tool calls.
  • Uses current model through Pi model registry; skips when no model or API key exists.
  • Preserves manual names. Automatic renames stop after user-set or cleared names.
  • Refines only extension-generated names.
  • Cooldown grows with user turns: 1 turn early, then 2, then 5.
  • Records session-rename custom entries for auto-title revisions and user locks.
  • Builds naming context from current name, initial user goals, recent summaries, recent messages, and tool calls.
  • Normalizes generated names: lowercase words, no punctuation, max 3 words.
  • Rejects generic one-word names, tiny edit-distance changes, and previous auto names.
  • Shows temporary UI status while naming. Manual command generation notifies on rename.

Settings

session-rename.idleDelayMs sets the idle delay in milliseconds between turn end and the naming pass. Env var: PI_SESSION_RENAME_IDLE_DELAY_MS. Default: 10000. Valid range: integer from 0 to 2147483647. Precedence: env, trusted project .pi/settings.json, user ~/.pi/agent/settings.json, default. Project settings apply only when the project is trusted. Settings files need a JSON number; numeric strings are accepted only from the env var. Resolved once per session at session_start. An invalid value shows one warning naming the source and uses the default 10000; it never falls through to a lower-priority source.

{ "session-rename": { "idleDelayMs": 5000 } }

Debug

Opt in through debug configuration. Safe events: session.start, session.shutdown, name.generate.start, name.generate.finish, name.generate.error.

# session-rename

Automatic short session names for Pi.

## Install / load

Loaded through the root pi-ext package.
See [root README](../../README.md).

## Commands / tools / settings

- Command:
  `/session-rename [name]`
  - no args:
    force a model pass to generate/refine the session name
  - with args:
    set the exact session name and lock it as user/manual
- Tools:
  none
- Settings:
  `session-rename.idleDelayMs`, see [Settings](#settings)
- Hooks:
  `session_start`, `turn_end`, `turn_start`, `input`, `agent_start`,
  `session_shutdown`

## Behavior

- Generates 1–3 word session names from current branch activity.
- Runs 700 ms after session load and `session-rename.idleDelayMs` (default 10 s) after turn end.
- Cancels pending work when input, turn, or agent activity starts.
- Requires meaningful branch activity:
  user text plus assistant text or tool calls.
- Uses current model through Pi model registry; skips when no model or API key
  exists.
- Preserves manual names.
  Automatic renames stop after user-set or cleared names.
- Refines only extension-generated names.
- Cooldown grows with user turns:
  1 turn early, then 2, then 5.
- Records `session-rename` custom entries for auto-title revisions and user
  locks.
- Builds naming context from current name, initial user goals, recent summaries,
  recent messages, and tool calls.
- Normalizes generated names:
  lowercase words, no punctuation, max 3 words.
- Rejects generic one-word names, tiny edit-distance changes, and previous auto
  names.
- Shows temporary UI status while naming.
  Manual command generation notifies on rename.

## Settings

`session-rename.idleDelayMs` sets the idle delay in milliseconds between turn end and the naming pass.
Env var: `PI_SESSION_RENAME_IDLE_DELAY_MS`.
Default: `10000`.
Valid range: integer from `0` to `2147483647`.
Precedence: env, trusted project `.pi/settings.json`, user `~/.pi/agent/settings.json`, default.
Project settings apply only when the project is trusted.
Settings files need a JSON number; numeric strings are accepted only from the env var.
Resolved once per session at `session_start`.
An invalid value shows one warning naming the source and uses the default `10000`; it never falls through to a lower-priority source.

```json
{ "session-rename": { "idleDelayMs": 5000 } }
```

## Debug

Opt in through [debug configuration](../DEBUG.md).
Safe events: `session.start`, `session.shutdown`, `name.generate.start`, `name.generate.finish`, `name.generate.error`.