A project can exist before its account has been chosen. Silently borrowing the last login might look convenient, but it replaces a missing human choice with an unintended identity. I represented unspecified as an actual empty session and connected a saved account only through the chosen route.
Make the empty state real rather than cosmetic
Empty-account creation allocates an ordinary profile with a new identity and an unassigned marker. It does not merely rename an existing default session. New-project tabs use that profile when the project has no chosen account for the relevant platform.
Private mode remains a separate condition. Unassigned means not yet linked to a saved account, not necessarily incognito. That distinction matters for later manual login and retention behavior. Even an apparently empty state needs an explicit owner and lifetime rather than a misleading label over another session.
Separate project default, specific account and no account
Account selection has distinct routes for project defaults, a specific saved profile and no account. If a requested default has no matching choice, it creates an empty state rather than borrowing the most recent login. Switching a specific account still checks the current tab and project.
An account switch is not an instruction to copy the original manuscript into another identity. The implementation uses the appropriate existing or new account surface and retains ownership relationships. Changing a selection value cannot justify reinterpreting every existing document as belonging to that account.
Discovery of login traces is not authentication success
Known platform cookie names and domains appearing in an unassigned profile can support discovery in the saved-account inventory. That route does not turn cookie values into account names. Discovery, display status and actual service identity remain different checks.
Cookie presence alone cannot prove a valid login or a particular user ID. Expiry, logout and additional authentication remain possible. Convenient automatic discovery must not be reported as completed authentication. Observable headers, user selection and retained labels each need an identified evidentiary role.
Test isolation of the unassigned session too
The existing isolation test checks that a new project begins unassigned. Two projects deliberately selecting the same saved account share a synthetic session, while a new unassigned tab must not receive its test cookie. The same controlled setup checks both intended sharing and intended separation.
Those tests use owned profiles and HTTPS fixtures. They do not copy a user's real authentication values. I read the implementation and existing scenario rather than logging in or switching live accounts now. This evidence cannot establish automatic recognition of every platform authentication state.
Do not force an unspecified state to become an error
Browsing a project or reading public material may require no selected account yet. An empty session should not force unnecessary login choices before every task. An operation genuinely needing authentication must instead check it at the relevant execution boundary.
I separate absence of an account choice from inability to do any work. Some operations remain possible while others require identity. Keeping that distinction in wording and execution conditions combines a convenient start with explicit ownership rather than hiding an account selection inside the default.
An empty choice has meaning in business software too
An unchosen customer, owner or warehouse presents the same issue. Filling it from recent history can place an unseen decision into the result. Unspecified is a meaningful work state, not merely an inconvenient blank to eliminate.
Northstar implements that contract with an empty profile and explicit account connection. Deliberate same-account session sharing remains available, while absence of a choice does not fall into it. Retaining what was not selected makes later data and execution ownership explainable.