Skip to content

Add persistent Supermemory status to OpenCode - #81

Merged
ishaanxgupta merged 1 commit into
graphite-base/81from
opencode/persistent-memory-status
Sep 23, 2026
Merged

ishaanxgupta merged 1 commit into
graphite-base/81from
opencode/persistent-memory-status

Conversation

@ishaanxgupta

@ishaanxgupta ishaanxgupta commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Adds a persistent Supermemory footer using OpenCode's native TUI plugin slots.\n\nIt turns blue while a turn is running and keeps the latest recall or save activity visible.

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​opencode-ai/​plugin@​1.0.191 ⏵ 1.18.2310010070 +397100
Added@​opentui/​core@​0.5.8951009398100
Addedsolid-js@​1.9.1210010010096100
Added@​opentui/​keymap@​0.5.81001009998100
Added@​opentui/​solid@​0.5.81001009998100

View full report

ishaanxgupta commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor Author

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge-queue - adds this PR to the back of the merge queue
  • fast-track - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@socket-security

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm json-schema is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package.json → npm/@opencode-ai/plugin@1.18.23 → npm/json-schema@0.4.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/json-schema@0.4.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@vorflux vorflux Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found one material installer consistency issue.


Review with Vorflux

Comment thread src/cli.ts
}
}

configureTuiPlugin();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 — Only install the TUI plugin after server-plugin registration succeeds. The interactive flow can decline creating/updating the main OpenCode config, and addPluginToConfig() can also return false, but this call still writes the package to tui.json[c]. OpenCode loads that TUI entry independently, leaving a Supermemory footer installed even though the server plugin that provides recall/save behavior is absent. Please track the main registration result and skip or separately confirm TUI installation when it did not succeed.

Dhravya commented Sep 1, 2026 •

Copy link
Copy Markdown
Member

Merge activity

@graphite-app
graphite-app Bot changed the base branch from opencode/memory-activity to graphite-base/81 September 23, 2026 00:52
@ishaanxgupta
ishaanxgupta merged commit 7e12013 into graphite-base/81 Sep 23, 2026
7 checks passed
ishaanxgupta added a commit that referenced this pull request Sep 23, 2026
PR #81 added the footer but was merged into graphite-base/81 instead of
main, so it never shipped. Fold it into one `./tui` module that OpenCode V1
loads through tui.jsonc (`tui()`) and OpenCode 2 loads automatically next to
the server plugin (`setup()`). Both show `◪ supermemory · running` while a
session is busy and the latest recall or save activity otherwise; OpenCode 2
also renders the server's activity notices as toasts from the same plugin.

The installer enables the V1 footer in tui.jsonc, `status` reports it, and
direct-recall parts carry recall metadata so the V1 footer can read them.
Dhravya pushed a commit that referenced this pull request Sep 26, 2026
* Add OpenCode 2 plugin with full feature parity

OpenCode 2 rejects the V1 root export, so 2.0.13 fails to load for every
OpenCode 2 user (#74). Ship a server plugin at `opencode-supermemory/server`
(resolved automatically by OpenCode 2), a `./tui` companion that renders
activity notices as toasts, and a shared `./rpc` contract, while keeping the
root export unchanged for OpenCode V1.

The V2 runtime mirrors main's V1 behavior: direct/advisory/off recall with
per-session dedupe and 3s fail-open timeouts, first-message profile context,
keyword nudges, the shared `supermemory` tool plus a read-only
`supermemory_recall` tool that the installer auto-allows, bounded and
idempotent automatic capture from the session transcript, native compaction
enrichment with summary capture (`compactionEnabled`), update checks, and
activity notices over plugin RPC. Recall context is re-applied on every model
call for the same prompt because OpenCode 2 hook messages are request-local.

Shared services now back both generations: the tool executor, compaction
prompt, activity notice formatting, and a comment-preserving JSONC editor that
registers `plugin`, `plugins`, and the recall permission. The installer and
`status` report both registrations.

Also fix the `src/cli.ts` typecheck failure that blocked the 2.0.14 release,
import jsonc-parser's ESM build so bundles load under Node and Bun, run tests
in the release workflow, and bump to 2.0.15.

* Add persistent Supermemory status footer for OpenCode V1 and 2

PR #81 added the footer but was merged into graphite-base/81 instead of
main, so it never shipped. Fold it into one `./tui` module that OpenCode V1
loads through tui.jsonc (`tui()`) and OpenCode 2 loads automatically next to
the server plugin (`setup()`). Both show `◪ supermemory · running` while a
session is busy and the latest recall or save activity otherwise; OpenCode 2
also renders the server's activity notices as toasts from the same plugin.

The installer enables the V1 footer in tui.jsonc, `status` reports it, and
direct-recall parts carry recall metadata so the V1 footer can read them.

* Show the OpenCode 2 status footer once

The prompt footer is rendered on the home screen too, so the extra
home.footer.status slot duplicated the footer.

* Show a bare supermemory footer until there is activity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants