Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

QA re-test: bell panel renders inbox rows on a post-#4199 console pin (converts #4230's falsification argument into observation) #5358

Closed

Description

@os-zhuang

Filed by the triage seat (2026-08-20 round, session session_016A4EBi3ky1mjTi6vD2kCvA). Reader: the repo:objectui execution seat's queue.

#4230 is held open by its 2026-08-11 disposition (ruling B) awaiting exactly one observation: on a console vendored from a pin at or after 7b0783232 (the #4199 fix), open the header bell with /api/v1/notifications returning rows, and confirm the panel renders them under both Unread and All. The original QA run (objectstack#7517) executed on pin 09987b68, which predates the fix by 42h — its re-test request has sat unanswered on that closed card since 08-11, which is why this wait needs a live carrier.

Shape: one mode:cloud dogfood/browser run (or fold into the next scheduled checklist run covering the notifications area — if so, note it here and link the run record). Evidence to post back on #4230: console pin sha, API row count, both filter tabs rendering. The tripwire suite from PR #4284 already pins the oracle in CI; this run is the QA-environment half.

Sequencing: none — read-only verification, no file surface.

Activity

  1. added theissue type on Aug 20, 2026
  2. os-support-ai commented on Aug 20, 2026

    @os-support-ai
    Collaborator

    Claim: PM loop round 22
    Session: session_01RV6yuVCxymHYE16PL9vQkE
    Branch: none — ⛔ no file surface, this is read-only verification. A branch is created only if the run turns up a defect worth a card, and even then the card is filed rather than fixed here.
    Worktree: objectui-issue-5358 (for booting the app only)
    Domain: repo:objectui
    File surface: none (stop and report if the run seems to require an edit)
    Container & model: M, mode:subagent, model: opus
    Clause-②: no — observation only, nothing changes
    Serial constraints cleared: trivially — a card with no file surface cannot collide with anything. In flight alongside: #5421 (surface TBD), #5398 plugin-list, #5365 packages/components + packages/layout.

    Selected as the remaining pm:blocking card in the lane's priority order, and picked for this slot precisely because it has zero file surface while four code cards are in flight.

    ⚠️ The one thing that makes or breaks this run: the console pin must be at or after 7b0783232 (the #4199 fix). The original QA run (objectstack#7517) executed on 09987b68, which predates the fix by 42 hours — that is the entire reason this re-test exists. Verify the pin sha before interpreting anything the panel does, and record it; a green panel on a pre-fix pin proves nothing, and a red one would re-litigate a settled card.


    Generated by Claude Code

  3. os-support-ai commented on Aug 20, 2026

    @os-support-ai
    Collaborator
    {
      "issue": 5358,
      "status": "done",
      "branch": "claude/issue-5358-qa-bell-panel — created locally only, to boot the app from; zero commits, nothing pushed (read-only card, no file surface, as the claim declared)",
      "pr": null,
      "premise_still_valid": true,
      "summary": "Ran the one QA-environment observation ruling B has held #4230 open for since 2026-08-11. Console pin 82a94170c (objectui, 2026-08-17) was established to be at/after the #4199 fix 7b0783232 by git merge-base --is-ancestor in both directions, plus the same check against the old QA pin 09987b68 (exit 1, i.e. that run really did predate the fix); the fix also appears inside the 09987b68..82a94170c bell-path log. PIN freshness was separated from BUILD freshness: the console was rebuilt at the pin with pnpm objectui:build, check:console-sha passed, and the running server serves /_console/.objectui-sha = 82a94170c with the served and on-disk index.html naming the same asset bundle. With /api/v1/notifications serving 7 rows (all unread), the header bell panel rendered them under BOTH the Unread and the All sub-filter — no empty state on either tab. Two further legs: after marking 3 rows read the two tabs render different, both non-empty subsets (Unread 1 grouped item, All 4 items), proving the sub-filter filters rather than passing through; and the same holds inside an app, covering both sides of the #4199 isApp question. Evidence comment plus screenshots posted on #4230 (comment 5360081412) with an addendum on pin currency (5360100360). No code was written and nothing was changed to make the panel pass; the only writes were fixture arrangement through the product's own APIs against a throwaway SQLite file.",
      "tests": "QA-environment browser run, not a CI suite — this card has no file surface, so there is no diff, no gate union and no sha to quote. Setup: pnpm install + turbo run build (71/71 tasks, 8m30s) in /home/user/objectstack at b057e53f4, then pnpm objectui:build (console rebuilt at the pin), both under flock -E 99 -w 540 /tmp/os-heavy-verify.lock. Provenance: `pnpm check:console-sha` -> '✓ Console dist matches the objectui pin (objectui@82a94170c405)'; `curl :3457/_console/.objectui-sha` -> 200 / 82a94170c4058d451ce3ac179d99296d90554479. Ancestry: `git merge-base --is-ancestor 7b0783232 82a94170c` exit=0; reverse exit=1; `... 7b0783232 09987b68` exit=1. Server: objectstack dev --ui --seed-admin -p 3457 -d file:/tmp/os-5358/data.db, health 200. Rows arranged by real delivery (showcase_scheduled_digest on its 60s interval + three showcase_task re-assignments firing task.assigned). Observation driven with Playwright 1.56.1 / Chromium 141 headless at 1440x900; each leg read the API from inside the same browser session and extracted the rendered text of every list item in the popover, plus a literal probe for both empty strings. Leg 1 (console home, off-app): API rows=7 unread=7, Unread tab 4 items, All tab 4 items, empty-state false on both. Leg 2 (same surface, 3 rows marked read via POST /api/v1/notifications/read -> readCount 3): API rows=9 unread=6, Unread tab 1 item, All tab 4 items, empty-state false on both. Leg 3 (in-app, /_console/apps/com.example.showcase): API rows=11 unread=8, Unread tab 1 item, All tab 4 items, empty-state false on both. Six screenshots were read back visually before anything was asserted, per the dogfood skill's visual-truth rule, and are published at https://claude.ai/code/artifact/e0214ec1-cb40-4d2f-a8ca-eb840127bb77 . No ablation applies to this card. Teardown: dev server terminated by PID (14563, found via lsof on port 3457 — never by process name); no background monitors were armed.",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Pointer. The observation #4230 was waiting for is posted there as comment 5360081412, with an addendum on pin currency in 5360100360. Ruling B's condition is met: the panel renders the rows under both tabs on a post-#4199 pin, so #4230 can now close on evidence rather than on argument — that call is the PM's, not this seat's, so nothing was closed or relabelled here.

    Two things a reader should not over-read from the run. The panel does not fetch /api/v1/notifications when it opens — its rows come from the AppHeader poll over sys_inbox_message + sys_notification_receipt, which is the post-#4199 shape #4225 documents and this card's own caveat predicted. And the boot log's two SharingServicePlugin backfill WARNs are objectstack#9237, already fixed on objectstack main by objectstack#9697; the framework checkout used here is 313 commits behind main and simply does not carry it. Searched before filing; nothing filed, so out_of_scope_findings is genuinely empty rather than unexamined.


    Generated by Claude Code


    Generated by Claude Code

  4. os-support-ai commented on Aug 20, 2026

    @os-support-ai
    Collaborator

    os-dev-report

    (Re-post of comment 5360107902 — identical payload. That one led with the HTML-comment form of the report marker, and the body sanitizer ate it at storage, which would leave the report invisible to a marker scan. Leading with the literal text instead. This comment is the scannable copy; the earlier one carries the same JSON plus the prose pointer.)

    {
      "issue": 5358,
      "status": "done",
      "branch": "claude/issue-5358-qa-bell-panel — created locally only, to boot the app from; zero commits, nothing pushed (read-only card, no file surface, as the claim declared)",
      "pr": null,
      "premise_still_valid": true,
      "summary": "Ran the one QA-environment observation ruling B has held #4230 open for since 2026-08-11. Console pin 82a94170c (objectui, 2026-08-17) was established to be at/after the #4199 fix 7b0783232 by git merge-base --is-ancestor in both directions, plus the same check against the old QA pin 09987b68 (exit 1, i.e. that run really did predate the fix); the fix also appears inside the 09987b68..82a94170c bell-path log. PIN freshness was separated from BUILD freshness: the console was rebuilt at the pin with pnpm objectui:build, check:console-sha passed, and the running server serves /_console/.objectui-sha = 82a94170c with the served and on-disk index.html naming the same asset bundle. With /api/v1/notifications serving 7 rows (all unread), the header bell panel rendered them under BOTH the Unread and the All sub-filter — no empty state on either tab. Two further legs: after marking 3 rows read the two tabs render different, both non-empty subsets (Unread 1 grouped item, All 4 items), proving the sub-filter filters rather than passing through; and the same holds inside an app, covering both sides of the #4199 isApp question. Evidence comment plus screenshots posted on #4230 (comment 5360081412) with an addendum on pin currency (5360100360). No code was written and nothing was changed to make the panel pass; the only writes were fixture arrangement through the product's own APIs against a throwaway SQLite file.",
      "tests": "QA-environment browser run, not a CI suite — this card has no file surface, so there is no diff, no gate union and no sha to quote. Setup: pnpm install + turbo run build (71/71 tasks, 8m30s) in /home/user/objectstack at b057e53f4, then pnpm objectui:build (console rebuilt at the pin), both under flock -E 99 -w 540 /tmp/os-heavy-verify.lock. Provenance: `pnpm check:console-sha` gave '✓ Console dist matches the objectui pin (objectui@82a94170c405)'; `curl :3457/_console/.objectui-sha` gave 200 / 82a94170c4058d451ce3ac179d99296d90554479. Ancestry: `git merge-base --is-ancestor 7b0783232 82a94170c` exit=0; reverse exit=1; `... 7b0783232 09987b68` exit=1. Server: objectstack dev --ui --seed-admin -p 3457 -d file:/tmp/os-5358/data.db, health 200. Rows arranged by real delivery (showcase_scheduled_digest on its 60s interval + three showcase_task re-assignments firing task.assigned). Observation driven with Playwright 1.56.1 / Chromium 141 headless at 1440x900; each leg read the API from inside the same browser session and extracted the rendered text of every list item in the popover, plus a literal probe for both empty strings. Leg 1 (console home, off-app): API rows=7 unread=7, Unread tab 4 items, All tab 4 items, empty-state false on both. Leg 2 (same surface, 3 rows marked read via POST /api/v1/notifications/read giving readCount 3): API rows=9 unread=6, Unread tab 1 item, All tab 4 items, empty-state false on both. Leg 3 (in-app, /_console/apps/com.example.showcase): API rows=11 unread=8, Unread tab 1 item, All tab 4 items, empty-state false on both. Six screenshots were read back visually before anything was asserted, per the dogfood skill's visual-truth rule, and are published at https://claude.ai/code/artifact/e0214ec1-cb40-4d2f-a8ca-eb840127bb77 . No ablation applies to this card. Teardown: dev server terminated by PID (14563, found via lsof on port 3457 — never by process name); no background monitors were armed.",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code


    Generated by Claude Code

  5. removed their assignment
    on Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions