Skip to content

OMP sessions missing from Magic Context Dashboard #345

Description

@pejc

Short description

The Magic Context Dashboard lists OpenCode sessions but no OMP sessions, even with the harness filter set to All or Pi.

What happened?

Expected: OMP sessions should appear in the project session list and be readable like other Pi-compatible sessions.

Observed:

  1. Start an OMP session with Magic Context enabled.
  2. Open Magic Context Dashboard 0.13.0.
  3. Open the affected project and view Sessions.
  4. Select Harness: Pi or Harness: All.
  5. No OMP sessions appear.

The shared Magic Context database contains Pi/OMP session metadata, but the dashboard's list_sessions_paged query with harness: "pi" returns zero rows.

Diagnostics

## OMP diagnostics
- Magic Context CLI: 0.38.0
- PASS: OMP 17.3.8 detected at ~/.bun/bin/omp
- PASS: @cortexkit/pi-magic-context 0.38.0 is enabled
- PASS: Plugin exposes an OMP/Pi extension manifest
- PASS: OMP native compaction is disabled
- PASS: OMP automatic memory backend is disabled
- PASS: OMP agent directory resolved to ~/.omp/agent
- PASS: Magic Context config parses: ~/.config/cortexkit/magic-context.jsonc
- PASS: Magic Context runtime config loads successfully
- PASS: SQLite integrity_check: ok
- INFO: OMP config: ~/.omp/agent/config.yml
- INFO: OMP plugin lock: ~/.omp/plugins/omp-plugins.lock.json
- INFO: OMP sessions: ~/.omp/agent/sessions
- INFO: Pi-compatible runtime log: /tmp/pi/magic-context/magic-context.log

## Additional info
Database evidence:
- Shared database contains primary sessions for both `opencode` and `pi` harnesses.
- Dashboard API: `list_sessions_paged({ harness: "pi", is_subagent: false })` -> `total: 0`.

Sanitized OMP JSONL prefix:
{"type":"title", ...}
{"type":"session", ...}

### Suspected cause

The dashboard's Pi/OMP session parser treats the first JSONL record as the session header and rejects the file unless that record has `type: "session"`. OMP writes a `type: "title"` record before the `type: "session"` record, so its files are silently skipped.

### Suggested fix

Update the Pi-compatible session parser to scan the initial JSONL records until it finds the `type: "session"` record, while retaining any preceding title metadata. Add a regression fixture whose first record is `type: "title"` and assert that it is returned by the OMP/Pi session scanner.

Plugin version

0.38.0

OpenCode version

OMP version: 17.3.8

Platform

Linux x64

Client

Pi

Log output (optional)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions