@jc01rho/opencode-smart-title 0.3.9 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,18 +1,41 @@
1
1
  # Smart Title Plugin
2
2
 
3
- Auto-generates meaningful session titles for your OpenCode conversations using AI.
3
+ An OpenCode plugin that generates better session titles from conversation context and keeps the terminal window title in sync with session activity.
4
4
 
5
- It also syncs your terminal window title with the current project and session activity.
5
+ > [!WARNING]
6
+ > This project has only been tested in **Windows Terminal + WSL2 Ubuntu**.
7
+ > Terminal title updates are terminal-dependent, so behavior in other terminals, shells, tmux setups, or operating systems may differ.
6
8
 
7
- ## What It Does
9
+ ## What this plugin does
8
10
 
9
- - Watches your conversation and generates short, descriptive titles
10
- - Updates automatically when the session becomes idle (you stop typing)
11
- - Syncs the terminal title as `<project> : <status>`
12
- - Shows activity with emoji states like `🟢 running` and `💤 idle`
13
- - Avoids redundant title writes and repeated session lookups during event bursts
14
- - Uses OpenCode's unified auth - no API keys needed
15
- - Works with any authenticated AI provider
11
+ - Generates short, meaningful session titles with AI
12
+ - Triggers title generation when the root session becomes idle
13
+ - Skips AI title generation for subagent sessions
14
+ - Updates the terminal title to reflect current activity
15
+ - Shows terminal activity states as:
16
+ - `🟢 <project>` while the root session is active
17
+ - `🤖 <project>` when only subagents are active
18
+ - `💤 <project>` when the session is idle
19
+ - Avoids redundant terminal writes and duplicate in-flight title updates
20
+ - Uses OpenCode authentication flow instead of requiring separate API keys in this plugin
21
+
22
+ ## How it works
23
+
24
+ The main title update flow starts from the plugin event handler in `index.ts`.
25
+
26
+ 1. The plugin listens for `session.idle` events.
27
+ 2. When the idle threshold is reached, it collects smart conversation context.
28
+ 3. It generates a session title with the configured model or a fallback model.
29
+ 4. It updates the OpenCode session title.
30
+ 5. In parallel, it updates the terminal window title using OSC title sequences on a best-effort basis.
31
+
32
+ Because terminal title updates rely on escape sequences instead of a dedicated terminal plugin API, terminal support is not guaranteed outside the tested environment.
33
+
34
+ ## Requirements
35
+
36
+ - OpenCode with plugin support
37
+ - `@opencode-ai/plugin` version `>=0.13.7`
38
+ - An authenticated provider available through your OpenCode setup
16
39
 
17
40
  ## Installation
18
41
 
@@ -20,7 +43,7 @@ It also syncs your terminal window title with the current project and session ac
20
43
  npm install @jc01rho/opencode-smart-title
21
44
  ```
22
45
 
23
- Add to `~/.config/opencode/opencode.json`:
46
+ Then add the plugin to your OpenCode config:
24
47
 
25
48
  ```json
26
49
  {
@@ -30,45 +53,61 @@ Add to `~/.config/opencode/opencode.json`:
30
53
 
31
54
  ## Configuration
32
55
 
33
- The plugin supports both global and project-level configuration:
56
+ The plugin supports both global and project-level configuration.
57
+
58
+ - Global config: `~/.config/opencode/smart-title.jsonc`
59
+ - Project config: `.opencode/smart-title.jsonc`
34
60
 
35
- - **Global:** `~/.config/opencode/smart-title.jsonc` - Applies to all sessions
36
- - **Project:** `.opencode/smart-title.jsonc` - Overrides global config
61
+ If no global config exists yet, the plugin creates a default one on first run.
37
62
 
38
- The plugin creates a default global config on first run.
63
+ Project config overrides global config.
64
+
65
+ ### Example config
39
66
 
40
67
  ```jsonc
41
68
  {
42
69
  // Enable or disable the plugin
43
70
  "enabled": true,
44
71
 
45
- // Enable debug logging
72
+ // Write debug logs to ~/.config/opencode/logs/smart-title/YYYY-MM-DD.log
46
73
  "debug": false,
47
74
 
48
- // Optional: Use a specific model (otherwise uses smart fallbacks)
75
+ // Optional: force a specific model
76
+ // Format: "provider/model"
49
77
  // "model": "anthropic/claude-haiku-4-5",
50
78
 
51
- // Update title every N idle events (1 = every time you pause)
79
+ // Generate a title every N idle events
52
80
  "updateThreshold": 1
53
81
  }
54
82
  ```
55
83
 
56
- ## Terminal Title Behavior
84
+ ## Terminal title behavior
85
+
86
+ Terminal title sync is best-effort.
87
+
88
+ - The plugin writes OSC title sequences to an available TTY stream
89
+ - It includes tmux/screen-compatible wrapping when needed
90
+ - It sanitizes terminal title content before writing
91
+ - It skips writes when no TTY is available
92
+ - It avoids rewriting the same title repeatedly
93
+
94
+ This part of the plugin is the most environment-sensitive behavior in the project.
95
+ If you are not using Windows Terminal with WSL2 Ubuntu, expect possible differences.
57
96
 
58
- - Terminal title updates are best-effort and depend on your terminal supporting OSC title sequences
59
- - The plugin prefers TTY-safe writes and includes tmux/screen-compatible wrapping when needed
60
- - Running status is shown as `🟢`
61
- - Subagent-only activity while the main session is idle is shown as `🤖`
62
- - Idle status is shown as `💤`
97
+ ## Development
98
+
99
+ ```bash
100
+ npm run typecheck
101
+ npm run build
102
+ ```
63
103
 
64
- ## GitHub Actions Publish
104
+ ## Package contents
65
105
 
66
- This repository includes GitHub Actions for CI and npm publishing.
106
+ The published package includes:
67
107
 
68
- - `ci.yml` runs `npm run typecheck` and `npm run build` on pushes and pull requests to `master`
69
- - `publish.yml` runs on `v*` tag pushes and can also be started manually with a `tag_name` input; it checks that the tag matches `package.json.version`, creates the matching GitHub Release if needed, and then publishes to npm
70
- - Add an `NPM_TOKEN` repository secret in GitHub Actions settings before using the publish workflow
71
- - Keep the `package.json` version updated before pushing the `v*` tag that should create the GitHub Release and publish to npm
108
+ - `dist/`
109
+ - `README.md`
110
+ - `LICENSE`
72
111
 
73
112
  ## License
74
113
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAUjD,QAAA,MAAM,gBAAgB,EAAE,MAuNvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAUjD,QAAA,MAAM,gBAAgB,EAAE,MAuQvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -32,7 +32,11 @@ const SmartTitlePlugin = async (ctx) => {
32
32
  return undefined;
33
33
  }
34
34
  if (!("sessionID" in event.properties)) {
35
- return undefined;
35
+ if (!("info" in event.properties) || !event.properties.info || typeof event.properties.info !== "object") {
36
+ return undefined;
37
+ }
38
+ const { id } = event.properties.info;
39
+ return typeof id === "string" ? id : undefined;
36
40
  }
37
41
  const { sessionID } = event.properties;
38
42
  return typeof sessionID === "string" ? sessionID : undefined;
@@ -96,7 +100,9 @@ const SmartTitlePlugin = async (ctx) => {
96
100
  ? await getRootSessionID(client, sessionId, logger)
97
101
  : sessionId;
98
102
  if (isSubagent) {
99
- markSubagentActivity(rootSessionId, sessionId, status === "running");
103
+ if (status === "running") {
104
+ markSubagentActivity(rootSessionId, sessionId, true);
105
+ }
100
106
  }
101
107
  else {
102
108
  rootSessionStatuses.set(rootSessionId, status);
@@ -118,6 +124,31 @@ const SmartTitlePlugin = async (ctx) => {
118
124
  rootStatus: rootSessionStatuses.get(rootSessionId) ?? "idle"
119
125
  });
120
126
  };
127
+ const clearSubagentActivity = async (sessionId) => {
128
+ if (!sessionId) {
129
+ return;
130
+ }
131
+ const isSubagent = await isSubagentSession(client, sessionId, logger);
132
+ if (!isSubagent) {
133
+ return;
134
+ }
135
+ const rootSessionId = await getRootSessionID(client, sessionId, logger);
136
+ markSubagentActivity(rootSessionId, sessionId, false);
137
+ const effectiveStatus = getEffectiveTerminalStatus(rootSessionId);
138
+ if (lastTerminalStatusSync?.rootSessionId === rootSessionId &&
139
+ lastTerminalStatusSync.status === effectiveStatus) {
140
+ return;
141
+ }
142
+ updateTerminalTitle(ctx.directory, effectiveStatus, logger);
143
+ lastTerminalStatusSync = { rootSessionId, status: effectiveStatus };
144
+ logger.debug("terminal-title", "Cleared subagent activity from terminal state", {
145
+ sessionId,
146
+ rootSessionId,
147
+ effectiveStatus,
148
+ activeSubagentCount: activeSubagentsByRoot.get(rootSessionId)?.size ?? 0,
149
+ rootStatus: rootSessionStatuses.get(rootSessionId) ?? "idle"
150
+ });
151
+ };
121
152
  logger.info('plugin', 'Smart Title plugin initialized', {
122
153
  enabled: config.enabled,
123
154
  debug: config.debug,
@@ -130,6 +161,10 @@ const SmartTitlePlugin = async (ctx) => {
130
161
  return {
131
162
  event: async ({ event }) => {
132
163
  const sessionId = getEventSessionId(event);
164
+ if (event.type === "session.deleted") {
165
+ await clearSubagentActivity(sessionId);
166
+ return;
167
+ }
133
168
  const isLegacyIdleEvent = event.type === "session.status" &&
134
169
  event.properties.status?.type === "idle";
135
170
  const isIdleEvent = event.type === "session.idle" || isLegacyIdleEvent;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@jc01rho/opencode-smart-title",
4
- "version": "0.3.9",
4
+ "version": "0.3.10",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that automatically generates meaningful session titles using AI and smart context selection",
7
7
  "main": "./dist/index.js",