Feat v0.9.2 Starlark converter consolidation + snapshot cleanup (#75)
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Has been skipped
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-go-pg (pull_request) Successful in 2m43s
CI/CD / test-sqlite (pull_request) Successful in 2m52s
CI/CD / build-and-deploy (pull_request) Successful in 2m15s

Consolidate duplicate Go↔Starlark converters into sandbox/convert.go
and snapshot parsers into models/snapshot.go. Standardize snapshot
creation on wrapped format. Net -393 lines across 21 files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 14:20:05 +00:00
parent d03dfe502f
commit b8a4c516ff
24 changed files with 362 additions and 479 deletions

View File

@@ -2,6 +2,44 @@
All notable changes to Armature are documented here.
## v0.9.2 — Starlark Converter Consolidation + Snapshot Cleanup
Consolidates duplicated Go↔Starlark conversion code and snapshot
parsers into canonical locations, removing ~350 lines of copy-paste
across 8 files.
**Converter consolidation**
- New `sandbox/convert.go` with four exported functions:
`GoToStarlark`, `StarlarkToGo`, `DictToMap`, `MapToDict`.
- Superset implementation handles all Go primitive types (nil, bool,
int, int64, float64, string), containers (map, slice), and Starlark
Tuple — covering every variant that previously existed.
- Deleted duplicate converters from `workflow/automated.go`,
`handlers/starlark_helpers.go`, `handlers/workflow_hooks.go`,
`sandbox/workflow_module.go`, `sandbox/realtime_module.go`,
`sandbox/files_module.go`, `triggers/event.go`, `triggers/webhook.go`.
- SQL-specific converters in `db_module.go` (error-returning, `[]byte`
handling) intentionally excluded — different semantics.
**Snapshot parser consolidation**
- New `models/snapshot.go` with `ParseSnapshotStages()` handling both
wrapped `{"stages":[...]}` and legacy flat `[...]` formats.
- Deleted three identical parsers from `workflow/engine.go`,
`handlers/workflow_instance_handlers.go`, and
`handlers/workflow_assignment_handlers.go`.
**Snapshot format standardization**
- `workflow_packages.go` publish path now emits wrapped format,
matching `workflows.go`. All snapshot creation is consistent.
**Tests:** 7 new converter tests with round-trip coverage. Existing
engine, handler, and workflow tests updated and passing.
---
## v0.9.1 — Server-Side Sub-Path Routing
Hardens multi-surface routing so full-page refreshes on sub-paths work