Skip to content

Resource Management Phases 0-3 | Test harness, catalog, graph integration, file provider - #177

Merged
David-Noble-at-work merged 7 commits into
developfrom
feature/resource-management
Mar 3, 2026
Merged

David-Noble-at-work merged 7 commits into
developfrom
feature/resource-management

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Summary

  • Phase 0: devlore-test binary + graph test harness with t namespace (expectations), trace mode, and 4 baseline .star test scripts
  • Phase 1: ResourceManager (append-only ledger with monotonic IDs), NamespaceMap (URI→ResourceID with Resolve/Shadow), URI helpers with scheme constants and file path canonicalization
  • Phase 2: Wire ResourceManager/NamespaceMap into Graph lifecycle, FillSlot creates implicit edges from resource identity, extractResource reflection helper, removed dead BackedUp annotation

Test plan

  • make test — all pass
  • make vet — clean
  • make test-race — no data races
  • No BackedUp references remain in code/tests
  • No legacy/backward/compat patterns

David-Noble-at-work and others added 7 commits March 1, 2026 22:16
Separate binary (cmd/devlore-test/) with process-level isolation for
end-to-end testing of Starlark plan → graph → execute → verify.

- internal/e2e/testrunner/: Runner, TestContext (t namespace), Tracer
- 4 baseline test scripts: write_text, copy, write_and_read, compensation
- Star extension: com.noblefactor.devlore.Test (host.exec pending)
- Makefile: add devlore-test build target, fix stale STAR_REPO path
- Restore t.Skip for #170, #171 (gen template projection gaps)
Append-only resource ledger with monotonic ID assignment, URI→ResourceID
namespace with Resolve/Shadow semantics, and scheme-aware URI builder
with file path canonicalization. Pure additions — no existing code changed.
Append-only resource ledger with monotonic ID assignment, URI→ResourceID
namespace with Resolve/Shadow semantics, and scheme-aware URI builder
with file path canonicalization. Pure additions — no existing code changed.
Decision #9: the ledger is the sole source of truth for resource identity
and lineage. Node annotations (resource.input/resource.output) eliminated
from Phase 2 — they would duplicate ledger data and cannot represent
resources produced at runtime.
Append-only resource ledger with monotonic ID assignment, URI→ResourceID namespace with Resolve/Shadow semantics,
and scheme-aware URI builder with file path canonicalization. Pure additions — no existing code changed. Decision #9:
the ledger is the sole source of truth for resource identity and lineage. Node annotations (resource.input/resource.output)
eliminated from Phase 2 — they would duplicate ledger data and cannot represent resources produced at runtime. Legacy
backup annotation flagged for removal in Phase 2.
Add missing SPDX license header to resource.go for consistency with
namespace.go and test files. Add make test-race target so race
detection runs through make, not bare go commands.
Graph Integration: wire ResourceManager and NamespaceMap into Graph lifecycle. FillSlot creates implicit edges from
resource identity (OriginNodeID). extractResource reflection helper handles direct Resource, embedded struct, and
map[string]any forms. Removed dead BackedUp annotation (Decision #9: ledger is sole source of truth).
@David-Noble-at-work
David-Noble-at-work merged commit f961850 into develop Mar 3, 2026
2 checks passed
@David-Noble-at-work
David-Noble-at-work deleted the feature/resource-management branch March 3, 2026 18:10
@David-Noble-at-work David-Noble-at-work changed the title feature(op): Resource management — Phases 0-2 Resource Management Phases 0-3 | Test harness, catalog, graph integration, file provider Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant