Repository navigation
Description
domain:devx#1 · os-warren · session_01JQwxbZPab3QQx2KjZZikSr
Post-release smoke of the PUBLISHED 18.3.0 (npm), real user paths, under release-aftercare.md B and checklist-test §6. Asked by the maintainer in the project chat, 2026-11-03 15:36Z, verbatim: 「18.3 发布了,需要测试吗?」 then 「ok」; posting ordered 2026-11-04 06:47Z: 「发」, 「用pm-dispatch」. Shape copied from the 18.2.0 record #26629. Wave anchor #27377 (closed).
ENVIRONMENT
- Subject: @objectstack/*@18.3.0 and create-objectstack@18.3.0 from npm (dist-tag latest = 18.3.0, published 2026-11-03T15:16:56Z, release commit 83d7e4a, Version Packages PR chore: version packages #26517). Everything under test was installed from the registry into /tmp/smoke183, outside the repo. No workspace build, no link:.
- Source checkout used only to read docs, at the release commit (git show 83d7e4a:PATH).
- Node v22.23.4, npm 10.9.9, pnpm 10.31.0 (the scaffolder's pick). PostgreSQL 16.15 local cluster, port 55433. Chromium through Playwright.
- Ports 3611 (dev), 3621 (production start), 3631 (PG), 3633 (18.2.0 PG compare), 3641/3642 (upgrade). One file DB per cell.
- Run 2026-11-03 15:38-15:52 UTC, one agent, sequential.
A. NEW USER ONBOARDING (docs at 83d7e4a: getting-started/your-first-project.mdx)
A1 PASS. npm create objectstack@18.3.0 my-app -- --skip-skills: exit 0, 25 s, installed with pnpm. Every @objectstack pin is exactly 18.3.0; cli, spec, runtime and console resolve 18.3.0.
A2 PASS. npx -y create-objectstack@18.3.0 skillapp (skills on): 11 skills in .claude/skills, names and content identical (diff -rq) to node_modules/@objectstack/skills@18.3.0 dist/skills (only the catalog README is not copied).
A3 PASS. npx os validate: exit 0, 1 object, 2 fields.
A4 PASS. npx os dev --ui -p 3611: "Server is ready" in about 7 s, 43 plugins including ConsoleUI, dev admin admin@objectos.ai / admin123 seeded. GET /api/v1/discovery 200.
A5 PASS. GET /_console/ 200 text/html, 22233 bytes. Entry chunk assets/index-BTxuIbsI.js 200 application/javascript, 449687 bytes, byte-identical (cmp) to the published @objectstack/console@18.3.0 dist.
A6 PASS. Real browser: /_console/ goes to /_console/login (1.1-1.8 s to network idle); sign in as the dev admin lands on /_console/home ("Good afternoon, Dev Admin."). After sign-in: 0 console errors, 0 responses >= 400. Before: the anonymous GET /api/v1/auth/get-session 401 only (same as 18.2.0, observation).
A7 PASS. The docs' CRUD (your-first-project.mdx section 4): sign-in 200; POST /api/v1/data/my_app_note 201; GET ?select=title&sort=-created_at&top=10 200 (total 1); GET by id 200; PATCH 200; DELETE 200 success true; GET 404 RECORD_NOT_FOUND. Anonymous GET 401. POST /api/v1/auth/sign-up/email 403 SELF_REGISTRATION_CLOSED.
A8 PASS. Record created through the Console UI at /_console/apps/com.objectstack.setup/my_app_note: New, fill, Save gives POST 201, toast 'Note "Created in Console UI 18.3" created', the record panel opens with Activity 1. Observation (not filed): the first visit to that page opens a "Set the default currency" prompt over the page; "Not now" dismisses it.
B. STUDIO (same dev boot)
B1 PASS. /_console/studio loads the App Builder (3.3-3.5 s to network idle): writable packages section, Organization flows, Environment catalog, and the scaffold's My App as read-only. Opening My App shows the Note object (3 fields +7 system) and the record created in A8.
B2 PASS. Authoring loop: New package "Smoke Tracker" (POST /api/v1/packages) → New object "Ticket" (identifier filled as ticket, PUT /api/v1/meta/object/smoke_tracker_ticket?mode=draft, "Draft · 1 unpublished") → Publish → Publish all (POST /api/v1/packages/com.default.smoke-tracker/publish-drafts) → "No drafts pending publish", the Records grid live. REST on the new object: POST /api/v1/data/smoke_tracker_ticket 201, list 200 total 1. 0 console errors and 0 responses >= 400 across the loop.
C. PRODUCTION DEPLOY PATH (A1's scaffold, OS_AUTH_SECRET and OS_SECRET_KEY set, fresh SQLite file)
C1 PASS. os build exit 0 (dist/objectstack.json 2.5 KB); OS_DATABASE_URL=file:FRESH os migrate apply --yes exit 0; os start --artifact ./dist/objectstack.json --port 3621 ready in about 5 s; /api/v1/health 200 version 18.3.0.
C2 PASS. First sign-up admitted (200), the second 403 SELF_REGISTRATION_CLOSED; no dev admin in production (401 INVALID_EMAIL_OR_PASSWORD).
C3 PASS. CRUD as the first admin 201/200/200/200/404; /_console/ 200.
D. UPGRADE 18.2.0 → 18.3.0 WITH REAL DATA
D1 PASS. App from create-objectstack@18.2.0 on a file DB. Written over HTTP on 18.2.0: an admin-created user (then signs in 200), an app182_note record, branding.workspace_name = "Smoke v18.2" (tenant). Bumped all 9 @objectstack pins to 18.3.0; pnpm install exit 0 (no peer warnings); validate and build pass. upgrading.mdx's "Upgrading from 18.2.0 or earlier" step: os migrate audit-key-material dry run exit 0 and --apply --yes exit 0 ("Nothing to remove"). os dev on the same file: ready; admin 200; the created user with its original password 200; the record reads back with title and body; the setting reads "Smoke v18.2" (tenant).
D2 FAIL (docs, already carded #29933). upgrading.mdx "Per-release specifics" at the release commit 83d7e4a has no v18.3.0 row (newest row v18.2.0), and content/docs/releases/v18/ holds 18-0, 18-1, 18-2 and index only: no 18-3.mdx (same on main 21510bb at run time). Same shape as #26629 C3 (#26631) one release earlier. Card #29933 (filed 15:03Z, gate ③, p1) covered both the page and the table row; fixed after the release by PR #29938 (ed0ab75, merged 2026-11-03T17:15Z), which closed #29933: main now has 18-3.mdx and the v18.3.0 row. No new card.
E. POSTGRESQL (16.15 local, port 55433)
E1 PASS. Before pg is installed: os dev -d postgres://... exits 1 with the remedy "The database client package pg is not installed ... npm install pg (pnpm add pg / yarn add pg) — then start again." Observation (not filed): the remedy is preceded by knex's raw "Cannot find module 'pg'" and a 6-line require stack; 18.2.0 prints the same (measured on a create-objectstack@18.2.0 scaffold on port 3633), so not a regression.
E2 PASS. After pnpm add pg: "Driver: SqlDriver(pg)", ready; sign-in 200; docs CRUD 201/200/200/200/404; /_console/ 200.
E3 PASS (#26630 re-judged). 0 [sql-driver] DATABASE_ERROR / 2BP01 lines on the first boot and on a restart. pg_indexes: uniq_sys_setting_organization_id_namespace_key_scope_user_id is over (organization_id, namespace, key, scope, COALESCE(user_id, '')), and uniq_sys_notification_preference_a22d7d27 over (organization_id, COALESCE(user_id, ''), topic, channel).
F. RE-JUDGE AND OFF-LIST PROBES
F1 PASS (#26632 re-judged). The record page /_console/apps/com.objectstack.setup/my_app_note?recordId=ID, 3 loads on a scaffold without the approvals service: 0 console errors, 0 responses >= 400.
F2 PASS. os doctor: functional, one warning ("Object my_app_note is defined but not referenced by any view, flow, app, or lookup field"). Bare npx os prints the help.
FAIL REPRODUCTION RULES
- D2: git show 83d7e4a:content/docs/upgrading.mdx, section "Per-release specifics". Expected: a v18.3.0 row linking the 18.3.0 upgrade checklist. Actual: newest row v18.2.0; git ls-tree 83d7e4a content/docs/releases/v18/ has no 18-3.mdx.
DISPOSITION OF FAILS
- D2: product docs gap, already carded: docs(releases): write content/docs/releases/v18/18-3.mdx for the 18.3.0 cut (and the upgrading table row) — the version PR merged at 14:44Z and the page does not exist #29933, closed by PR docs(releases): 18.3.0 release notes and its upgrading row #29938 (ed0ab75) after the release. Not re-filed (filing gate: an existing card carried it).
Re-checked prior 18.2.0 smoke failures (#26629): C3 → #26631 recurred in the same shape for 18.3.0 at the release commit (#29933, fixed on main by #29938); D3 → #26630 no longer reproduces; F5 → #26632 no longer reproduces.
Fixture gaps: none. Not-run handover: none. No authentication or authorization finding.
Activity
objectstack-fleet commentedon Nov 4, 2026
domain:devx#1 · os-warren · session_01JQwxbZPab3QQx2KjZZikSr
Close-out (checklist-test §5) · 2026-11-04T06:50Z. The one FAIL cell has a disposition; no new card was extracted.
Re-checked prior 18.2.0 smoke failures (#26629): #26630 (D3) and #26632 (F5) no longer reproduce on the published 18.3.0; #26631 (C3) recurred in the same shape at the release commit and is fixed on main by #29938.
No PARTIAL, BLOCKED or NOT-RUN cell. No checklist-accuracy findings or fixture gaps to park. Closing
completed.