Skip to content

chore(deps): upgrade @objectstack to 9.9.1 - #64

Merged
os-zhuang merged 1 commit into
mainfrom
chore/upgrade-9.9.1
Jun 18, 2026
Merged

os-zhuang merged 1 commit into
mainfrom
chore/upgrade-9.9.1

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Upgrade all @objectstack/* dependencies from ^9.8.0 → ^9.9.1 across every template and the all composition workspace.

Verification (build passing ≠ it works — booted it)

  • ✅ pnpm typecheck, pnpm build, pnpm format:check, pnpm -r test all pass
  • ✅ Composed the marketplace (@objectlab/all): 9 apps · 41 objects · 30 flows
  • ✅ Booted the all env on a fresh DB → Server is ready + seeded on empty DB, zero sys_* errors on a clean single-instance start
  • ✅ Browser-verified all 9 apps as the seeded admin (admin@objectos.ai): dashboards, list views, status grouping, lookups, and rollups all render against seed data

Notes / follow-ups (not blocking, left out of this PR)

  1. New liveness-dead-property lint (9.9.x): ~112 warnings across all templates for no-op object flags enable.trackHistory / enable.files / enable.feeds / enable.activities. Per-field Field.trackHistory and the sys_* objects are the live mechanisms. Worth a focused cleanup PR.
  2. Seed-data validation failures: 4 compliance_assessment + 2 content_piece + 2 content_cta seed records are rejected at boot (rule_violation / piece required). This leaves the compliance "Assessments Completed by Month" chart empty.
  3. Dashboard polish (cross-template): KPI cards render the raw field alias (control_count, sum_total_value, task_count) as the unit label, and chart titles stay in English under zh-CN dashboards.
  4. Todo default landing is empty: seed todo_task rows have no assignee, so the default "My Work" dashboard shows 0/0/0 for the admin even though 16 tasks exist.

🤖 Generated with Claude Code

Bump all @objectstack/* dependencies from ^9.8.0 to ^9.9.1 across every
template and the `all` composition workspace.

Verified locally:
- pnpm typecheck, build, format:check, and -r test all pass.
- Composed + booted the `all` env (41 objects, 30 flows, 9 apps); server
  reaches "Server is ready" + "seeded on empty DB" with no sys-table errors.
- Browser-verified all 9 apps (compliance, content, contracts, expense,
  helpdesk, hr, procurement, pm, todo): dashboards, list views, grouping,
  lookups, and rollups render against seed data.

9.9.1 adds a new `liveness-dead-property` build lint flagging no-op object
`enable.*` flags (trackHistory/files/feeds/activities); these are warnings
only and are left for a focused follow-up cleanup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit ffa87ce into main Jun 18, 2026
3 checks passed
@os-zhuang
os-zhuang deleted the chore/upgrade-9.9.1 branch June 18, 2026 04:46
os-zhuang added a commit that referenced this pull request Jun 18, 2026
…oard captions (#65)

Follow-up to the 9.9.1 upgrade (#64). Three template-side improvements
surfaced by booting the `all` env and verifying every app in the browser.

1. Remove dead `enable.*` object flags (112 across all 9 templates).
   9.9.1 added a `liveness-dead-property` lint: object-level
   `enable.trackHistory|files|feeds|activities` are no-ops. History is
   per-field (`Field.trackHistory`, plugin-audit / ADR-0052); comments,
   attachments and activities live on the `sys_*` objects. Stale JSDoc/
   description references updated to match. Build now emits zero warnings.

2. Fix seed-validation failures that aborted records at boot.
   9.9.x now evaluates `field == null` script rules on insert (previously
   skipped when the field was omitted). Two rules require an OPTIONAL
   sys_user lookup that seed/import/automation paths cannot populate —
   reference seeds resolve by natural-key string and there is no seed-time
   user to point at (the admin is minted post-boot via better-auth):
     - compliance_assessment.completed_requires_assessor
     - content_piece.in_review_requires_assignee
   Both downgraded error → warning (the fields are optional; this stays a
   UI data-quality signal without hard-blocking inserts). Fixes 4 rejected
   compliance assessments + 2 content pieces (and 2 CTAs that cascaded off
   the dropped pieces). Verified: compliance_assessment 5, content_piece 14,
   content_cta 14; fresh boot logs zero ERROR lines.

3. Humanize dashboard KPI captions. Dataset measures used the raw alias as
   their label (`control_count`, `sum_total_value`, `task_count`), which the
   metric widgets render as the caption under the number. Gave every measure
   a readable label (Controls, Total Value, Tasks, …) across all datasets.

Verified in the browser across all 9 apps (login admin@objectos.ai): boots
clean, captions read e.g. "Controls"/"Total Value", previously-rejected
records present.

Note: todo's "My Work" dashboard is empty for the admin BY DESIGN — it is a
personal dashboard filtered to `{current_user_id}`, and seeds cannot assign
the human admin (no seed-time user reference). Left unchanged. The compliance
"Assessments Completed by Month" chart still renders "No rows" despite the
data now existing and the cube returning it — a pre-existing analytics
time-series/date-bucketing behavior, not template-fixable here.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant