Feat v0.3.5 settings icd clone #19

Merged
xcaliber merged 3 commits from feat/v0.3.5-settings-icd-clone into main 2026-03-28 13:32:23 +00:00
Owner
No description provided.
xcaliber added 1 commit 2026-03-28 12:53:40 +00:00
Feat v0.3.5 settings audit, ICD, clone + v0.3.6 roadmap
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 20s
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-go-pg (pull_request) Failing after 2m42s
CI/CD / test-sqlite (pull_request) Successful in 3m0s
CI/CD / build-and-deploy (pull_request) Has been skipped
752d0697e9
v0.3.5 deliverables:
- Clone endpoint (POST /workflows/:id/clone) with deep stage copy
- 7 engine integration tests (28 total): lifecycle, branch routing,
  public entry, signoff gate, rejection, cancel, error cases
- Settings audit: staleness_timeout_hours + branch_rules UI in
  team-admin workflow editor
- ICD: fixed stale schemas, added ~20 new endpoint paths for
  instances, assignments, signoffs, public entry, clone, team roles

Roadmap additions (v0.3.6–v0.3.8):
- v0.3.6: 4 example workflow packages + demo surface proving
  public entry, branch rules, Starlark automation, signoff gates,
  HTTP webhooks end-to-end
- v0.3.7: package audit for non-chat packages
- v0.3.8: builder image + bundled packages for zero-config first run

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
xcaliber added 1 commit 2026-03-28 13:09:25 +00:00
Fix 6 Postgres-specific test failures in workflow store
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 5s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / test-go-pg (pull_request) Failing after 2m24s
CI/CD / test-sqlite (pull_request) Successful in 2m45s
CI/CD / build-and-deploy (pull_request) Has been skipped
619e6a040a
Root causes:
- PG store CreateInstance/CreateAssignment set defaults in local vars
  but didn't write them back to the struct, so callers saw empty
  Status fields (violating CHECK constraints on subsequent updates)
- PG JSONB normalizes whitespace ({"key": "val"} vs {"key":"val"})
  but tests compared exact strings
- ListSignoffs test used "nonexistent" as instance_id but PG
  validates UUID format

Fixes:
- Write defaults directly to inst.Status / a.Status in PG store
  (aligns with SQLite store which already did this)
- Add jsonEq() helper using json.Compact for whitespace-agnostic
  JSON comparison across all stage_data/review_data assertions
- Use valid zero-UUID for non-existent instance in signoff test

All 35 tests pass on SQLite (28 store + 7 engine).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
xcaliber added 1 commit 2026-03-28 13:23:59 +00:00
Fix jsonEq to handle PG JSONB key reordering
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-go-pg (pull_request) Successful in 2m29s
CI/CD / test-sqlite (pull_request) Successful in 2m36s
CI/CD / build-and-deploy (pull_request) Successful in 1m32s
fe176dbfdd
PG JSONB normalizes key order (alphabetical), so json.Compact alone
wasn't sufficient — {"approved":true,"notes":"LGTM"} stored as
{"notes":"LGTM","approved":true}. Unmarshal+remarshal normalizes
both sides before comparison.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
xcaliber merged commit d68451fe8e into main 2026-03-28 13:32:23 +00:00
xcaliber deleted branch feat/v0.3.5-settings-icd-clone 2026-03-28 13:32:24 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: switchboard/core#19