- New OQ-FS-17: the multi-agent fork fan-out (many sessions forking the
same workspace on the shared dev server — directories, docker
containers, or remote mounts) as the workload that makes
content-addressed dedup load-bearing, with the honest economics:
file-level granularity already captures the fork win (unchanged files
dedup identically); chunk-level pays only on large in-place-edited
files and costs per-chunk metadata
- Inline threshold recorded as backend-dependent (SQLite's ~100KB
observation; postgres/KV differ) — a configuration knob over a storage
profile, not a constant
- Two named objectives recorded in the working direction: efficient
many-repo git storage (OQ-FS-12) + SFTP-capable VFS for remote
mounting (OQ-FS-16), with the container fan-out variant noted
- rudolfs precision: verified it genuinely has an S3 backend (rusoto_s3);
the bucket/namespace key, disk-cache-permanent split, and swappable
permanent backend are its actual patterns; cache-ownership question
(store-layer decorator vs door-layer cache) parked in OQ-FS-17
- POC #4 feeds OQ-FS-17; survey list gains the dedup-economics item
- AGENTS.md: new convention 13 (caches key on content hashes, never on
paths), conventions 14-18 renumbered with cross-references fixed,
rudolfs added to the third-party reference list, fork fan-out added
to the quick reference
Verification: docs-only repo — OQ-FS-01..17 contiguous, every referenced
workspace path exists, convention cross-references checked after
renumbering
- Reframe storage identity: git-compatible sha1/sha256 (algorithm-tagged),
not BLAKE3 — the ancestor POCs' BLAKE3 was an iroh-blobs artifact, and
consuming iroh-blobs (OQ-FS-03 option (a)) dissolves with it; findings
transfer (inline/outboard hybrid, GC shape, write-ordering analysis),
code doesn't
- Chunk-level dedup adopted as working goal for large content, with the
honest calibration recorded: git dedups at object granularity (objects
are effectively single-chunk); chunk manifests are the generalization
that pays on workspace-scale files
- Two-crate working direction: alkblobs (bucket-style CAS blob store,
appfile layout) beneath alkfs (path tree + branches + serving protocol);
durability contract now crosses the put/get seam
- New OQ-FS-16: remote-mount anchor workload — today's sshfs/vanilla-SFTP
mount of this dev server's workspace, with an honest decomposition of
why it's slow and what an indexed VFS fixes server-side
- POC register: #3 rewritten as alkblobs sha1/sha256 store skeleton,
#4 reframed (git objects ride whole-file), new #8 mount-workload
baseline (sshfs latency measurement, runnable today)
- AGENTS.md: two-crate direction in the crate description + convention 10
(identity, chunk-granularity note, seam durability contract) + a
Phase-0 working-direction quick-reference section (leanings, not
decisions)
Verification: docs-only repo — all 16 OQ ids contiguous, every referenced
workspace path exists, BLAKE3 references re-checked as historical context
- .gitignore matching sibling repos (target/, node_modules/, .worktrees/, Cargo.lock)
- AGENTS.md on the alkcall/alksocks template: git workflow, 17 project
conventions adapted for a virtual-filesystem crate (no forced host-FS
access, metadata/content split, durability ordering, storage-trait
one-way doors), verification commands (docs-only posture for Phase 0),
and architecture context pointing at the ancestor research and family ADRs
- docs/research/phase-0.md: initial Phase 0 draft — vision/scope sketch,
guiding principles, what's already settled, prior art (alknet-filesystem
POCs, iroh-blobs + external-store probe, git/git-lfs, alkgit backend
seam, russh-sftp, SQLite/honker, rudolfs), 15 open questions
(OQ-FS-01..15) grouped by theme, a 7-entry candidate POC register
(proposals, none run), survey list, and an unconverged checklist
Verification: docs-only repo — every referenced path, ADR id, and OQ id
checked to exist (workspace paths, alkcall ADRs 034-051, alkgit research
files); OQ numbering OQ-FS-01..15 complete with no gaps