Skip to content

chore: upgrade @objectstack to 7.4.1 + comprehensive flow & QA audit#8

Merged
xuyushun441-sys merged 1 commit into
mainfrom
feat/upgrade-objectstack-741-flow-audit
Jun 1, 2026
Merged

chore: upgrade @objectstack to 7.4.1 + comprehensive flow & QA audit#8
xuyushun441-sys merged 1 commit into
mainfrom
feat/upgrade-objectstack-741-flow-audit

Conversation

@xuyushun441-sys
Copy link
Copy Markdown
Contributor

Summary

  • Dependency upgrade: all @objectstack/* packages bumped ^7.3.0 → ^7.4.1 across all 9 templates
  • Approval model migration: ApprovalProcess removed in 7.4.x; converted expense and content to approval flow nodes (ADR-0019)
  • Flow capability audit: all 25 notification/email stub nodes migrated to real notify builtin; project flows fixed from invalid node types
  • project template repaired: 47 pre-existing typecheck errors fixed
  • QA rewritten + runnable: stale todo/hr fixtures replaced; scripts/run-qa.mjs added; both suites pass 3/3 green

Validation

  • All 9 templates: tsc --noEmit ✅ + objectstack build
  • Browser: all 9 Console UIs login and show correct app ✅
  • QA: todo 3/3 ✅, hr 3/3 ✅ (via pnpm test:qa)

🤖 Generated with Claude Code

## Dependencies
- Bumped all @objectstack/* packages from ^7.3.0 → ^7.4.1 across all 9 templates.

## Breaking-change migrations (7.4.x)

### Approvals (ADR-0019)
- `ApprovalProcess` export and stack `approvals:` key removed in 7.4.x.
  Approvals are now `type: 'approval'` nodes on `record_change` flows.
  Migrated `packages/expense` and `packages/content`; deleted their
  `src/approvals/` directories.

### Flow capability re-evaluation
- **All 21 notification nodes** migrated from `script` + `actionType:
  'notification'` (runtime no-op in 7.4.x) to the real `notify` builtin
  node, which delivers via the messaging service. Also migrated 4
  `send_notification` and 2 `email` stubs. `link:` → `actionUrl:`.
- `packages/project` flows used `query`/`foreach`/`condition` node types
  with no registered executor. Replaced with `get_record`/`loop`/`decision`
  and object-form `filter`; wired the 3 flows back into the stack.
- `type: 'scheduled'` → `type: 'schedule'`; condition-node out-edges
  `type:'true'/'false'` → `type:'conditional'` + `condition`/`isDefault`.

## project template repair (47 pre-existing typecheck errors)
- Rewrote both state machines to canonical `StateMachineConfig` (XState)
  shape and `stateMachines: { lifecycle }` wiring.
- Fixed 11 view `filter`s from inside `data` provider to view-level array
  form `[{field, operator, value}]`.
- Normalized ESM relative imports to `.js`.

## QA fixtures + runner
- Replaced stale `packages/todo/qa` and `packages/hr/qa` fixtures (both
  were copies of an old todo model that referenced deleted objects).
  Rewrote against real schemas (todo: task lifecycle + labels; hr: employee
  onboarding + time-off state machine + documents).
- Added `scripts/run-qa.mjs`: a versioned-API-aware QA runner that handles
  better-auth sign-up + Origin header. Both suites pass 3/3 scenarios.
- Each template's `test` script now runs `objectstack build` (the working
  validation gate); `test:qa` runs the live scenario suite.

## Validation
All 9 templates pass `tsc --noEmit` and `objectstack build` on 7.4.1.
All 9 Console UIs boot cleanly (login verified, correct app shown, Studio
loads metadata). QA scenarios: todo 3/3 ✅, hr 3/3 ✅.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@xuyushun441-sys xuyushun441-sys merged commit ada6a9a into main Jun 1, 2026
1 of 3 checks passed
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.

2 participants