Skip to content

Commit dd18227

Browse files
release: v0.30.0 notes + announcement; fix e2e DB-lock flake
Bump the in-app announcement to 0.30.0 (Desktop detection #196, badge #198, doctor cache #199) and add release notes. Fix a SQLITE_BUSY flake in thinking-block-safety.test.ts: openContextDbWritable opened the context DB without a busy_timeout, so under loaded CI a write could collide with the live plugin's handle and fail immediately instead of waiting. Added PRAGMA busy_timeout = 5000, matching the other e2e tests that share the context DB. Not a logic change; the audit fixes do not touch the tagging path this test exercises. Co-authored-by: Alfonso [Magic Context] <288211368+alfonso-magic-context@users.noreply.github.com>
1 parent 323097d commit dd18227

3 files changed

Lines changed: 23 additions & 4 deletions

File tree

.alfonso/release-notes/v0.30.0.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# v0.30.0
2+
3+
Setup and doctor now recognize OpenCode Desktop installs that have no CLI, the TUI sidebar badge matches your theme again, and the doctor plugin-cache check is more reliable. Also a dependency refresh (newer OpenCode and Pi SDKs) and security updates.
4+
5+
## Fixes
6+
7+
- **Setup and doctor recognize OpenCode Desktop without a CLI (#196).** Installing OpenCode only through the Desktop app leaves no `opencode` binary on PATH (its server runs inside Electron), so setup reported "OpenCode not found" and refused to continue, and model discovery came up empty. Setup and doctor now detect a Desktop-only install and continue with manual model entry instead of claiming OpenCode is absent. A stock CLI installed outside PATH (for example under a version manager) is also found and used for model discovery. Thanks to @Treeed for the report.
8+
- **TUI sidebar badge color follows your theme again (#198).** On dark themes the Magic Context badge rendered white text while sibling badges (such as AFT) rendered the theme's own background color, so the two looked inconsistent. The badge now uses the theme background like the others, with a safety fallback for transparent-background themes so the label can never disappear. Thanks to @null-axiom for the report.
9+
- **`doctor` clears a stale plugin cache reliably (#199).** The cache check compared the cached plugin against the CLI's own version rather than the plugin's latest published version, so a stale `@latest` cache could survive when run through an older cached CLI. It now compares against the plugin's npm-latest, clears the versionless cache root as well, and preserves the cache (rather than clearing it) when the version check is offline. Thanks to @coleleavitt for the fix.
10+
11+
## Maintenance
12+
13+
- Refreshed dependencies and resolved several security advisories, including newer OpenCode (`@opencode-ai/plugin`, `@opencode-ai/sdk`) and Pi (`@earendil-works/pi-coding-agent`, `@earendil-works/pi-tui`) SDKs.

packages/e2e-tests/tests/thinking-block-safety.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,12 @@ afterAll(async () => {
7272
function openContextDbWritable(): Database {
7373
// Plugin v0.16+ — shared cortexkit/magic-context path.
7474
const dbPath = join(h.opencode.env.dataDir, "cortexkit", "magic-context", "context.db");
75-
return new Database(dbPath, { readwrite: true });
75+
const db = new Database(dbPath, { readwrite: true });
76+
// The live plugin holds this same DB during the test; under loaded CI a write
77+
// here can collide with it. Wait for the lock instead of failing immediately
78+
// (SQLITE_BUSY), matching the other e2e tests that share the context DB.
79+
db.query("PRAGMA busy_timeout = 5000").run();
80+
return db;
7681
}
7782

7883
interface AnthropicContentBlock {

packages/plugin/src/shared/announcement.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,16 @@ import { getMagicContextStorageDir } from "./data-path";
2424
* Bump only when there are user-visible changes worth a startup dialog.
2525
* Does NOT need to match the published package version.
2626
*/
27-
export const ANNOUNCEMENT_VERSION = "0.29.0";
27+
export const ANNOUNCEMENT_VERSION = "0.30.0";
2828

2929
/**
3030
* Short, user-facing bullet strings. Keep each line ~80 chars or shorter so the
3131
* TUI dialog renders cleanly without horizontal scroll on a typical terminal.
3232
*/
3333
export const ANNOUNCEMENT_FEATURES: ReadonlyArray<string> = [
34-
"New 'smart_drops' option (opt-in, off by default): on long, edit-heavy sessions it reclaims more context by dropping tool output a later call made obsolete (superseded edits, old todowrite/ctx_reduce, spent status calls) instead of only the oldest. When off, the prompt is byte-identical to before. Enable with \"smart_drops\": true.",
35-
"When memory is disabled, the ctx_memory tool and its guidance are no longer shown (they had nothing to write to). ctx_search stays, searching conversation history and git commits.",
34+
"Setup and doctor now recognize an OpenCode Desktop install that has no CLI on PATH, instead of reporting OpenCode as not installed (#196). Desktop-only users continue setup with manual model entry.",
35+
"TUI sidebar badge color follows your theme again (#198): it uses the theme background like sibling badges, with a fallback so the label can't disappear on transparent themes.",
36+
"doctor clears a stale plugin cache more reliably (#199): it compares against the plugin's latest published version and preserves the cache when offline.",
3637
];
3738

3839
/**

0 commit comments

Comments
 (0)