2 Commits
Author SHA1 Message Date
bendtherules 658f30e38c chore: release v0.3.1 2026-08-11 12:55:52 +05:30
bendtherules 9f549acfde fix: correct $ARGUMENTS token in plugin-compaction-init template
OpenCode's argument token is $ARGUMENTS, not $ARGUMENTS$. With the
extra dollar sign, OpenCode did not substitute the token, so the LLM
ended up writing the literal $ARGUMENTS$ line into the memory file
when no arguments were passed.
2026-08-11 12:55:37 +05:30
4 changed files with 10 additions and 6 deletions
+4
View File
@@ -1,5 +1,9 @@
# Changelog # Changelog
## 0.3.1
- Fix the OpenCode `$ARGUMENTS` token in the `plugin-compaction-init` template so it is properly substituted instead of being written into the memory file.
## 0.3.0 ## 0.3.0
- Auto-register a `/plugin-compaction-init` slash command that scaffolds the compaction memory file with `## Keep` and `## Discard` sections of classification rules. User-supplied arguments are appended to extend the defaults. - Auto-register a `/plugin-compaction-init` slash command that scaffolds the compaction memory file with `## Keep` and `## Discard` sections of classification rules. User-supplied arguments are appended to extend the defaults.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "opencode-plugin-compaction-prompt", "name": "opencode-plugin-compaction-prompt",
"version": "0.3.0", "version": "0.3.1",
"description": "Customize OpenCode's compaction prompt to preserve important context and omit unnecessary details.", "description": "Customize OpenCode's compaction prompt to preserve important context and omit unnecessary details.",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
+2 -2
View File
@@ -21,7 +21,7 @@ const initCommandName = "plugin-compaction-init";
/** /**
* Builds the prompt the auto-registered `/plugin-compaction-init` slash * Builds the prompt the auto-registered `/plugin-compaction-init` slash
* command sends to the model. `$ARGUMENTS$` is left unsubstituted so * command sends to the model. `$ARGUMENTS` is left unsubstituted so
* OpenCode substitutes it at invocation time. * OpenCode substitutes it at invocation time.
* *
* @param memoryFile Literal path to the memory file, inserted verbatim. * @param memoryFile Literal path to the memory file, inserted verbatim.
@@ -46,7 +46,7 @@ Keep all details related to the keep topics below, and discard everything relate
- Any other older discussions not mentioned above. - Any other older discussions not mentioned above.
$ARGUMENTS$ $ARGUMENTS
`; `;
} }
+3 -3
View File
@@ -179,10 +179,10 @@ describe("buildInitCommandTemplate", () => {
expect(template).toContain("## Discard\n"); expect(template).toContain("## Discard\n");
}); });
test("leaves $ARGUMENTS$ unsubstituted for OpenCode to fill in", () => { test("leaves $ARGUMENTS unsubstituted for OpenCode to fill in", () => {
const template = buildInitCommandTemplate(".opencode/compaction.md"); const template = buildInitCommandTemplate(".opencode/compaction.md");
expect(template.trimEnd().endsWith("$ARGUMENTS$")).toBe(true); expect(template.trimEnd().endsWith("$ARGUMENTS")).toBe(true);
}); });
}); });
@@ -210,7 +210,7 @@ describe("CompactionPromptPlugin config hook", () => {
"## Discard", "## Discard",
); );
expect(cfg.command?.["plugin-compaction-init"].template).toContain( expect(cfg.command?.["plugin-compaction-init"].template).toContain(
"$ARGUMENTS$", "$ARGUMENTS",
); );
expect(context.logs).toHaveLength(0); expect(context.logs).toHaveLength(0);
}); });