Skip to content

Resource Management Phase 1 | ResourceCatalog, NamespaceMap, and URI helpers - #176

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

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

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Summary

  • Append-only ResourceManager ledger with monotonic res-<N> ID assignment, mutex-guarded for concurrent access
  • NamespaceMap with Resolve/Shadow/Current for URI→ResourceID tracking with version lineage
  • ResourceURI() helper with file:// path canonicalization (filepath.Abs + filepath.Clean) and scheme constants (file, git, pkg, svc, mem)
  • 15 new tests (6 resource, 9 namespace) including concurrent access verification

Design 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.

Pure additions — no existing code changed, no existing tests modified.

Test plan

  • make test — all tests pass
  • make vet — clean
  • No legacy|backward|compat|deprecated in new code
  • No stub functions — all methods fully implemented

David-Noble-at-work and others added 4 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.
@David-Noble-at-work
David-Noble-at-work merged commit 1b208b9 into develop Mar 3, 2026
2 checks passed
@David-Noble-at-work David-Noble-at-work changed the title feature(op): ResourceManager, NamespaceMap, and URI helpers — Phase 1 Resource Management Phase 1 | ResourceCatalog, NamespaceMap, and URI helpers 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