overengineeringstudio / overengineeringstudio/effect-utils
notion-md: remove dead unsupported-block/object-store storage subsystem + FrontmatterV1 legacy (coordinate with #775)
Nobody has claimed this yet.
- 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_storestorage variant,writeStorageObject,NmdStorageObjectV2,objectPath/makeNmdObjectRef - the
requires_object_storebranch instorage-policy.ts/sync.tsdecideStorage - Needs-a-decision: persisted
object_storeon-disk read-compat (keep for old.nmdfiles, 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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