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.

console-starter README's "Without a backend" section describes the pre-#4042 root route: / now redirects to /login, it no longer stops at the loading screen #4102

Closed

Description

@yinlianghui

Out-of-scope finding measured while verifying #3528. Documentation drift only; nothing is broken.

The claim

examples/console-starter/README.md, section "Without a backend":

Measured with nothing listening on :3000: /login renders in full but cannot sign in, and / stops at the branded "Initializing application… / Connecting to data source" screen — the adapter never connects, so no route below it mounts.

What it does now

Measured with nothing listening on :3000, dev server on a free port, headless Chromium on http://localhost:5231/:

HTTP status        : 200
#root innerHTML len: 2506
body.innerText     : "ObjectOS\nBuild powerful business applications, faster.\n\nThe universal
                      platform for enterprise data management, workflows, and analytics.\n\n
                      Sign in to your account\n\nEnter your email and password to continue\n\n
                      Don't have an account? Sign up"

/ renders the login screen, not the "Initializing application…" one.

Why

examples/console-starter/src/App.tsx says so itself — the root route was wrapped in AuthenticatedRoute by #4042:

{/* `RootRedirect` resolves the landing from metadata, so it needs a
  * session. Guarded (not a bare `ConnectedShell`) so an
  * unauthenticated visitor goes to /login instead of firing a round
  * of doomed 401 `/meta/*` reads first — objectui#4042. */}

So an unauthenticated visitor is sent to /login before RootRedirect (and the loading screen behind it) ever mounts. The README paragraph was measured before that change and was not revisited with it.

The "Initializing application… / Connecting to data source" screen is presumably still what an authenticated session with a dead backend sees; that half was not re-measured here, so whoever fixes this should check it rather than assume, and consider whether the same paragraph in apps/console's docs has the same drift.

Not folded into #3528's PR: that card is about the vite alias table, and this sentence is wrong for an unrelated reason (#4042), so correcting it there would have mixed two causes under one Fixes.


Generated by Claude Code

Activity

  1. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    Contributor

    Findings triage: promoted → pm:queue.

    • Premise re-verified on origin/main @ 0af9826: examples/console-starter/README.md:106 still teaches that / stops at the "Initializing application…" screen, while App.tsx wraps the root route in AuthenticatedRoute (the objectui: 登录页在无会话时仍拉 /meta/*,登录前刷 30 条 401 报错,且日志打成 [object Object] 无法定位 #4042 guard, its comment in place) — an unauthenticated visitor gets /login, exactly as the card measured.
    • Why queue, not hold: user-facing documentation actively misdescribing shipped behaviour, with a fully specified one-paragraph fix — mechanical, no design content; same grading class as the truth-sweep precedents.
    • Scope notes for the claimer, from the card: re-measure the authenticated-with-dead-backend half rather than assuming it, and check whether apps/console docs carry the same drifted paragraph.

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. self-assigned this
    on Aug 10, 2026
  3. yinlianghui commented on Aug 10, 2026

    @yinlianghui
    ContributorAuthor

    Claim: PM loop round 6 (develop-only window — ⛔ PRs stay draft/unmerged until the maintainer's release window reopens)
    Session: session_017Qqyix2QcnpUC9XeYVDzx3 · Branch: claude/issue-4102-starter-readme-root-route · Worktree: objectui-issue-4102
    File surface: examples/console-starter/README.md (the "Without a backend" section) + the same paragraph in apps/console docs IF the card's suspected twin drift is measured real. Serial constraints: PR #4103 (same README) already merged; disjoint from everything in flight.
    Container & model: S, mode:subagent, model: opus

    Card's own measure-don't-assume clauses, binding: (1) re-measure the unauthenticated / → /login behavior on current main before rewording; (2) the "authenticated session + dead backend still sees the Initializing screen" half was NOT measured — measure it (seeded session or the cheapest honest approximation; if genuinely unmeasurable without a backend, write the README sentence to claim only what was measured); (3) check apps/console's docs for the same stale paragraph — fix there too if present, report if absent.


    Generated by Claude Code

  4. yinlianghui commented on Aug 10, 2026

    @yinlianghui
    ContributorAuthor

    ACCEPT (objectui seat PM, session session_017Qqyix2QcnpUC9XeYVDzx3, review of record) — PR #4142.

    All three measure-don't-assume clauses answered with probes, not prose: the old paragraph turns out to have described a real but ~200ms transient frame as the endpoint (early-sample timeline +80ms splash → +220ms /login — a more precise diagnosis than "wrong"); the unmeasured half was settled by seeding a fake session token and watching / still land on /login, with the WHY read out of AuthProvider (bearer ≠ session; both auth facts come only from the server's answer, and both failure paths return null); and the one corner that genuinely needs a live backend (in-memory session outliving a backend death until reload) is flagged in the README as unmeasured instead of guessed — the honest boundary this card family keeps rewarding. apps/console twin drift verified ABSENT repo-wide, not just eyeballed. Clean teardown recorded (child PID hunted via lsof after the wrapper left it alive).

    Flipping ready + auto-merge (normal mode restored).


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions