Skip to content

docs(acceptance): 17.0 GA acceptance for rc.2 — plan, partial report, GA regression checklist - #676

Draft
yinlianghui wants to merge 7 commits into
mainfrom
claude/hotcrm-17-rc1-acceptance-hj869o
Draft

docs(acceptance): 17.0 GA acceptance for rc.2 — plan, partial report, GA regression checklist#676
yinlianghui wants to merge 7 commits into
mainfrom
claude/hotcrm-17-rc1-acceptance-hj869o

Conversation

@yinlianghui

@yinlianghui yinlianghui commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Description

Acceptance-testing deliverables for the 17.0 GA release, run on current main (@objectstack/* 17.0.0-rc.2 — the task targeted rc.1, but main moved to rc.2 in #663 before this run started, so every verdict is stated against rc.2).

This is a PARTIAL run. Five of the eight planned sections executed; three (full action sweep, full flow sweep, profile permission matrix) did not, because the session budget ran out. The report says so in its TL;DR and in a dedicated §10, and the GA checklist marks every item as either verified-this-round or still-unverified. Nothing unexecuted is presented as passing.

Type of Change

  • Documentation update

Related Issues

Filed this run: #680 #681 #682 #683 #684 #688 #689 #690 #691 #692 #693 #696
Retested / updated with rc.2 data: #494 #520 #523 #525 #645 #661
Related: #507 #508 #509 #510 #515 #521 #522 #524 #526 #528 #547 #548 #549 #671

Changes Made

No src/ changes — the mandate for this run was test-don't-fix.

Key results

Testing

  • Unit tests pass (pnpm test — 52 files, 1280 passed / 1 skipped, via pnpm verify)
  • Linting passes (pnpm lint, via pnpm verify)
  • Build succeeds (pnpm build, via pnpm verify)
  • Manual testing completed — partially; scope and gaps documented in §10
  • New tests added (not applicable — docs only)

Screenshots

Not applicable (docs-only). Evidence screenshots (~200) live in the run's scratch directory and are referenced by filename throughout the report.

Checklist

  • Docs-only; no src/ modifications
  • Changeset included (empty frontmatter — no package version change)
  • Unexecuted work is labelled as unexecuted, not omitted

🤖 Generated with Claude Code

https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g

…rent main

Rebases the rc.0-era plan from upgrade/objectstack-17 onto the current tree:
drops retired surfaces (AI agents #512, competitor #551), adds the activity
model (#592/#670), refreshes the metadata census to the rc.2 numbers
(17 objects / 26 actions / 24 flows / 5 dashboards / 10 reports), adds the
profile permission matrix, four-locale i18n checks, the full-coverage flow
pass, and the platform-blocker retest ledger with expected outcomes from the
upstream fixes shipped in rc.1/rc.2.

Refs #520 #521 #522 #524 #525 #526 #528 #508 #509 #510

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hotcrm Ignored Ignored Aug 5, 2026 7:25am

Request Review

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 5, 2026
claude added 4 commits August 5, 2026 02:31
Baseline (pnpm verify, Playwright e2e 16/16, cold boot) plus the three
read-only sweeps: 15/17 objects clean with zero application console errors,
5/5 dashboards and 10/10 reports resolving real data, and the four-locale
i18n matrix. Confirms two rc.0-era blockers are lifted on rc.2 (#520 datetime
window filters, #523 matrix report date granularity) and records the honest
account of one hypothesis the probes disproved.

Write-phase sections are marked as being filled in.

Refs #520 #523 #494 #645 #661 #671 #680 #681 #682 #683 #684

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
…hases

The write phases run serially in the orchestrating session; this documents the
alternative delivery the maintainer asked for — five packages that can each be
driven from a separate chat, with per-package record prefixes, a shared-server
do-not-do list, and the physical-isolation fallback (own port + own DB file).

Carries the environment facts this run had to discover: the auth endpoint is
/api/v1/auth/sign-in/email (the obvious /auth/login returns 500), and the three
entrypoints default to three different SQLite files, so a migrate plan aimed at
the dev server's database needs an explicit --database-url.

Refs #507 #508 #509 #510 #515 #520 #521 #522 #523 #524 #525 #526 #528 #548 #549 #671 #684

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
…cts it found

REST-layer CRUD passes on all 17 objects with zero leftovers; the console New
form for crm_lead is unusable because the renderer ignores visibleOn while
enforcing required (#688). Also files the SQL-layer validation path (#689),
the null nameField formula (#690), the 403-for-a-missing-parent shape (#691),
the lookup redisplay (#692) and the mis-addressed cascade delete errors (#693).

Two rc.0-era records are overturned and stated as such: there is no contract
status board on main, and kanban drag IS automatable with the real mouse API.
#525 does not reproduce — cross-tab values survive a failed submit.

The honest-record section now carries the full arc of one hypothesis that was
disproved and then reinstated on further evidence, since stopping at either
intermediate step would have published a wrong conclusion.

Refs #515 #520 #523 #525 #547 #671 #684 #688 #689 #690 #691 #692 #693

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
… regression checklist

The sweep stopped early when the session budget ran out, so the report now says
so plainly: five of eight planned sections executed, three (full actions, full
flows, profile permission matrix) did not, and the six remaining blocker
retests are listed as unverified rather than silently absent.

Adds the GA minimal-regression checklist the run was asked for, marking each
item as either verified-this-round or still-unverified so the next session can
tell what it is confirming versus testing for the first time.

Records the teardown honestly, including the leftover W2 test records and the
two defects that blocked their deletion — one filed as #696, the other left
unfiled because it plausibly duplicates #548 and was not isolated.

Refs #494 #520 #521 #522 #523 #525 #548 #645 #661 #684 #688 #696

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
@yinlianghui yinlianghui changed the title docs(acceptance): 17.0 GA acceptance test plan (rc.2) + acceptance report docs(acceptance): 17.0 GA acceptance for rc.2 — plan, partial report, GA regression checklist Aug 5, 2026
claude added 2 commits August 5, 2026 03:53
…ence

The evidence lived only in the session scratchpad, which dies with the
container — so a colleague picking this up on their own account would have
inherited a report full of references to files they cannot open. The four
executor records, the blocker-retest playbook and the profile expectation
matrix are now in the repo (116KB of text); the ~200 screenshots are not, and
evidence/README.md says so plainly rather than leaving dead references
unexplained.

HANDOFF.md is the entry point: what is done, what is not, the three commands
to get running, the eight environment traps this run hit, and the one
observation deliberately left unfiled because it may duplicate #548.

Also replaces the four '(填充中)' placeholders in the result matrix with an
explicit 未执行, so nothing unrun can be misread as in progress.

Refs #520 #523 #548 #684 #688 #696

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
…ted on rc.2

Isolated-environment retest (own port, own DB file, nothing shared at risk):
migrate now detects an occupied database at plan time, refuses apply before
any DDL with a --force escape hatch, and demands --yes even when free — the
rc.0 confirmation-less DDL behaviour is gone. On a fresh rc.2 database all
five __search columns are live and plan reports in-sync, with a planted junk
column proving the orphan detector still fires; the orphan condition this
issue tracked only exists on rc.0-era databases.

One residual recorded on the issue rather than filed: the occupied-DB refusal
exits 0, which scripting would misread as success.

Refs #526 #528

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URfByxcWd39Vv8u5z4F11g
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants