Skip to content

[þing-02] P1 — guard or retire the legacy path (unfao.py:560, :571) before 2026-11-30 #145

Closed

Description

@Polichinel

Ratified follow-through from þing 02, ledger row P1. Already owed (register C-40); this þing gives it a date, not new work.

What. The contract path is guarded: _ContractStorePort.upload (unfao.py:55-77) captures result.success and raises on False, so an expired key aborts the delivery with a named error before the manifest commits. The legacy path does not — _save discards the result at unfao.py:560 and :571, bare dsm.upload_data(...), no capture, no check. Identical to the two call sites in views-pipeline-core#330.

Consequence. The 2026-11-30 expiry is loud on the contract path and silent on the legacy one. The split is by path, not by seat — this seat corrected views-pipeline-core's inference about its own runtime to establish that (orð_12 §1).

Fix. Guard it like :69-77, or retire the legacy forecast branch. Before 2026-11-30.

Provenance worth keeping. The contract-path guard is not foresight: it exists because run-0's historical upload stranded an invisible orphan — bytes uploaded, metadata rejected, the store logging failure and the ledger reporting success (PR #132). That is C-227's exact shape, on this seam, discovered by being bitten. It took one evening.

Activity

  1. Polichinel commented on Aug 1, 2026

    @Polichinel
    CollaboratorAuthor

    Superseded and closed by #149 (epic #148).

    This issue offered "guard or retire". The epic retired: the legacy path's silent uploads went with the path itself, and the surviving delivery uploads only through _ContractStorePort, which raises on a failed result — the guard written after run-0 stranded an invisible orphan (PR #132).

    Guarding would have meant hardening code already decided for deletion. The removal was C-40's named post-run-0 follow-up, four days overdue when this issue was filed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions