Skip to content

Fix ObsessionDB plugin for serviceId → serviceSlug contract change#134

Open
KeKs0r wants to merge 1 commit into
mainfrom
marc/obsession-plugin-service-slug
Open

Fix ObsessionDB plugin for serviceId → serviceSlug contract change#134
KeKs0r wants to merge 1 commit into
mainfrom
marc/obsession-plugin-service-slug

Conversation

@KeKs0r
Copy link
Copy Markdown
Member

@KeKs0r KeKs0r commented May 29, 2026

Summary

  • The ObsessionDB platform moved every service-scoped RPC input from serviceId to serviceSlug, which broke migrate/generate/status/drift/check/query and remote backfill against ObsessionDB targets; this PR repairs that by threading the service slug through all layers (selection, on-disk storage, --service override, remote executor, backfill).
  • Refreshed the bundled oRPC contract copies (contract/{services,jobs,workbench}.ts) to match the current platform schemas: serviceSchema now exposes slug, query results are array-of-arrays, and job details carry per-task runs[].
  • The selected-service file (obsessiondb.json) now stores service_slug instead of service_id, so existing selections must be re-run via chkit obsessiondb service select (and aliases re-set), and the remote backfill flag --service-id is renamed to --service-slug.
  • Updated tests to the slug-based shape and added a patch changeset.

Test plan

  • bun verify (typecheck, lint, test, build) passes
  • CLI ObsessionDB service e2e passes after full build
  • Manual smoke test against a live ObsessionDB service (select → migrate → backfill list)

🤖 Generated with Claude Code

The ObsessionDB platform moved every service-scoped RPC input from
serviceId to serviceSlug, which broke migrate/generate/status/drift/
check/query and remote backfill against ObsessionDB targets.

Refresh the bundled oRPC contract copies to match the current platform
schemas and route serviceSlug through all layers: service selection and
storage now key on the slug, the remote executor sends serviceSlug to
workbench.query.execute, and the backfill flag is renamed to
--service-slug.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

const RESERVED_SLUGS = ['new', 'settings', 'select', 'members', 'profile'] as const

export const serviceSlugSchema = z
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