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.
This commit is contained in:
2026-08-11 12:55:37 +05:30
parent 387457ea94
commit 9f549acfde
3 changed files with 9 additions and 5 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.
+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);
}); });