← The board

C5 Storage & hardlink management

Area
C — Trust & correctness
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.6.0
Labels
storage, verification
Relates to
A2A4C1D5

The feature in the specification · Read at

Requirements

  1. C5-R1acceptedMUST

    Hardlink capability MUST be determined by creating and inspecting a hardlink, never inferred from filesystem type.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/doctor/storage.rs
    cited by
    lemonfiber@dbc5bc238dlemonfiber@bace68a7a6lemonfiber@693c8c411clemonfiber@12382b7be1
  2. C5-R2acceptedMUST

    Storage mode MUST be derived from the observed result, not selected by the operator.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@bace68a7a6lemonfiber@12382b7be1
  3. C5-R3acceptedMUST

    Loss of hardlink capability MUST be expressed as consequences — import time, disk usage, seeding — not as a filesystem property.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/storage.rscrates/lemonfiber-core/src/servarr/importing.rs
    cited by
    lemonfiber@5ffa0388b1
  4. C5-R4acceptedMUST

    Where hardlinks are unavailable, the \arrs MUST be configured to copy, and this MUST be stated.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/storage.rscrates/lemonfiber-core/src/servarr/importing.rs
    cited by
    lemonfiber@5ffa0388b1
  5. C5-R5acceptedMUST

    A manifest declaring more than one mount beneath the data root MUST fail validation.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/project/entry.rscrates/lemonfiber-core/src/stack.rs
    cited by
    lemonfiber@4d2aed7e9alemonfiber@caf5900f11
  6. C5-R6acceptedMUST

    Projected space exhaustion MUST be computed from queued content and alerted before it occurs.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/targets/downloads.rscrates/lemonfiber-core/src/doctor/storage.rs
    cited by
    lemonfiber@7e06b72da2lemonfiber@3adeaaf1c5
  7. C5-R7acceptedMUST

    Data root availability MUST be monitored while services run.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/model.rscrates/lemonfiber/src/main.rs
    cited by
    lemonfiber@a0efb9bb8e
  8. C5-R8acceptedMUST

    Loss of the data root MUST stop dependent services rather than allow writes into an empty mount point.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/model.rscrates/lemonfiber/src/main.rs
    cited by
    lemonfiber@a0efb9bb8e
  9. C5-R9acceptedMUST

    A reappearing data root MUST NOT trigger automatic restart.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/model.rscrates/lemonfiber/src/main.rs
    cited by
    lemonfiber@a0efb9bb8e
  10. C5-R10acceptedMUST

    Operator-facing and service-facing permission problems MUST be reported distinctly.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/config.rscrates/lemonfiber-core/src/doctor/storage.rscrates/lemonfiber/src/main.rs
    cited by
    lemonfiber@5a8575beb3
  11. C5-R11acceptedMUST

    Loss of previously working hardlink capability MUST be detected and alerted.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/storage.rs
    cited by
    lemonfiber@693c8c411clemonfiber@ab8042ab2d
  12. C5-R12acceptedMUST

    The data root path MUST be validated for service compatibility at selection time.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/storage.rscrates/lemonfiber-core/src/servarr/importing.rs
    cited by
    lemonfiber@5ffa0388b1
  13. C5-R13acceptedMUST

    A symlinked data root MUST be resolved before capability testing.

    locked by
    0.6.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/storage.rs
    cited by
    lemonfiber@12382b7be1
  14. C5-R14acceptedMUST

    Platform-specific hardlink limitations — exFAT, SMB on macOS, the WSL2 boundary — MUST be detected and named specifically.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@bace68a7a6lemonfiber@12382b7be1