Skip to content

Commit 9796f1a

Browse files
easelclaude
andcommitted
chore(tracker): close axon-351b9ec5 (policy-authoring version updates)
Sub-agent landed via merge of bead/axon-351b9ec5. Commit d60867d adds 2 Playwright tests in policy-authoring.spec.ts: policy-version testid increments after activation, and policy-schema-version testid increments after activation. Both leverage activateProposedPolicy (which calls putSchema with schema.version + 1), so AC1+AC2 are satisfied with one helper. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1ec27ed commit 9796f1a

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

.ddx/beads.jsonl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
{"acceptance":"Tests cover allowed preview state none, needs-approval pending, approve/reject transitions, required reason metadata, pending-to-expired state transition validity, single-use commit, replay rejection, and invalid transition errors.","claimed-at":"2026-04-23T03:29:19Z","claimed-machine":"sindri","claimed-pid":"2540820","created_at":"2026-04-22T12:02:55.114204434Z","dependencies":[{"issue_id":"axon-335786ff","depends_on_id":"axon-6e05eb48","type":"blocks","created_at":"2026-04-22T12:03:19Z"},{"issue_id":"axon-335786ff","depends_on_id":"axon-e7522836","type":"blocks","created_at":"2026-04-22T12:03:19Z"}],"description":"Add service-level lifecycle helpers for creating preview records, approving, rejecting, expiring, marking committed, and rejecting reuse of committed/rejected/expired intents.","execute-loop-heartbeat-at":"2026-04-23T03:29:19.900011075Z","id":"axon-335786ff","issue_type":"task","labels":["helix","phase:build","kind:implementation","area:api","feat-030"],"owner":"erik","parent":"axon-1cbd17c3","priority":0,"status":"closed","title":"build(feat-030): enforce intent lifecycle state transitions","updated_at":"2026-04-23T03:39:56.977482733Z"}
9898
{"acceptance":"Saving a template referencing a nonexistent field returns a validation error. Saving a template referencing an optional field succeeds with a warning. Template field extraction covers {{field}}, {{nested.field}}, and {{#each array}} syntax.","created_at":"2026-04-07T15:57:15.653595026Z","description":"When a markdown template is saved, validate that all field references in the template resolve against the collection's entity_schema. Analogous to validate_rule_definitions() in axon-schema/src/rules.rs. Warn on optional fields (may be absent at render time), error on fields that don't exist in the schema at all.","id":"axon-340fa160","issue_type":"task","labels":["helix","blocked"],"notes":"BLOCKED [2026-04-10T15:27:53-04:00]: intractable after 4 attempts with exponential backoff","parent":"axon-abf94a4d","priority":1,"status":"closed","title":"FEAT-026: Validate markdown templates against entity schema on save","updated_at":"2026-04-10T20:58:53.731161374Z"}
9999
{"acceptance":"- [ ] HTTP route registered + handler delegates to AxonHandler.transition_lifecycle\n- [ ] gRPC TransitionLifecycle RPC added to axon.proto + service.rs\n- [ ] MCP tool 'transition_lifecycle' added with proper schema\n- [ ] Integration tests cover happy path + invalid transition for all three transports\n- [ ] cargo test --workspace passes","claimed-at":"2026-04-16T02:52:01Z","claimed-machine":"eitri","claimed-pid":"270733","created_at":"2026-04-14T14:58:07.582707097Z","description":"Recovery bead from eitri-apr13 integration on 2026-04-14. Original bead: axon-686c066a (FEAT-015 follow-on).\n\nEitri commits: a9aa66f8 (HTTP), bc867f7c (gRPC), 1a7841ae (MCP), 98a09082 (HTTP integration test), 9e6852de (gRPC test).\n\nCherry-picked but failed (23 errors in axon-mcp): the MCP handlers use FilterNode and TraverseDirection from axon-api, but the cherry-pick replaced axon-mcp/src/handlers.rs with eitri's version which doesn't import them. Other unmerged eitri code dependencies likely follow.\n\nThis bead requires the AxonHandler.transition_lifecycle method to be in place (already integrated as ea0c43e via 7fcdb8fe).\n\nAcceptance criteria:\n- HTTP route POST /db/{db}/lifecycle/{collection}/{entity}/transition accepts { target_state, expected_version, actor?, audit_metadata? }\n- HTTP returns 200 with the updated entity, or 422 with structured InvalidTransition error\n- gRPC TransitionLifecycle RPC equivalent\n- MCP tool 'transition_lifecycle' with the same semantics\n- Integration tests cover all three transports for happy path + invalid transition\n\nReference test cases:\n- crates/axon-server/tests/api_contract.rs: http_lifecycle_transition_happy_path, http_lifecycle_transition_invalid_state, grpc_transition_lifecycle_*\n- crates/axon-mcp/tests/lifecycle.rs (or similar)","events":[{"actor":"ddx","body":"{\"resolved_provider\":\"agent\",\"resolved_model\":\"qwen3.5-27b\",\"route_reason\":\"direct-override\",\"fallback_chain\":[],\"base_url\":\"http://bragi:1234/v1\"}","created_at":"2026-04-16T00:30:47.410154281Z","kind":"routing","source":"ddx agent execute-bead","summary":"provider=agent model=qwen3.5-27b reason=direct-override"},{"actor":"ddx","body":"agent: provider error: POST \"http://bragi:1234/v1/chat/completions\": 502 Bad Gateway \nresult_rev=6841297267926dc5553fe1a93842bff3f0194aa2\nbase_rev=6841297267926dc5553fe1a93842bff3f0194aa2\nretry_after=2026-04-16T06:30:47Z","created_at":"2026-04-16T00:30:47.561590977Z","kind":"execute-bead","source":"ddx agent execute-loop","summary":"execution_failed"}],"execute-loop-heartbeat-at":"2026-04-16T02:52:01.72537694Z","execute-loop-last-detail":"agent: provider error: POST \"http://bragi:1234/v1/chat/completions\": 502 Bad Gateway ","execute-loop-last-status":"execution_failed","execute-loop-retry-after":"2026-04-16T06:30:47Z","id":"axon-348f7301","issue_type":"task","labels":["feat:lifecycle","recovery","eitri-salvage"],"owner":"erik","priority":2,"spec-id":"FEAT-015","status":"closed","title":"Lifecycle: wire transition_lifecycle to HTTP/gRPC/MCP transports (eitri-salvage)","updated_at":"2026-04-16T02:52:01.829775747Z"}
100-
{"acceptance":"AC1. policy-authoring.spec.ts adds a test asserting policy-version testid value increments after policy activation.\nAC2. policy-authoring.spec.ts adds a test asserting policy-schema-version testid value (if schema migration helper available; otherwise document N/A).\nAC3. existing policy-authoring tests continue to pass.\nAC4. cd ui \u0026\u0026 bun run lint \u0026\u0026 bun run typecheck pass.","created_at":"2026-05-09T12:52:04.931386241Z","description":"PROBLEM: policies/+page.svelte:668 (policy-schema-version) and :673 (policy-version) are rendered and asserted at v1 baseline (policy-authoring.spec.ts:169-170), but no test asserts the values UPDATE after policy activation. axon-11470d3b requires \"update correctly\" verification.\n\nPROPOSED FIX: Add a Playwright test in policy-authoring.spec.ts that captures the rendered policy_version, performs a policy activation (existing helper), then asserts the rendered version increments. Same pattern for schema_version after a schema migration if one is achievable in spec scope; if not, narrow scope to policy_version updates.\n\nNON-SCOPE: schema_version update test if no schema migration helper exists — call out as N/A in commit. grant_version (not surfaced on this view; out of domain). UI changes (testids already exist).","id":"axon-351b9ec5","issue_type":"task","labels":["helix","phase:build","kind:implementation","area:ui","feat-031","component:policy-authoring","component:version-context"],"parent":"axon-11470d3b","priority":2,"spec-id":"FEAT-031","status":"open","title":"build(feat-031): version indicators in policy-authoring view","updated_at":"2026-05-09T12:52:04.931386241Z"}
100+
{"acceptance":"AC1. policy-authoring.spec.ts adds a test asserting policy-version testid value increments after policy activation.\nAC2. policy-authoring.spec.ts adds a test asserting policy-schema-version testid value (if schema migration helper available; otherwise document N/A).\nAC3. existing policy-authoring tests continue to pass.\nAC4. cd ui \u0026\u0026 bun run lint \u0026\u0026 bun run typecheck pass.","claimed-at":"2026-05-09T13:17:55Z","claimed-machine":"sindri","claimed-pid":"2707297","closing_commit_sha":"d60867d72af409f88c5569af22990ba74997a0a5","created_at":"2026-05-09T12:52:04.931386241Z","description":"PROBLEM: policies/+page.svelte:668 (policy-schema-version) and :673 (policy-version) are rendered and asserted at v1 baseline (policy-authoring.spec.ts:169-170), but no test asserts the values UPDATE after policy activation. axon-11470d3b requires \"update correctly\" verification.\n\nPROPOSED FIX: Add a Playwright test in policy-authoring.spec.ts that captures the rendered policy_version, performs a policy activation (existing helper), then asserts the rendered version increments. Same pattern for schema_version after a schema migration if one is achievable in spec scope; if not, narrow scope to policy_version updates.\n\nNON-SCOPE: schema_version update test if no schema migration helper exists — call out as N/A in commit. grant_version (not surfaced on this view; out of domain). UI changes (testids already exist).","execute-loop-heartbeat-at":"2026-05-09T13:17:55.317166956Z","id":"axon-351b9ec5","issue_type":"task","labels":["helix","phase:build","kind:implementation","area:ui","feat-031","component:policy-authoring","component:version-context"],"owner":"erik","parent":"axon-11470d3b","priority":2,"session_id":"bead/axon-351b9ec5","spec-id":"FEAT-031","status":"closed","title":"build(feat-031): version indicators in policy-authoring view","updated_at":"2026-05-09T13:20:08.967727585Z"}
101101
{"created_at":"2026-04-06T12:11:38.861709838Z","dependencies":[{"issue_id":"axon-36e9327f","depends_on_id":"axon-4616a905","type":"blocks","created_at":"2026-04-06T12:11:47Z"}],"id":"axon-36e9327f","issue_type":"task","labels":["helix","build","api"],"parent":"axon-cf0472fd","priority":2,"spec-id":"FEAT-020","status":"closed","title":"Implement link discovery and neighbor queries (FEAT-020)","updated_at":"2026-04-06T12:13:44.741294946Z"}
102102
{"acceptance":"AC1. crates/axon-cypher/src/memory_store.rs defines the QueryStore trait used by executor-facing code. AC2. MemoryQueryStore (or equivalent) supports hand-built entities and typed links with properties. AC3. Store APIs support streaming-friendly entity scans, label/property filtering inputs, link traversal inputs, and lookup by id without backend-specific types. AC4. cargo test -p axon-cypher includes focused memory-store tests and passes; clippy clean for axon-cypher.","claimed-at":"2026-05-04T01:29:18Z","claimed-machine":"sindri","claimed-pid":"3908734","closing_commit_sha":"706f6745c9c8af732c8340d26b51fbc44f50069a","created_at":"2026-05-03T03:59:41.809066747Z","dependencies":[{"issue_id":"axon-390c67d1","depends_on_id":"axon-ad2a9669","type":"blocks","created_at":"2026-05-03T04:00:13Z"}],"description":"Split from axon-ad2a9669. Add crates/axon-cypher/src/memory_store.rs with a QueryStore trait and an in-memory entity/link store sufficient for executor tests. The store should represent entities with labels/properties and directed typed links with properties, expose streaming-friendly scans/lookups needed by the planner/executor, and remain independent of axon-storage::StorageAdapter for a future backend bead. Out of scope: executor operator semantics beyond minimal store-level unit coverage.","events_attachment":"axon-390c67d1/events.jsonl","execute-loop-heartbeat-at":"2026-05-04T01:41:38.619753954Z","id":"axon-390c67d1","issue_type":"task","labels":["helix","feat-009","area:cypher","kind:feature"],"owner":"ddx","parent":"axon-ad2a9669","priority":0,"session_id":"eb-8eb2e213","status":"closed","title":"build(feat-009): Cypher QueryStore and in-memory graph store","updated_at":"2026-05-04T01:42:59.520507745Z"}
103103
{"acceptance":"1. cargo test passes for all crates. 2. cargo clippy -- -D warnings clean for all crates. 3. cargo fmt --check clean. 4. No hardcoded references to port 3000 or the axon-server binary remain in test infrastructure.","claimed-at":"2026-04-12T01:58:49Z","claimed-machine":"sindri","claimed-pid":"2354806","created_at":"2026-04-12T01:56:22.335856353Z","description":"Run cargo test across the entire workspace and fix any cross-crate issues. Verify cargo check, cargo clippy -- -D warnings, and cargo fmt --check all pass for the full workspace. Check for any test regressions introduced by the FEAT-028 changes (port changes, binary removal, new dependencies). Update any hardcoded port references (3000 -\u003e 4170) in Playwright config or other test infrastructure.","id":"axon-391bf0a1","issue_type":"task","labels":["helix","phase:build","area:testing"],"owner":"erik","priority":1,"status":"closed","title":"chore: full workspace test pass and cross-crate validation","updated_at":"2026-04-12T02:35:39.848242401Z"}

0 commit comments

Comments
 (0)