Skip to content

docs: fan-out support level overstated, missing known limitations #121

@justapithecus

Description

@justapithecus

Context

Auditing v0.6.0 fan-out for a real workload (discovery → gallery scraping with storage.put() sidecars) surfaced three functional gaps that aren't documented anywhere.

Findings

1. SUPPORT.md: Fan-out listed as "Supported"

Fan-out (--depth) | Supported is too strong given the blockers below. Should be Experimental at minimum until the gaps are closed.

2. PUBLIC_API.md: Known Limitations missing three functional gaps

None of these appear in the Known Limitations section:

  • storage.put() is nil for child runsFileWriter is intentionally nil (noted in code comments as a deferred refactor), meaning any script that writes sidecar files will silently fail or panic as a child run
  • target resolution is unfrozen — currently treated as a literal file path, but the implementation plan flags this as an open question. Users committing to a path format risk rework
  • category inheritance — child runs inherit the root's source and category, so a discovery root (category=discover) produces gallery children that land under discover instead of gallery in Lode partitions. No per-enqueue override exists

3. Fan-out-chain example doesn't warn about the boundary

The example uses emit.item() only (no storage.put()), which is fine — but there's no doc note warning users that storage.put() isn't wired for children. A user extrapolating from the example to a real workload with sidecar files would hit a silent failure.

4. CONTRACT_CLI.md fan-out section stated as fact without caveats

The --depth, --max-runs, --parallel flags are documented as stable contract, but the underlying implementation has known incomplete plumbing. At minimum, the contract should note:

  • storage.put() not available in child runs
  • category inherited from root (no per-child override)
  • target resolution semantics may change

Suggested fixes

  • SUPPORT.md: Fan-out (--depth) | Experimental
  • PUBLIC_API.md Known Limitations: add the three gaps above
  • Fan-out-chain example or its README: note that storage.put() is not available in child runs
  • CONTRACT_CLI.md: add a caveats subsection under fan-out

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions