liteagents 2.14.1 → 2.15.1

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/CHANGELOG.md CHANGED
@@ -15,6 +15,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
15
  - Enhanced testing capabilities
16
16
  - Performance optimizations
17
17
 
18
+ ## [2.15.1] - 2026-07-24
19
+
20
+ ### Security
21
+
22
+ - **Bumped the bundled `live-canvas-channel` plugin's transitive deps to patched versions.** `fast-uri` 3.1.2 → 3.1.4 (clears a **high**-severity host-confusion advisory), `body-parser` 2.2.2 → 2.3.0 (DoS via a silently-disabled size limit), and `hono` 4.12.25 → 4.12.31 (moderate). These come in via the plugin's `@modelcontextprotocol/sdk` and ship in the tarball's `package-lock.json`. All sit on unused transport paths — the plugin server is stdio (`StdioServerTransport`) + raw `node:http`, with no `@hono/node-server`/express/Streamable-HTTP surface — so this is defense-in-depth hardening of the bundled lockfile, not a runtime fix. `npm audit` in the plugin drops from 4 findings (incl. 1 high) to 1 residual moderate (`@hono/node-server` serve-static), which is gated on the MCP SDK's own dependency range and has no upstream fix yet. 138 root tests green.
23
+
24
+ ### Fixed
25
+
26
+ - **Publish workflow pinned to `npm@11` — npm 12.0.0's `npm publish --provenance` is broken.** The job ran `npm install -g npm@latest`, which started resolving to npm 12.0.0 (released 2026-07-09) on the Node 22 runner. npm 12's `libnpmpublish` provenance code does `require('sigstore')`, but the tarball bundles only the `@sigstore/*` scoped packages — so `--provenance` dies with `MODULE_NOT_FOUND` and the publish fails outright. npm@11 bundles `sigstore` and publishes fine. Pinned to the major rather than floating on `@latest`. Revisit once npm ships a provenance fix. CI only — no runtime or published-artifact change.
27
+
28
+ ### Changed
29
+
30
+ - **Agent/IDE scratch is gitignored and de-tracked (`.claude/`, `.litectx/`, `.idea/`).** Per-machine agent and IDE state is no part of the package — it regenerates locally and only added noise and churn. Now ignored, and any already-committed copies removed from tracking (local files kept on disk). Functional dot-paths (`.github/`, `.gitignore`, `.npmignore`, `.mcp.json`) stay tracked. Repo hygiene only.
31
+
32
+ ---
33
+
34
+ ## [2.15.0] - 2026-07-13
35
+
36
+ ### Changed
37
+ - `/stash` delegates the write-up to a mid-tier-model subagent, dispatched in the background
38
+ where the tool supports it, instead of writing inline on the top-tier session model —
39
+ drafting stays inline (only the running session has conversation context), but formatting
40
+ and file I/O move off the main turn. Falls back to inline writing if subagent/background
41
+ dispatch isn't available.
42
+
18
43
  ---
19
44
 
20
45
  ## [2.14.1] - 2026-07-10
package/README.md CHANGED
@@ -80,7 +80,7 @@ Liteagents ships a two-command pipeline that turns Claude Code's session logs in
80
80
  capture analyze + consolidate
81
81
  ```
82
82
 
83
- - **`/stash`** — snapshot the current session's context before compaction or handoff; nudges you to consolidate once a few stashes pile up
83
+ - **`/stash`** — snapshot the current session's context before compaction or handoff; nudges you to consolidate once a few stashes pile up. The write-up runs on a mid-tier model, dispatched as a background subagent where your tool supports it, so the session isn't blocked on formatting/file I/O
84
84
  - **`/remember`** — runs friction analysis automatically (mining JSONL session logs across *all* your projects for frustration signals, failed flows, and abandonment patterns, clustered into antigen candidates), then consolidates stashes + friction antigens into `.claude/remember/MEMORY.md`; auto-injected into `CLAUDE.md` via `@MEMORY.md` so every future session benefits. Per-stash extraction runs as concurrent subagent calls on a mid-tier model — no model name hardcoded, so it works with whatever your tool has configured
85
85
 
86
86
  `/remember` also bootstraps a one-time `AGENT_RULES.md` coding-standards template into `.claude/remember/` on first run (never overwritten again after that), referenced separately in `CLAUDE.md` for the assistant to consult when building something new — a static guide, not something the pipeline learns or extracts.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "liteagents",
3
- "version": "2.14.1",
3
+ "version": "2.15.1",
4
4
  "description": "AI development toolkit with 11 specialized agents and 17 commands including live-canvas UI design with click-to-annotate feedback. Simple one-question installer for Claude, Opencode, Ampcode, and Droid.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -10,14 +10,25 @@ Save session context for compaction recovery or handoffs.
10
10
  **Guardrails**
11
11
  - Favor straightforward, minimal implementations first and add complexity only when requested or clearly required.
12
12
  - Keep changes tightly scoped to the requested outcome.
13
+ - **Mid-tier model, not hardcoded.** The write-up subagent (step 2) uses a mid-tier model —
14
+ capable of semantic judgment, cheaper/faster than your top reasoning tier (e.g. Claude's
15
+ Sonnet vs Opus). Use whatever your tool designates as that balanced default; never hardcode
16
+ a vendor-specific model name.
17
+ - **Background dispatch where supported.** Run the write-up subagent in the background
18
+ (non-blocking) so the session isn't held up waiting on formatting/file I/O. Fall back to
19
+ writing inline (today's behavior) if your tool has no subagent or background-dispatch
20
+ mechanism.
13
21
 
14
22
  **What it does**
15
- 1. Captures current conversation context and key decisions
16
- 2. Records active work in progress
17
- 3. Stores important findings and insights
18
- 4. Creates stash file in `.amp/stash/`
19
- 5. Enables context restoration after compaction
20
- 6. **Consolidation nudge** after saving, count the unprocessed backlog:
23
+ 1. Drafts a compact brief of current conversation context, key decisions, active work in
24
+ progress, and findings/insights done inline, since only the running session holds full
25
+ conversation context
26
+ 2. Hands the brief to a subagent on the mid-tier model (see Guardrails) to expand into the
27
+ full stash file at `.amp/stash/<name>.md`, dispatched in the background where the tool
28
+ supports it. Falls back to writing inline if subagent/background dispatch isn't available
29
+ 3. Enables context restoration after compaction
30
+ 4. **Consolidation nudge** — whichever actor wrote the file (the subagent, or the session
31
+ itself on the inline fallback) counts the unprocessed backlog after saving:
21
32
  `unprocessed = (files in .amp/stash/*.md) − (entries in .amp/remember/.processed)`
22
33
  (a missing `.processed` manifest means 0 processed). If `unprocessed >= 5`, end with one line:
23
34
  > 📝 N stashes since last consolidation — run `/remember` to fold them into memory.
@@ -50,3 +61,5 @@ cat .amp/stash/<name>.md
50
61
  - Stashes stored in `.amp/stash/` (project-local)
51
62
  - Automatically includes: timestamp, active plan, recent decisions
52
63
  - Maximum context retention with minimal token usage
64
+ - When dispatched in the background, the "Stashed to X" confirmation and consolidation nudge
65
+ arrive as the subagent's completion notification rather than inline in the same turn
@@ -10,14 +10,25 @@ Save session context for compaction recovery or handoffs.
10
10
  **Guardrails**
11
11
  - Favor straightforward, minimal implementations first and add complexity only when requested or clearly required.
12
12
  - Keep changes tightly scoped to the requested outcome.
13
+ - **Mid-tier model, not hardcoded.** The write-up subagent (step 2) uses a mid-tier model —
14
+ capable of semantic judgment, cheaper/faster than your top reasoning tier (e.g. Claude's
15
+ Sonnet vs Opus). Use whatever your tool designates as that balanced default; never hardcode
16
+ a vendor-specific model name.
17
+ - **Background dispatch where supported.** Run the write-up subagent in the background
18
+ (non-blocking) so the session isn't held up waiting on formatting/file I/O. Fall back to
19
+ writing inline (today's behavior) if your tool has no subagent or background-dispatch
20
+ mechanism.
13
21
 
14
22
  **What it does**
15
- 1. Captures current conversation context and key decisions
16
- 2. Records active work in progress
17
- 3. Stores important findings and insights
18
- 4. Creates stash file in `.claude/stash/`
19
- 5. Enables context restoration after compaction
20
- 6. **Consolidation nudge** after saving, count the unprocessed backlog:
23
+ 1. Drafts a compact brief of current conversation context, key decisions, active work in
24
+ progress, and findings/insights done inline, since only the running session holds full
25
+ conversation context
26
+ 2. Hands the brief to a subagent on the mid-tier model (see Guardrails) to expand into the
27
+ full stash file at `.claude/stash/<name>.md`, dispatched in the background where the tool
28
+ supports it. Falls back to writing inline if subagent/background dispatch isn't available
29
+ 3. Enables context restoration after compaction
30
+ 4. **Consolidation nudge** — whichever actor wrote the file (the subagent, or the session
31
+ itself on the inline fallback) counts the unprocessed backlog after saving:
21
32
  `unprocessed = (files in .claude/stash/*.md) − (entries in .claude/remember/.processed)`
22
33
  (a missing `.processed` manifest means 0 processed). If `unprocessed >= 5`, end with one line:
23
34
  > 📝 N stashes since last consolidation — run `/remember` to fold them into memory.
@@ -50,3 +61,5 @@ cat .claude/stash/<name>.md
50
61
  - Stashes stored in `.claude/stash/` (project-local)
51
62
  - Automatically includes: timestamp, active plan, recent decisions
52
63
  - Maximum context retention with minimal token usage
64
+ - When dispatched in the background, the "Stashed to X" confirmation and consolidation nudge
65
+ arrive as the subagent's completion notification rather than inline in the same turn
@@ -114,21 +114,34 @@
114
114
  }
115
115
  },
116
116
  "node_modules/body-parser": {
117
- "version": "2.2.2",
118
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
119
- "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
117
+ "version": "2.3.0",
118
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
119
+ "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
120
120
  "license": "MIT",
121
121
  "dependencies": {
122
122
  "bytes": "^3.1.2",
123
- "content-type": "^1.0.5",
123
+ "content-type": "^2.0.0",
124
124
  "debug": "^4.4.3",
125
- "http-errors": "^2.0.0",
126
- "iconv-lite": "^0.7.0",
125
+ "http-errors": "^2.0.1",
126
+ "iconv-lite": "^0.7.2",
127
127
  "on-finished": "^2.4.1",
128
- "qs": "^6.14.1",
129
- "raw-body": "^3.0.1",
130
- "type-is": "^2.0.1"
128
+ "qs": "^6.15.2",
129
+ "raw-body": "^3.0.2",
130
+ "type-is": "^2.1.0"
131
+ },
132
+ "engines": {
133
+ "node": ">=18"
131
134
  },
135
+ "funding": {
136
+ "type": "opencollective",
137
+ "url": "https://opencollective.com/express"
138
+ }
139
+ },
140
+ "node_modules/body-parser/node_modules/content-type": {
141
+ "version": "2.0.0",
142
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
143
+ "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
144
+ "license": "MIT",
132
145
  "engines": {
133
146
  "node": ">=18"
134
147
  },
@@ -435,9 +448,9 @@
435
448
  "license": "MIT"
436
449
  },
437
450
  "node_modules/fast-uri": {
438
- "version": "3.1.2",
439
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
440
- "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
451
+ "version": "3.1.4",
452
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz",
453
+ "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==",
441
454
  "funding": [
442
455
  {
443
456
  "type": "github",
@@ -572,9 +585,9 @@
572
585
  }
573
586
  },
574
587
  "node_modules/hono": {
575
- "version": "4.12.25",
576
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.25.tgz",
577
- "integrity": "sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ==",
588
+ "version": "4.12.31",
589
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.31.tgz",
590
+ "integrity": "sha512-zJIHFrl6bq3RDd2YusFNCDlM8qUprxKswyi/OPzPyzKDdyBXDqWx8bZlZ7R+saTdSTatUmb3O7K4SspGPaEOQg==",
578
591
  "license": "MIT",
579
592
  "engines": {
580
593
  "node": ">=16.9.0"
@@ -1068,17 +1081,34 @@
1068
1081
  }
1069
1082
  },
1070
1083
  "node_modules/type-is": {
1071
- "version": "2.0.1",
1072
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
1073
- "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
1084
+ "version": "2.1.0",
1085
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz",
1086
+ "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
1074
1087
  "license": "MIT",
1075
1088
  "dependencies": {
1076
- "content-type": "^1.0.5",
1089
+ "content-type": "^2.0.0",
1077
1090
  "media-typer": "^1.1.0",
1078
1091
  "mime-types": "^3.0.0"
1079
1092
  },
1080
1093
  "engines": {
1081
- "node": ">= 0.6"
1094
+ "node": ">= 18"
1095
+ },
1096
+ "funding": {
1097
+ "type": "opencollective",
1098
+ "url": "https://opencollective.com/express"
1099
+ }
1100
+ },
1101
+ "node_modules/type-is/node_modules/content-type": {
1102
+ "version": "2.0.0",
1103
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
1104
+ "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
1105
+ "license": "MIT",
1106
+ "engines": {
1107
+ "node": ">=18"
1108
+ },
1109
+ "funding": {
1110
+ "type": "opencollective",
1111
+ "url": "https://opencollective.com/express"
1082
1112
  }
1083
1113
  },
1084
1114
  "node_modules/unpipe": {
@@ -10,14 +10,25 @@ Save session context for compaction recovery or handoffs.
10
10
  **Guardrails**
11
11
  - Favor straightforward, minimal implementations first and add complexity only when requested or clearly required.
12
12
  - Keep changes tightly scoped to the requested outcome.
13
+ - **Mid-tier model, not hardcoded.** The write-up subagent (step 2) uses a mid-tier model —
14
+ capable of semantic judgment, cheaper/faster than your top reasoning tier (e.g. Claude's
15
+ Sonnet vs Opus). Use whatever your tool designates as that balanced default; never hardcode
16
+ a vendor-specific model name.
17
+ - **Background dispatch where supported.** Run the write-up subagent in the background
18
+ (non-blocking) so the session isn't held up waiting on formatting/file I/O. Fall back to
19
+ writing inline (today's behavior) if your tool has no subagent or background-dispatch
20
+ mechanism.
13
21
 
14
22
  **What it does**
15
- 1. Captures current conversation context and key decisions
16
- 2. Records active work in progress
17
- 3. Stores important findings and insights
18
- 4. Creates stash file in `.factory/stash/`
19
- 5. Enables context restoration after compaction
20
- 6. **Consolidation nudge** after saving, count the unprocessed backlog:
23
+ 1. Drafts a compact brief of current conversation context, key decisions, active work in
24
+ progress, and findings/insights done inline, since only the running session holds full
25
+ conversation context
26
+ 2. Hands the brief to a subagent on the mid-tier model (see Guardrails) to expand into the
27
+ full stash file at `.factory/stash/<name>.md`, dispatched in the background where the tool
28
+ supports it. Falls back to writing inline if subagent/background dispatch isn't available
29
+ 3. Enables context restoration after compaction
30
+ 4. **Consolidation nudge** — whichever actor wrote the file (the subagent, or the session
31
+ itself on the inline fallback) counts the unprocessed backlog after saving:
21
32
  `unprocessed = (files in .factory/stash/*.md) − (entries in .factory/remember/.processed)`
22
33
  (a missing `.processed` manifest means 0 processed). If `unprocessed >= 5`, end with one line:
23
34
  > 📝 N stashes since last consolidation — run `/remember` to fold them into memory.
@@ -50,3 +61,5 @@ cat .factory/stash/<name>.md
50
61
  - Stashes stored in `.factory/stash/` (project-local)
51
62
  - Automatically includes: timestamp, active plan, recent decisions
52
63
  - Maximum context retention with minimal token usage
64
+ - When dispatched in the background, the "Stashed to X" confirmation and consolidation nudge
65
+ arrive as the subagent's completion notification rather than inline in the same turn
@@ -10,14 +10,25 @@ Save session context for compaction recovery or handoffs.
10
10
  **Guardrails**
11
11
  - Favor straightforward, minimal implementations first and add complexity only when requested or clearly required.
12
12
  - Keep changes tightly scoped to the requested outcome.
13
+ - **Mid-tier model, not hardcoded.** The write-up subagent (step 2) uses a mid-tier model —
14
+ capable of semantic judgment, cheaper/faster than your top reasoning tier (e.g. Claude's
15
+ Sonnet vs Opus). Use whatever your tool designates as that balanced default; never hardcode
16
+ a vendor-specific model name.
17
+ - **Background dispatch where supported.** Run the write-up subagent in the background
18
+ (non-blocking) so the session isn't held up waiting on formatting/file I/O. Fall back to
19
+ writing inline (today's behavior) if your tool has no subagent or background-dispatch
20
+ mechanism.
13
21
 
14
22
  **What it does**
15
- 1. Captures current conversation context and key decisions
16
- 2. Records active work in progress
17
- 3. Stores important findings and insights
18
- 4. Creates stash file in `.opencode/stash/`
19
- 5. Enables context restoration after compaction
20
- 6. **Consolidation nudge** after saving, count the unprocessed backlog:
23
+ 1. Drafts a compact brief of current conversation context, key decisions, active work in
24
+ progress, and findings/insights done inline, since only the running session holds full
25
+ conversation context
26
+ 2. Hands the brief to a subagent on the mid-tier model (see Guardrails) to expand into the
27
+ full stash file at `.opencode/stash/<name>.md`, dispatched in the background where the tool
28
+ supports it. Falls back to writing inline if subagent/background dispatch isn't available
29
+ 3. Enables context restoration after compaction
30
+ 4. **Consolidation nudge** — whichever actor wrote the file (the subagent, or the session
31
+ itself on the inline fallback) counts the unprocessed backlog after saving:
21
32
  `unprocessed = (files in .opencode/stash/*.md) − (entries in .opencode/remember/.processed)`
22
33
  (a missing `.processed` manifest means 0 processed). If `unprocessed >= 5`, end with one line:
23
34
  > 📝 N stashes since last consolidation — run `/remember` to fold them into memory.
@@ -50,3 +61,5 @@ cat .opencode/stash/<name>.md
50
61
  - Stashes stored in `.opencode/stash/` (project-local)
51
62
  - Automatically includes: timestamp, active plan, recent decisions
52
63
  - Maximum context retention with minimal token usage
64
+ - When dispatched in the background, the "Stashed to X" confirmation and consolidation nudge
65
+ arrive as the subagent's completion notification rather than inline in the same turn
@@ -156,7 +156,10 @@ and wiring the memory into your agent config file.
156
156
  ```
157
157
 
158
158
  1. **`/stash`** - Snapshot current session context to the tool's `…/stash/`. Use before
159
- compaction, handoffs, or ending complex work. After saving it counts the unprocessed backlog
159
+ compaction, handoffs, or ending complex work. The session drafts the raw content inline
160
+ (only it holds conversation context), then a mid-tier-model subagent expands and writes the
161
+ file — dispatched in the background where the tool supports it, falling back to writing
162
+ inline otherwise. Whichever actor wrote the file counts the unprocessed backlog
160
163
  (`stash files − .processed entries`) and, at 5+, nudges you to run `/remember`. No counter is
161
164
  stored; running `/remember` clears the backlog.
162
165
  2. **`/remember`** - Runs friction analysis first (best-effort — scores sessions across *all* your