overengineeringstudio / overengineeringstudio/effect-utils

notion db track fails closed on packaged runtime (breaks sqlite demo + demo-env replica)

Open
#899 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:notion type:bug
Dominant language
TypeScript
Stars
82
Forks
2
Avg merge
1d 8h
Merged PRs (30d)
121

Description

Summary

notion db track no longer establishes a local SQLite replica on the current packaged/flake notion runtime (notion 0.1.0+unknown, committed 2026-07-07). It fails closed.

Impact

  • Breaks demo/sqlite/reset.sh (uses notion db track <ds> . --mode local).
  • demo/env/demo-env new degrades loudly for the sqlite demo: the Notion DB + rows are still created and usable, but the local .sqlite replica is not; manifest records sqlite.tracked: false.

Root cause (two layers)

  1. Wrapper routing omits track. The flake notion bin routes only init|pull|push|sync|export|status|conflicts|forget|restore|doctor to notion-db-runtime; track is missing, so notion db track falls through to the Bun-unsupported unwrapped binary (… imports node:sqlite …). The routing list also has stale verbs (init/pull/push) not in the actual CLI.
  2. Runtime fails closed even when invoked directly. notion-db-runtime track <ds> . --mode local --no-materialize-bodies exits non-zero with no diagnostic output, writing only .notion/v1/state.sqlite. Also: the new runtime creates <workspace>/<database-id>.sqlite and rejects --sqlite for track.

Repro (inside devenv shell)

cd $(mktemp -d)
RT=$(grep -oE '/nix/store/[^ ]*notion-db-runtime[^ ]*/bin/notion-db-runtime' $(command -v notion) | head -1)
"$RT" track <data-source-id> . --mode local --no-materialize-bodies; echo exit=$?  # exit=1, no output

Asks

  • Add track to the wrapper's routed-verb list (drop stale init/pull/push).
  • Make the runtime emit an error on track failure instead of a silent non-zero exit.

Filed as out-of-scope follow-up from the demo/env (demo-env CLI) work.

Posted on behalf of @schickling
field value
agent_name 💜 cl1-violet
agent_session_id 5ce468e2-a077-44ee-a724-bca1fb992e1c
agent_tool Claude Code
agent_tool_version 2.1.202
agent_runtime Claude Code 2.1.202
agent_model claude-opus-4-8
runtime_profile /nix/store/34v4ljmkjh4sgzax68wwgggmzf69zmfk-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/92pwq9mx1byj8nl9an05dyh4baykvf1d-agent-skills-corpus/share/agent-skills/manifest.json
worktree effect-utils/schickling/2026-07-07-notion-demo
machine mbp2025
tooling_profile dotfiles@unknown

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the flake notion wrapper's routed-verb list and the notion-db-runtime entry point; run the provided packaged-runtime reproduction in a temporary directory. Done means track is routed through the runtime and failures produce diagnostics instead of a silent non-zero exit, while the SQLite demo can establish its local replica.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
build-system, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.