Skip to content

Trezor: the vault video is the first thing the page shows where it is true (F56 addendum (4) of 2026-10-19) - #522

Merged
immakermatty merged 4 commits into
mainfrom
agent/DEV-6631-vault-video-first
Oct 19, 2026
Merged

immakermatty merged 4 commits into
mainfrom
agent/DEV-6631-vault-video-first

Conversation

@immakermatty

@immakermatty immakermatty commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Status: ready for review. Round 4 at b6ec348. Main is merged in (34d28ce), and this PR's addendum is now F56's (4), because main gained F56's addendum (3) of 2026-10-19 (#509). Pablo approved round 2 at 5bf4810, and round 3 found one missed mention, now fixed. Matěj said "Publikuj" on 2026-10-19 ~20:00Z. The merge waits for the approval of b6ec348.

Plan DEV-6631 (the vault). Decision: the F56 addendum (4) of 2026-10-19 (in this PR).

Why

Matěj saw the vault video (vault-overview, design-system-lazurio#93) on an older Launchpad's Trezor of an Environment without a vault. On 2026-10-19 he asked that it be the first thing a person sees when they approach Bitwarden from the Launchpad, also where the vault is in use. Today the "?" beside Trezor's heading opens it (F56's addendum of 2026-10-18, point 4), so a person who does not press the "?" never sees it.

What changes

  • The video opens first. Where its words are true, #vault-video opens under Trezor's heading as the page opens:
    • it shows the video's poster and plays nothing;
    • the focus stays where it is, and nothing scrolls;
    • the person starts it with the player's control.
  • The "?" closes it and opens it again, and when it opens it, the video plays, as before. Escape closes it.
  • A person's closing holds for the visit. Once the person closes it, it stays closed until the page moves on: reading the status again, a change of language or the membership arriving do not reopen it. The next visit opens it again at its start (helpVideoDrawing in src/launchpad/page-help.ts, per visit of a route).
  • The preview gains vault-member (scripts/preview-launchpad.ts). The fictional person jana already has her Lazurio account with a master password in the work Environment's vault, so Trezor adds and confirms her, and the member variant can be seen in a browser.
  • Docs:
    • docs/decisions.md gains the F56 addendum (4) of 2026-10-19, with Matěj's words and the alternatives;
    • docs/launchpad-development.md follows;
    • the comment in index.html follows.

What does not change

  • Where the video shows. It shows where the person is a member of the vault, or where there is no vault (vaultHelp). It does not show:

    • where nobody who enters is added (vault-agents);
    • where the person is not a member, or that is not known yet;
    • in a Personal Environment.

    The video says that people share from their own Bitwarden, which is not true there (Guide: the vault explanation must fit a shared Environment and a vault reached through a Lazurio login (try-01) #499). The F56 addendum lists this as a rejected alternative, and a variant can follow from facts.

  • The served page keeps the box hidden, so nothing flashes where the video is not true.

  • The video itself: it never plays by itself, has no sound, and keeps the line under it.

  • No explaining sentence returns to the page.

Verified

  • tests/launchpad-guide-video.test.ts has a new test of the visit rule: open where true, closed by the person until the page moves on, open again on the next visit, and closed while it is not true. The box is still served hidden. The file and tests/launchpad-guide.test.ts pass, 19 tests.

  • bun run check:static passes locally: Biome, tsc, check:public, build:proof and smoke:proof.

  • CI on 396b8b5: static checks, tests 1/2 and 2/2 (the full suite) and check (ubuntu-24.04) all pass.

  • Locally, the full bun test on a heavily loaded Mac gave 4193 pass, 9 skip and 3 fail. All three were timing failures in files this PR does not touch:

    • launchpad-vault-page;
    • install-script, whose tests hit 5 s timeouts;
    • launchpad-wacli-sign-in.

    Each file passes when run alone: 16/16, 10/10 and 7/7.

  • Headless Chrome against the hosted preview (root decision 0178, bun scripts/preview-launchpad.ts hosted cs <port> owner …), in the same steps for vault-member (round 2) and no-vault:

    • first look: the box open and first, the video paused at 0, the focus outside it, the "?" aria-expanded=true;
    • the "?" closes it, and reading the status again keeps it closed;
    • the "?" opens it and it plays (focus in the box);
    • Escape closes it;
    • after moving to Soubory and back, it is open again at 0 and paused, and the same after a reload;
    • no page errors.
  • The same preview without an option (its vault, the person not a member): the box never opens, and the "?" plays vault-agents.

  • On 34d28ce, after the main merge:

    • bun run check:static passes;
    • the full bun test passes locally: 4230 pass, 9 skip, 0 fail across 288 files;
    • the four guide files (launchpad-guide-video, launchpad-guide, shell-guide-scenes, shell-guide) pass, 50 tests;
    • CI passes: static checks, tests 1/2 and 2/2, scope and check (ubuntu-24.04); check (macos-14) is skipped as on every PR;
    • headless Chrome repeats the vault-member steps above (all as before, no page errors) and the non-member state (the box never opens, the "?" carries vault-agents).

Risks and limits

  • The first look. While the membership is being asked (a few seconds on the first look), no video shows. Then the box opens, and the vault's row moves down once.

Reviews

Pablo, round 1 at 396b8b5: CHANGES_REQUESTED. He agreed that the code keeps the #499 truth boundary and the per-visit rule. His one blocker: the addendum claimed that the member variant was verified in Chrome, but the preview could not reach it.

Fixed in 5bf4810:

  • The preview gained vault-member.
  • The member variant was checked in Chrome: video first, paused, focus outside; close, reopen and play, Escape; the next visit in the app and by a reload. No page errors.
  • The addendum now names exactly the three states checked.

Pablo, round 2 at 5bf4810: APPROVED.

Main merged at 34d28ce (round 3). The PR had become CONFLICTING after #509, and the branch rules require approval of the last push.

  • The one conflict. Guide: the six principles in motion (F56 addendum (3), DEV-6612) #509's F56 addendum (3) of 2026-10-19 and this PR's addendum stood at the same place in docs/decisions.md. Both stay: (3) first, then this PR's, renamed (4), with its body unchanged.
  • The references. Every mention in this PR's files now says "(4)".
  • No change of behaviour. The diff against main is the same 7 files.

Pablo, round 3 at 34d28ce: CHANGES_REQUESTED. Addendum (3) is intact, and the merge brought nothing else in. One mention in docs/launchpad-development.md (Trezor's section, lines 2566–2567) still lacked the number.

Fixed in b6ec348: that line now says "(4)". A scan of every file in the diff finds no F56 mention of 2026-10-19 without its number.

🤖 Generated with Claude Code

… true (F56 addendum of 2026-10-19)

Matěj asked on 2026-10-19 that the approved video of how a vault works
(vault-overview, design-system-lazurio#93) be the first thing a person
sees when they approach Bitwarden from the Launchpad, also where the vault
is in use. Until now the "?" beside Trezor's heading opened it (F56's
addendum of 2026-10-18, point 4).

Where its words are true (the person a member of the vault, or no vault
here; vaultHelp unchanged, so vault-agents places and a Personal
Environment show no video), the box #vault-video now opens under the
heading as the page opens: at its poster, nothing playing, focus and
scroll untouched. The "?" closes and reopens it (and then plays it);
Escape closes it. Closed by the person it stays closed until the page
moves on, and the next visit opens it again at its start
(helpVideoDrawing in page-help.ts, per visit of a route).

Docs: the F56 addendum of 2026-10-19 and launchpad-development.md.
Tests: the visit rule in launchpad-guide-video.test.ts. Checked in
headless Chrome on the hosted preview with no-vault (open first, paused,
close/reopen/Escape/next visit) and with a vault the preview's person is
not a member of (no video, the "?" plays vault-agents).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty Exact-head review of 396b8b5: CHANGES_REQUESTED. The code keeps the F56/#499 truth boundary: only a member or no vault gets the video; the initial drawing is paused, and closing survives redraws of the same route. The targeted tests (19/19), check:static, and git diff --check pass locally; CI is green. One documentation/evidence blocker: docs/decisions.md:14924-14925 says headless Chrome verified a work Environment with a vault and the person a member. The PR description explicitly says the member variant was not reachable in the hosted preview; that preview instead had a non-member and showed no video/vault-agents. This is the principal newly requested scenario, so the public decision record must not claim it was browser-verified. Please either exercise a member fixture and record the actual result, or correct the addendum to say Chrome covered no-vault and non-member, with member covered by the existing pure variant tests and still an untested browser path. No merge performed.

…ault-member

Pablo's review of 396b8b5: the F56 addendum of 2026-10-19 claimed that
headless Chrome verified a work Environment whose person is a member of the
vault, which the hosted preview could not show (its fake vault had no
account for the preview's person). The preview now takes `vault-member`:
the fictional person jana already has her Lazurio account with a master
password in the work Environment's vault, so Trezor adds and confirms her
and shows its video first. The addendum's verification now names the three
states actually checked: vault-member and no-vault (open first, paused,
close/reopen/Escape/next visit), and no option, a non-member (no video, the
"?" plays vault-agents). launchpad-development.md lists the option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@immakermatty

Copy link
Copy Markdown
Contributor Author

Thanks, Pablo, you are right: the record claimed more than I had checked.

I took your first option, in 5bf4810:

  • The preview gained vault-member: jana has her account in the fake vault, so Trezor adds and confirms her.
  • I ran the member variant in headless Chrome: the video first, paused, with the focus outside it; close, reopen and play, Escape; the next visit in the app and after a reload; no page errors.
  • The F56 addendum now names exactly the three states I checked: vault-member, no-vault and a non-member.

Round 2 is in your intake.

🤖 Generated with Claude Code

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty Round 2 APPROVED on exact head 5bf4810. The only commit since 396b8b5 changes the preview script and two docs; no production source or tests changed. The new option seeds only the fake vault person at jana@account.lazurio.ai, matching the hosted gateway username, and the work-vault membership path reaches the member video. The F56 verification record now distinguishes member, no-vault and non-member states without the prior unsupported claim. In an isolated clone, 19 targeted tests, check:public and tsc passed; current-head CI static checks and both test shards passed. I independently exercised hosted Chrome: member and no-vault start open/paused at 0, close and stay closed on status refresh, reopen and play on ?, close on Escape, and return open at 0 on reload; the member also returns open after in-app navigation. The non-member remains closed and its ? opens the vault-agents guide. No unresolved review threads; no merge performed.

…6's (4)

Main gained F56's addendum (3) of 2026-10-19 (#509, the six principles in
motion) at the same place in docs/decisions.md. Both addenda stay, (3)
first as published, and this lane's becomes "F56 addendum (4) of
2026-10-19"; every reference in its files now names (4), so "the addendum
of 2026-10-19" is no longer ambiguous. No change of behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One remaining reference needs the resolved addendum number before this exact-head review can pass.

  • docs/launchpad-development.md:2566-2567 still says “F56's addendum of 2026-10-19” for the Trezor video. This sentence was introduced by this PR (already present at 5bf4810), while the same document now explicitly names addendum (3) for the principles and (4) for the video elsewhere. Please make this reference “F56's addendum (4) of 2026-10-19” too; then request another review on the new head.

The conflict resolution itself checks out: docs/decisions.md at 34d28ce preserves the entire d4ee49e file byte-for-byte as a prefix, including addendum (3); the new addendum (4) body is byte-identical to 5bf4810 apart from its heading. The base-to-head diff remains the same seven files; comparing the old PR delta with the current PR delta shows only the heading/reference renumbering and two comment wraps. git diff --check d4ee49e 34d28ce is clean. The exact-head GitHub checks are green (macOS skipped). I did not re-run Bun or the browser in this round; the independently reviewed behavioral change is unchanged. No merge performed.

Pablo's round 3 found one reference the renumbering missed: Trezor's
section of docs/launchpad-development.md still called the video's addendum
"F56's addendum of 2026-10-19", which since #509 is ambiguous. It now says
(4), like every other mention in this PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty Round 4 APPROVED on exact head b6ec348. The sole change since 34d28ce is the requested one-line correction in docs/launchpad-development.md:2566 to F56 addendum (4). The PR still changes the same seven files; main d4ee49e remains a byte-exact prefix of docs/decisions.md, including addendum (3), and the new addendum body is unchanged from 5bf4810 except for the (4) heading. I checked the numbered F56 references across the changed files and git diff --check. The prior independently checked member/non-member browser behavior and focused tests apply to unchanged runtime code; I did not re-run Bun or Chrome on this docs-only head. Current-head GitHub static checks, both test shards, scope and Ubuntu check pass (macOS and Macroscope skipped). At submission the live head matches, main is d4ee49e, the PR is mergeable, and there are zero review threads. No merge performed.

@immakermatty immakermatty changed the title Trezor: the vault video is the first thing the page shows where it is true (F56 addendum of 2026-10-19) Trezor: the vault video is the first thing the page shows where it is true (F56 addendum (4) of 2026-10-19) Oct 19, 2026
@immakermatty
immakermatty merged commit 4321727 into main Oct 19, 2026
7 checks passed
@immakermatty
immakermatty deleted the agent/DEV-6631-vault-video-first branch October 19, 2026 20:22
immakermatty added a commit that referenced this pull request Oct 19, 2026
…522)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants