V0.27.0
Name:v0.27.0Status:planning

v0.27.0 — External data & hosted content

Two threads that together let the pipeline ingest real data from outside the content tree and run without a local filesystem. The first feeds charts and sortable tables from actual data files; the second consolidates the remaining ad-hoc fs seams into one injectable interface so a hosted renderer (the GitHub-app product) can build a tenant's repo straight from the API.

Milestone burndown: 0 open work items remaining; peak 0, started Jun 3001Jun 30Jul 11
Open work items Ideal burndown
Progress 5/5 work items
Related 14

Work Items

Done 5
WORK-481 main
ProjectFiles interface + fs/memory providers
The foundation of SPEC-113: one synchronous ProjectFiles interface in @refrakt-md/types, with filesystem and in-memory providers, that replaces the four ad-hoc fs seams. Containment becomes an interface contract, so no consumer re-implements path-safety. Also lands the recordable-read wrapper that ADR-025 names as the one piece of groundwork for future incremental rebuild.
high moderate
5/5 criteria
WORK-482 main
Migrate sandbox reads to ProjectFiles + close the src traversal gap
Move the sandbox example read seam (__sandboxReadFile family + preprocess sandbox hooks) onto the WORK-481 ProjectFiles provider, and route the sandbox src directory join through it so it inherits containment — closing the unguarded examplesDir + '/' + src path-traversal gap.
high moderate
3/3 criteria
WORK-483 main
snippet / expand / file-ref readers delegate I/O to ProjectFiles
Close the main gap in SPEC-113: read-file.ts (and the snippet/expand/file-ref pipelines) call node:fs directly today, bypassing the injectable seam — so tree mode is not actually fs-free for snippets. Delegate the I/O to the WORK-481 provider, keeping line-slicing and diagnostics intact.
high moderate
3/3 criteria
WORK-484 main
fileRoots + plan scan + loadContentFromTree plumbs; in-memory full-build test
Finish the consumer migration and the virtual entry point: scan fileRoots and the plan plugin's configure scan through the provider, expose projectFiles + gitTimestamps on loadContentFromTree, and prove a full site builds from a pure in-memory map.
high moderate
3/3 criteria
WORK-485 main
Docs — ProjectFiles contract + fetch-then-build materialization
Document the ProjectFiles contract and the fetch-then-build materialization pattern for remote hosts, so plugin and adapter authors know the seam and how a hosted renderer feeds it.
medium simple
2/2 criteria