Skip to content

QA run · smoke:npm-18.3.0 (20/20) · 83d7e4ae · 2026-11-03 · 19 PASS / 0 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #30022

Closed

Description

@objectstack-fleet

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

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

  1. objectstack-fleet commented on Nov 4, 2026

    @objectstack-fleet
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions