Menu

#334 docs: update dev setup + architecture docs for v1.64.0 fold

closed
nobody
None
2026-06-25
2026-06-24
Anonymous
No

Originally created by: Akarsh-Hegde

Summary

v1.64.0 shipped the fold to main, but all developer-facing docs and dev scripts still described the old multi-process topology (screenpipe agent, Node UI server, 4-terminal dev setup). This PR brings them up to date so a new contributor following CONTRIBUTING.md gets a working environment on the first try.

What changed

dev-start.sh — 85 lines → 3 windows

  • Removed the ~20-line screenpipe launchd bootstrap block (capture is in-process; the agent is unneeded and conflicts)
  • Removed the separate "Next.js UI" Terminal window — npm run tauri dev starts the Next.js dev server automatically via beforeDevCommand in tauri.conf.json; opening a second npm run dev ran two servers on port 3939
  • Now opens 3 windows: daemon, MLX, tray

install-dev.sh

  • Removed install-screenpipe-daemon.sh and install-a11y-helper-daemon.sh registration (both are stale since v1.64.0 in-process capture)
  • Added an upgrade note for contributors with an older dev setup (how to bootout the old agents)
  • Updated the "what dev-start.sh opens" summary to 3 windows

CONTRIBUTING.md

  • Project layout table: added meridian-core/, updated ui/ and tray/ descriptions
  • Dev setup: updated to 3-window model; added upgrade note for old setups; documented the tauri devbeforeDevCommand connection; added the popover known limitation
  • Installed-vs-dev table: removed screenpipe/a11y-helper rows; updated UI row
  • TypeScript convention: replaced "keep UI API routes thin" with the bridge.ts invoke pattern (the /api routes are gone)

tray/README.md — complete rewrite

  • Previous version described HTTP polling of /api/health, /api/active, curl http://127.0.0.1:3939 checks — all retired at the fold
  • Now documents the real architecture: in-process capture, embedded dashboard, poll loop, commands by domain, MLX supervision, dev workflow, troubleshooting

README.md

  • Updated "Built on": screenpipe is now a forked capture crate (pinned at last MIT release), not a separate process; added Tauri

SETUP.md

  • Grant permissions to Meridian (not screenpipe)
  • Services table: removed screenpipe row; tray is now the capture owner
  • Log targets: removed screenpipe / screenpipe-error, added tray / tray-error
  • Setup flow: added MLX runtime download step

Tests

5 new regression guards added to tests/tray_assets.rs (all pass):

Test Guards against
dev_start_no_screenpipe_launchd_bootstrap screenpipe launchd block creeping back into dev-start.sh
dev_start_no_separate_nextjs_window separate npm run dev window being re-added (double-starts the dev server)
dev_start_opens_three_terminal_windows window count drifting from 3
install_dev_skips_screenpipe_agents screenpipe/a11y-helper agent registration returning to install-dev.sh
tauri_before_dev_command_starts_nextjs beforeDevCommand being removed from tauri.conf.json (would break devURL without an explicit Next.js terminal)

Test plan

  • [ ] Fresh bash install-dev.sh on a clean machine produces no screenpipe/a11y-helper agents
  • [ ] bash dev-start.sh opens exactly 3 Terminal windows; dashboard loads in the Tauri webview
  • [ ] cargo test --test tray_assets — all 11 tests pass ✅ (pre-push verified)
  • [ ] CI green

🤖 Generated with Claude Code

https://claude.ai/code/session_01SKdh3tKWLZhtQ9FCfA5RYH

Summary by CodeRabbit

  • Documentation
  • Refreshed contribution/setup and tray architecture docs to match the current workflow: three-terminal dev, in-process capture owned by the tray, and tray-driven Next.js dashboard startup.
  • Updated macOS permission guidance, install/dev messaging, README “Built on” items, and CLI log target naming.
  • Tests
  • Added regression tests that validate the updated dev/setup topology (no retired launch agents or standalone Next.js window) and beforeDevCommand popover copying/Next.js startup behavior.
  • Chores
  • Tweaked CI log/validation scope and updated git ignore for generated popover dev assets.

Related

Tickets: #347

Discussion

  • Anonymous

    Anonymous - 2026-06-24

    Originally posted by: coderabbitai[bot]

    Review Change Stack

    [!IMPORTANT]

    Review skipped

    Auto reviews are disabled on base/target branches other than the default branch.

    Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.


    ⚙️ Run configuration

    Configuration used: Organization UI

    Review profile: ASSERTIVE

    Plan: Pro Plus

    Run ID: fdd9f7ed-cc8a-42f3-8168-7f0ec702fda3

    You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

    Use the checkbox below for a quick retry:
    - [ ] 🔍 Trigger review

    📝 Walkthrough ## Walkthrough The PR updates the local development workflow to a 3-terminal setup, removes dev-mode launchd registration for screenpipe-related services, rewrites setup and architecture documentation, updates `meridian logs` targets, and adds regression tests for the new dev script topology. ## Changes **Tray-centered dev workflow and service naming** |Layer / File(s)|Summary| |---|---| |**Install and permission flow**
    `install.sh`, `install-dev.sh`, `SETUP.md`, `CONTRIBUTING.md`|`install.sh` stops installing screenpipe and a11y-helper launch agents, shortens the permission walkthrough to Screen Recording and Accessibility, and skips that walkthrough in dev mode. `install-dev.sh`, `SETUP.md`, and `CONTRIBUTING.md` update the documented setup and runtime flow around that install behavior.| |**3-terminal dev startup**
    `dev-start.sh`, `tray/src-tauri/tauri.conf.json`, `ui/.gitignore`, `tests/tray_assets.rs`, `tray/README.md`, `CONTRIBUTING.md`|`dev-start.sh` is updated for a 3-terminal local workflow, and `tray/src-tauri/tauri.conf.json` changes the tray dev command to copy popover assets before starting the UI server. `ui/.gitignore` ignores the generated popover output. `tests/tray_assets.rs` adds regression coverage for the new startup shape, and `tray/README.md` and `CONTRIBUTING.md` update the documented dev path and build behavior.| |**Tray docs and bridge**
    `README.md`, `CONTRIBUTING.md`, `SETUP.md`, `tray/README.md`|`README.md`, `SETUP.md`, `CONTRIBUTING.md`, and `tray/README.md` update the documented project layout, setup steps, runtime roles, command bridge path, build flow, and troubleshooting notes.| |**Updated log targets**
    `scripts/meridian-cli.sh`, `.github/workflows/ci.yml`|`meridian logs` help text and dispatch are updated to use daemon, MLX server, and tray targets, and the CI guard narrows the `screenpipe` version pin check to the legacy bundle path.| ## Estimated code review effort 🎯 3 (Moderate) | ⏱️ ~20 minutes ## Poem > 🐇 Hop, hop—three terminals align, > Tray, daemon, MLX all run fine. > Popover copied, logs now true, > The rabbit drums a tidy review.
    🚥 Pre-merge checks | ✅ 5
    ✅ Passed checks (5 passed) | Check name | Status | Explanation | | :------------------------: | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | | Title check | ✅ Passed | The title is concise and accurately summarizes the docs-focused dev setup and architecture update for the v1.64.0 fold. | | Description check | ✅ Passed | The description covers the PR purpose, major changes, and testing/test plan, with only minor template-format differences and an incomplete checklist. | | Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. | | Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. | | Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
    ✏️ Tip: You can configure your own custom pre-merge checks in the settings.
    ✨ Finishing Touches
    🧪 Generate unit tests (beta) - [ ] Create PR with unit tests - [ ] Commit unit tests in branch `docs/post-v1.64.0`

    Comment @coderabbitai help to get the list of available commands.

     
  • Anonymous

    Anonymous - 2026-06-25

    Ticket changed by: Akarsh-Hegde

    • status: open --> closed
     

Log in to post a comment.