revert(brand): take the tenant slug back out of the shell header - #32
Merged
Conversation
I read "the tenant should have a Simon-OSE slug when logged in" as a visual tag and put a pill next to the wordmark. That is not what was asked for: the slug belongs in the URL — platform.tenurework.com/SimonOSE — as the tenant's own address, not as another badge inside a product that already says whose it is on the sign-in page. Reverting rather than leaving it, because a decorative tag competes with the real thing for the same meaning, and the URL work lands next. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
satvikOS
added a commit
that referenced
this pull request
Aug 25, 2026
…te that (#264) MAIN IS RED AT c28c64e. Two PRs that were each green apart broke it together, which is the shape CI cannot see: every branch is tested against the main that existed when it ran, and neither #254 nor #256 could observe the other. #254 made `recordAuditEvent` READ THE TENANT'S LAST ROW to chain this one to it, and wrap that read-and-write in a transaction when handed the top-level client (`audit-record.ts:653`). #256 landed two suites whose `@/lib/db` doubles were written when a refusal wrote exactly one `auditEvent.create` and nothing else. The result is `tx.auditEvent.findFirst is not a function`, thrown from inside the capability guard, so a test asserting the refusal MESSAGE got a TypeError and the server action returned "Something went wrong on our side". This is the concrete form of the cost recorded in task #32: the second round trip does not just add latency, it CHANGES THE CONTRACT every caller's double must satisfy. Three changes, all to the doubles, none to what the tests claim: `auditEvent.findFirst` returning `null` — the honest answer. These fixtures have no prior row, and an unchained first row is exactly what the production code handles when a tenant's log is empty. `$transaction` EXECUTES its callback instead of throwing. It was a tripwire meaning "a refused action reaches no write", which was true when a refusal wrote one row and is false now that a refusal legitimately opens a transaction to chain its DENY row — so the tripwire was firing on the very row the gate exists to write. The `budgetLine.create`/`.update` traps stay, so a written line still fails the test loudly, which is the claim that actually matters. The two positive cases now assert `["budgetLine.create"]` rather than `["$transaction"]`. Not a weakening: the action reaches the real write and now NAMES it, where "it got as far as opening a transaction" was the vaguer claim that only held because the double threw before its callback ran. Measured against the documented baselines: 3 failed suites / 5698 passed — the same three stale-generated-client suites that fail on pristine main — and tsc at 307, the baseline exactly. Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I read "the tenant should have a Simon-OSE slug when logged in" as a visual tag and put a pill beside the wordmark. That was a misread.
The slug belongs in the URL —
platform.tenurework.com/SimonOSE— as the tenant's own address, not as another badge inside a product whose sign-in page already names the institution three ways.Reverting rather than leaving it in place: a decorative tag competes for the same meaning as the real thing, and the URL routing lands next.