Skip to content

v0.6.0: explicit layout, reliability fixes, and test matrix - #2

Merged
Spartee merged 2 commits into
mainfrom
refactor/explicit-layout
Jul 13, 2026
Merged

v0.6.0: explicit layout, reliability fixes, and test matrix#2
Spartee merged 2 commits into
mainfrom
refactor/explicit-layout

Conversation

@Spartee

@Spartee Spartee commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Summary

The full cross-client roadmap in one PR (this repo only): explicit shared layout, reliability/truthfulness fixes, and the automated test matrix + CI.

Layout

  • components/{skills,agents,commands}/ — the canonical shared set (names unchanged: arcade, /arcade:*).
  • clients/cursor/ — rule, Cursor-native sessionStart hook (flat additional_context shape), MCP config.
  • clients/claude/ — Claude-native SessionStart hook, MCP config.
  • Both manifests declare every component path explicitly; root default-discovery folders are removed. Cursor no longer silently ingests the Claude-shaped hook, and each client loads exactly its intended bundle.

Reliability

  • Sign-in correctness: an authorization_url in a result means sign-in required even when success: true — stated identically in the rule, both skills, and the subagent (present link → stop → wait → retry once).
  • App repair: managing-arcade-apps + /arcade:apps now cover Arcade_ManageToolAuthorization (status / switch account / sign in again) in apps language.
  • Action safety in the direct path: confirm-before-send/delete/cancel/overwrite/publish moved into the shared skill and Cursor rule (was subagent-only).
  • Hooks trimmed to two sentences; rule trimmed to activation policy + non-negotiables.

OpenCode (opencode-arcade@0.6.0)

  • @opencode-ai/plugin pinned to ^1.17.18; exports field added.
  • Sign-in toast scoped to Arcade tool executions with structured authorization_url parsing (depth-limited); regex fallback only. Unrelated OAuth-looking URLs no longer toast.

Truthful docs

  • Cursor deeplink labeled tools only; full-plugin path documented separately (local install until the Marketplace listing lands).
  • Four meta-tools documented (incl. Arcade_ManageToolAuthorization); npm publication status corrected; mcp-remote pinned (0.1.38) for Claude Desktop; privacy note added; "authorization link" → "sign-in link"; GitHub repo description fixed.

Test matrix + CI

  • scripts/check.mjs (no deps): JSON validity, explicit per-manifest component declarations + path existence, frontmatter rules, duplicate names, version consistency (manifests + npm + CHANGELOG), endpoint/server-key consistency, hook execution with client-native output shapes, sign-in language rules.
  • scripts/opencode-smoke.ts (bun): config registration, no user-config overwrite, toast scoping incl. the success: true auth case and non-Arcade rejection.
  • .github/workflows/check.yml runs both + npm pack --dry-run on every push/PR.
  • QA.md: manual release checklist (local client loads, nine auth-flow scenarios, release steps).

All plugin versions: 0.6.0.

Test plan

  • node scripts/check.mjs passes (11 JSON files, version 0.6.0)
  • bun scripts/opencode-smoke.ts — all assertions pass
  • claude plugin validate passes (plugin + marketplace manifests)
  • Both hook scripts emit their client-native response shapes
  • npm pack --dry-run → 4 files, opencode-arcade-0.6.0.tgz
  • CI workflow green on this PR
  • QA.md local-load checklist — release day
  • npm publish + marketplace submissions — release day, after merge

Spartee added 2 commits July 10, 2026 22:21
…6.0)

Restructure the repo so every client loads exactly its intended bundle:

- components/{skills,agents,commands}: the canonical shared set
- clients/{cursor,claude}: client-native hooks and MCP configs
- Both plugin manifests declare every component path explicitly; root
  default-discovery folders are gone, so Cursor no longer silently
  ingests the Claude-shaped hook (it gets a Cursor-native sessionStart
  hook with the flat response shape instead)

Reliability and truthfulness fixes in the same pass:

- Sign-in correctness: rule, skills, and subagent now state that an
  authorization_url means sign-in required even when the response says
  success: true (present link, stop, wait, retry once)
- App repair: managing-arcade-apps and /arcade:apps document
  Arcade_ManageToolAuthorization (status/switch_account/reauthorize)
  in apps language
- Outbound/destructive confirmation guidance moved into the shared
  skill and Cursor rule, not just the operator subagent
- Both session hooks trimmed to two sentences; rule trimmed to
  activation policy + non-negotiables
- OpenCode 0.6.0: pinned @opencode-ai/plugin (^1.17.18), package
  exports, toast scoped to Arcade tools with structured
  authorization_url parsing (regex fallback only)
- Docs: Cursor deeplink labeled tools-only with the full-plugin path
  separate; four meta-tools documented; npm publication status
  corrected; mcp-remote pinned (0.1.38); privacy note; remaining
  "authorization link" copy renamed to "sign-in link"
…hecklist

- scripts/check.mjs: JSON validity, per-manifest explicit component
  declarations with path existence, frontmatter requirements (kebab-case
  names, skill name/dir match), duplicate component names, version
  consistency across both manifests + the npm package + CHANGELOG,
  endpoint/server-key consistency, hook execution with client-native
  output shapes, and sign-in language rules. No dependencies.
- scripts/opencode-smoke.ts (bun): config hook registers the arcade
  server and never overwrites a user entry; toast fires for structured
  authorization_url from Arcade tools (even with success: true), uses
  the regex fallback only for non-JSON Arcade output, and never fires
  for non-Arcade tools or link-free results.
- .github/workflows/check.yml runs both plus npm pack --dry-run on
  every push/PR.
- QA.md: manual release checklist for local client loads, the nine
  auth-flow scenarios, and release steps (model/client behavior that
  CI cannot honestly assert).
@Spartee Spartee changed the title refactor(layout): explicit shared components and client adapters (v0.6.0) v0.6.0: explicit layout, reliability fixes, and test matrix Jul 11, 2026
@Spartee
Spartee merged commit 3b2df96 into main Jul 13, 2026
1 check passed
@Spartee
Spartee deleted the refactor/explicit-layout branch July 13, 2026 06:54
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.

1 participant