overengineeringstudio / overengineeringstudio/effect-utils

notion-md: remove dead unsupported-block/object-store storage subsystem + FrontmatterV1 legacy (coordinate with #775)

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

Nobody has claimed this yet.

origin:agent type:chore
Dominant language
TypeScript
Stars
82
Forks
2
Avg merge
1d 8h
Merged PRs (30d)
121

Description

Two redundancy/legacy clusters surfaced by analysis, both intersecting PR #775 (its storage / durable-artifact clean-break) — so coordinate with #775 before removing.

Dead storage subsystem (refuse-lossy orphan)

Since refuse-lossy (decisions 0016/0017), pages with unknown blocks classify lossy and are refused by assertRemoteMarkdownComplete before any storage write — so storage is always emptyStorage() and decideStorage can only return keep_self_contained. Dead on every live path:

  • the object_store storage variant, writeStorageObject, NmdStorageObjectV2, objectPath / makeNmdObjectRef
  • the requires_object_store branch in storage-policy.ts / sync.ts decideStorage
  • Needs-a-decision: persisted object_store on-disk read-compat (keep for old .nmd files, or drop under #775 clean-break?)

FrontmatterV1 legacy

NmdFrontmatterV1, decodeNmdFrontmatterV1/V1Sync, classifyNmdFrontmatterPayload — zero non-test importers; runtime is V2-exclusive. (The redundancy analysis notes #775 clean-break authorizes this.) NOTE: NmdSyncStateV1 is the live current sidecar — do NOT confuse/remove it.

Also

Unused prebuilt decoder exports (decodeNmdFrontmatterV2/V2Sync, decodeNmdSyncStateV1); the notion-effect-client public service exports with no internal consumer (NotionComments/Users/Search/Files/…) are a separate semver call, not in scope here.

Deferred from the #786 editor/consolidation work; coordinate with #775 (cl1-basin) on the storage model before deleting.

Posted on behalf of @schickling
field value
agent_name 🏔️ cl1-ridge
agent_session_id dd0a9ae0-bba8-43ad-8c01-449bd0bdca58
agent_tool Claude Code
agent_tool_version 2.1.165
agent_runtime Claude Code 2.1.165
agent_model claude-opus-4-8
runtime_profile /nix/store/4p78dsfk8riqcgk91zzjlgraibyf1hd4-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/cly1vi1qvxfyk37gmdk4qw4j33zrfpny-agent-skills-corpus/share/agent-skills/manifest.json
worktree effect-utils/schickling/2026-06-14-notion-md-vim
machine dev3
tooling_profile dotfiles@e7e383b

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

Coordinate with #775 first, then read storage-policy.ts and sync.ts and trace the listed object-store and FrontmatterV1 symbols, including their test-only importers. Done means removing only the dead storage and FrontmatterV1 paths under the agreed compatibility policy, while preserving the live NmdSyncStateV1 sidecar and keeping unrelated public exports out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.