feat: add runtime owner foundation - #70
Conversation
Local validation
No unrelated implementation changes included; sandbox orchestration, Gateway/Terminal attach, and runtime deployment remain deferred. |
noa-lucent
left a comment
There was a problem hiding this comment.
Thanks for the runtime ownership foundation. I found a few blocking issues before this can merge:
- sandbox/runtime-only volumes currently fail list/get enrichment because the code still requires
volume_id/definition metadata; TouchWorkloadstill only authorizes byagent_id, so it cannot support sandbox activity touches from Terminal Proxy and does not useowner_kind/owner_idfor agent-instance ownership;- the migration backfills
owner_idfrom the runtime row id, not the existing agent instance identity, so existing records are mis-owned.
Requesting changes for these correctness issues.
|
Additional blocking note that GitHub would not anchor cleanly in the diff: |
Review fixesAddressed Noa's blockers in the same PR branch:
Commit pushed: Local validation
E2E status: GitHub E2E is currently pending on the PR; no local DevSpace/e2e environment was available to run it locally. |
|
Updated the PR branch with a fix for the E2E Summary:
Validation:
Commit pushed: |
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete. I verified the prior blockers are addressed in the latest code:
- runtime-only sandbox volumes now skip definition/name/attachment enrichment and return nullable definition fields cleanly;
TouchWorkloadnow usesowner_kind/owner_idand supports the internal sandbox touch path;- migration/create defaults no longer backfill
owner_idfrom the runtime row id; - UUID scanning now handles raw pgx UUID byte-array representations.
Approving from code review.
noa-lucent
left a comment
There was a problem hiding this comment.
Updated re-review against current HEAD 2cc0112476f1a4f50b18105d6692cb4926320ac8.
I reviewed the current diff after the review-fix and UUID-scan commits. The prior blockers remain addressed in the latest code:
- runtime-only sandbox volumes skip definition/name/attachment enrichment and return nullable definition fields cleanly;
TouchWorkloadusesowner_kind/owner_idand supports the internal sandbox touch path;- ownership migration/create defaults no longer backfill
owner_idfrom the runtime row id; - UUID scanning handles raw pgx UUID byte-array representations.
Approving the current head from code review.
|
Updated the PR branch with a fix for the remaining E2E Summary:
Validation:
Commit pushed: |
|
Current CI status after latest reruns:
I’m treating PR #70 as blocked on CI/environment infrastructure until build/E2E can complete green or a maintainer resolves the workflow issue. |
CI/E2E updateI own this PR and pushed fixes for the failing checks. Changes
Root causes
Local validation
|
E2E compile failure updateI traced the current PR #70 E2E failure to the shared Root causeWith the runners E2E workflow now scoped to
Those helpers live in Fix opened in e2eOpened dependency PR: agynio/e2e#215 It:
PR #70 updateUpdated runners PR #70 to temporarily use the fixed e2e action branch:
Once e2e PR #215 merges, I will switch this back to ValidationIn
|
E2E checkout failure updateFixed the new checkout failure. Root causeThe e2e action branch changed its internal checkout to use FixUpdated the e2e dependency branch and runners PR #70:
Once agynio/e2e#215 merges, I will switch runners PR #70 back to |
noa-lucent
left a comment
There was a problem hiding this comment.
Thanks for the updates. I found one remaining blocker in the runtime ownership path: TouchWorkload still accepts the legacy agent-class identity as an alternative to owner_id, which weakens the new owner model and lets a class identity touch all workloads for that class.
Requesting changes until that fallback is removed and tests assert owner identity only.
|
Updated PR #70 for Noa's TouchWorkload review comment. Summary:
Changed files:
Validation:
Note: e2e PR agynio/e2e#215 is approved; this branch still references that e2e action branch until it lands. |
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete for Casey's latest commit dfd7e12e2ecf8c5bb4539a417a1e50a9a3db2dde.
I verified the outstanding blocker is addressed: TouchWorkload now requires the caller identity to match owner_id for agent_instance workloads, and the legacy agent-class fallback has been removed. The tests were updated to assert agent-class identity is denied.
Approving from code review.
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete for latest head f98cb016523e94172f54db66ffbba767d5941c7e.
The latest commit is CI-only/no code-diff relative to the previously approved dfd7e12 owner-identity fix, and the runners code remains approved from review. Note: the companion e2e PR #217 still needs one E2E helper alignment before that suite fully validates the canonical owner model.
|
Follow-up status after CI/E2E:
Latest validation:
|
|
Resolved the active E2E blocker from run 29588563668 / job 87911650898. Root cause:
Fix:
Validation:
|
Summary
owner_kind,owner_id) for sandbox-owned runtime records.volume_definition_id/ deprecatedvolume_id.References agynio/architecture#162.
Context
Deferred
Validation
buf generate buf.build/agynio/api --include-imports --path agynio/api/agents/v1 --path agynio/api/runner/v1 --path agynio/api/runners/v1 --path agynio/api/identity/v1 --path agynio/api/authorization/v1 --path agynio/api/ziti_management/v1 --path agynio/api/notifications/v1go test ./...git diff --checkgo vet ./...go build ./...