Repository navigation
QA run · search (6/8) · ba4afcc2 · 2026-10-19 · 6 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24593
Copy link
Copy link
Closed
Labels
Description
Round 2 of the 18.0 release sweep for search: re-judges on ba4afcc2 the clauses round 1 (#24574, subject 5b14b7f3) left unjudged and that this environment can drive (A class); every other verdict is carried forward from #24574 below. Supersedes #24574 under checklist-test SKILL §5. Wave anchor: #24579.
Environment fingerprint
- framework
ba4afcc2391922a86678bf5e47b1a0e4d2c87ff1(pinned; one commit after round 1's5b14b7f3, a release-script fix —git diff 5b14b7f3 ba4afcc2 -- docs/qa/platform-checklist/is empty, so every item revision is unchanged and carried verdicts stay revision-valid) - console
.objectui-sha4016370af3c9c9dafec2bc5299afd8e8079701b8, built withpnpm objectui:build(deps--concurrency=2);packages/console/dist/.objectui-shastamp equals the pin - app: showcase, canonical boot
OS_PORT=PORT pnpm -C examples/app-showcase exec objectstack dev --ui --seed-admin -p PORT -d file:/tmp/qa2/LABEL/ITEM.db; own port + file DB per runner/item; scratch app copies for metadata-writing items; seed--seed-admin+ showcase seed - browser: Playwright,
executablePath /opt/pw-browsers/chromium, one context per runner, form sign-in - timestamps 2026-10-19: environment prep 14:12–14:44 UTC (cold tree: install 39 s,
pnpm build10m20s, console build ~25 min); testing 14:34–14:50 UTC - execution: one API runner sub-agent on :47511 with
OS_SEARCH_PINYIN_ENABLED=false
Scope
- selector
search— 8 items (resolver-runnable set; planned/blocked items as in QA run · search (6/8) · 5b14b7f3 · 2026-10-19 · 5 PASS / 1 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24574). Revisions per item are those recorded in QA run · search (6/8) · 5b14b7f3 · 2026-10-19 · 5 PASS / 1 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24574 (unchanged at ba4afcc). - Re-judged this round (A class):
search.global-search-skips-unreadable— acceptance[3], acceptance[4], negative[3] (row scope + hidden field, no end-to-end pin)
Round-2 per-clause verdicts (ba4afcc)
Each line: item revN · clause · verdict · text oracle evidence.
- search.global-search-skips-unreadable rev2 · acceptance[3] (row scope) · pass — the member is contributor-bound (get-session
qa-contrib-r2@verify.test) and owns one invoice, INV-QA-R2./data/showcase_invoicegives the member 1 readable row, and INV-1003 answers 404 to the member.GET /api/v1/search?q=INV&objects=showcase_invoice&perObject=25: the member gets hits = [INV-QA-R2], totalHits 1, totalObjects 1. The admin (get-sessionadmin@objectos.ai) gets 13 hits, INV-1003 included.q=INV-1003: the member gets 0 hits and totalHits 0. The admin gets 1 hit, INV-1003.- No count in the member's body is above 1.
- search.global-search-skips-unreadable rev2 · acceptance[4] (hidden field) · pass — the pinyin flag is OFF (
OS_SEARCH_PINYIN_ENABLED=false, 52 plugins). V =user, which sits only in therolecolumn, an admin-only column (two sys_user rows holdrole: 'user'). Premise guard: the member'sGET /data/sys_useranswers 200 with 4 rows, the response does not include therole,ban_reasonorlast_login_ipkeys, and no member-readable value contains "user".- Positive control: the admin's
GET /api/v1/search?q=user&objects=sys_user&perObject=25answers 200 with 2 hits, both with snippetuser. - The member's identical search answers 200 with hits [] and totalObjects 1.
- sys_user stays searchable for the member on the fields it may query:
q=Adareturns Ada Auditor, andq=8613800138000returns Mei Phone throughphone_number.
- Positive control: the admin's
- search.global-search-skips-unreadable rev2 · negative[3] (a hit for a term only in a hidden field) · pass — the same evidence as acceptance[4]: no sys_user hit for V as the member, with the pinyin flag off.
Reproduction rules (fails)
No round-2 clause scored fail.
Carried forward from #24574 (verdicts valid for 5b14b7f3, same item revisions)
Carried-forward: #24574 · search.cross-field-object-search · PASS
Carried-forward: #24574 · search.field-scoped-narrowing · PASS
Carried-forward: #24574 · search.rls-both-personas · PASS
Carried-forward: #24574 · search.pinyin-flag-both-sides · PASS
Carried-forward: #24574 · search.freshness-and-empty · NOT-RUN
Carried-forward: #24574 · search.console-global-search · PASS
Carried-forward: #24574 · search.command-palette-navigation · NOT-RUN
Carried-forward: #24574 · search.global-search-skips-unreadable · PARTIAL at 5b14b7f3 for every clause except those re-judged above
FAIL items carried forward keep their round-1 disposition and extraction lines on #24574 (re-point rows on #24579 §1, defect cards as listed there).
Derived item verdicts (round-2 clauses + carried clauses)
search.cross-field-object-search— PASSsearch.field-scoped-narrowing— PASSsearch.rls-both-personas— PASSsearch.pinyin-flag-both-sides— PASSsearch.freshness-and-empty— NOT-RUNsearch.console-global-search— PASSsearch.command-palette-navigation— NOT-RUNsearch.global-search-skips-unreadable— PASS (changed: was PARTIAL)
Product defects (extraction)
None extracted from this round.
Checklist-accuracy findings / fixture gaps
For the wave anchor #24579 (not extracted).
- search.global-search-skips-unreadable · step 5: the literal query
GET /api/v1/search?q=INV&objects=showcase_invoicecaps each object at 5 hits by default (searchAllperObject default 5, max 25), andtruncateddescribes only the overall limit, so it readsfalse. The admin's side then returns INV-1006/1008/1010/1012 plus the member's own row, and INV-1003 is not among them. That reads as acceptance[3]'s admin half failing. Step 5 should add&perObject=25(or queryq=INV-1003). - search.global-search-skips-unreadable · fixtures.requires[2] / step 6: on a fresh boot every
last_login_ipis null (a direct sign-in sends no forwarded header), andban_reasonis null. The usable stock V isrole's valueuser. It is held by sign-up/seed-admin users only, and no member-readable column contains it. Suggested change: namerole=useras the stock V, and keep the premise guard. - Recipe
search:qa-contributor-bound-memberstep 2:GET /api/v1/data/sys_user?email=ADDR(admin) resolves the id.$filter=email eq '…'answers 400.
Handover (not judged on ba4afcc)
search.freshness-and-empty— NOT-RUN, Tier 3 deferred by the 18.0 sweep plan (carried from QA run · search (6/8) · 5b14b7f3 · 2026-10-19 · 5 PASS / 1 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24574)search.command-palette-navigation— NOT-RUN, Tier 3 deferred by the 18.0 sweep plan (carried from QA run · search (6/8) · 5b14b7f3 · 2026-10-19 · 5 PASS / 1 PARTIAL / 0 FAIL / 0 BLOCKED / 2 NOT-RUN #24574)
Generated by Claude Code
Reactions are currently unavailable
Activity
objectstack-fleet commentedon Oct 19, 2026
Parked-on: #24579 · this record's checklist-accuracy findings, fixture gaps and B-class parked clauses (wave anchor §2–§4)
Generated by Claude Code
objectstack-fleet commentedon Oct 19, 2026
Closed by: the 18.0 QA wave dispatch session
session_01CfRDy7SuTfUqaTu2AEH2Hi, on the maintainer's instruction there on 2026-10-19, verbatim 「qa-run的卡片处理完的是不是可以关闭」. Closure complete (checklist-test §5): every FAIL in this record has a disposition (theExtracted:/Parked-on:lines on this record), and its partial coverage gaps and not-run handover are parked on #24579.Generated by Claude Code