Skip to content

docs(legal): drop the session view from what the browser keeps - #115

Merged
kalaspuff merged 1 commit into
mainfrom
fctl/992-now-when-we-have-the-new-session-viewer
Nov 8, 2026
Merged

kalaspuff merged 1 commit into
mainfrom
fctl/992-now-when-we-have-the-new-session-viewer

Conversation

@fctl-sh

@fctl-sh fctl-sh Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The privacy policy's list of what app.fctl.sh keeps in the browser loses its line about the session view. hyperstructure/fctl#480 makes the view in turns the only session view, and the app clears the pick browsers kept (fctl:session-view) when it loads. updated moves to 2026-11-08.

Merge this once hyperstructure/fctl#480 is deployed to app.fctl.sh: until then, browsers that opted into the new view still keep the pick.

fctl session


Note

Low risk. A one-line removal and date bump in the privacy policy; the only concern is timing against the app change it describes.

What it does. Removes the privacy policy's line about the browser keeping a choice of the new session view, since the app's new session view becomes the only one and clears the stored pick on load. Bumps the policy's updated date to 2026-11-08.

Merge ordering. The description says to merge only after hyperstructure/fctl#480 is deployed to app.fctl.sh, as browsers keep the pick until then.

fctl review's first look at b0ae1b5 · 1 file, +1 −3 · Review agent settings

Sessions have one view since hyperstructure/fctl removes the classic one,
and the app makes browsers forget which of the two they kept.
@kalaspuff
kalaspuff merged commit 2720778 into main Nov 8, 2026
5 checks passed
@kalaspuff
kalaspuff deleted the fctl/992-now-when-we-have-the-new-session-viewer branch November 8, 2026 01:05
kalaspuff pushed a commit to hyperstructure/fctl that referenced this pull request Nov 8, 2026
## Summary

Every session now opens in the view that reads in turns, which shipped
as an opt-in in #474–#477. The classic session page and everything that
switched between the two views are gone: the ⋯ menu's "Try the new view"
/ "Back to the classic view", the `v` shortcut, and the **New session
view** toggle in Settings → Appearance. Browsers that kept a pick
(`fctl:session-view` in localStorage) forget it when the app loads, so
the app no longer stores anything about the view.

The new view's code had been reusing the classic page's details rail and
share dialog. It now lives in `routes/session.tsx`, together with that
shared code. The code only the classic page used goes too: its
`Transcript` component, the rows that showed thoughts and calls
streaming in inside the transcript (the new view shows them in the line
above the message box), and the context that let each page pick its own
busy mark (it is always the dot wave now). The docs (getting started and
`llms.txt`) describe the one view.

To verify, I ran the classic page's tests against the new page: closing
the overlays when another session opens, the runner-disk and
paused-sandbox notes, and the `c`, `d` and `r` keys. The transcript's
tests now run against the transcript in turns, minus the two that
covered streaming rows the new view doesn't have. `cargo xtask check
web` and `cargo test -p xtask` (docs links) pass. I looked at the page
in `cargo xtask demo`, in both themes and at a phone's width, with
`main`'s web app beside it against the same stack.

The privacy policy on fctl.sh lists the view's localStorage key. Its
pull request below removes that line, and it should merge once this
change is deployed:

- hyperstructure/fctl-site#115

## Screenshots

At f06936e, in `cargo xtask demo`'s world: shop#231 mid-turn, as
everyone who hadn't opted in saw it before (classic) and as everyone
sees it now.

| Before | After |
|---|---|
| ![Before: the classic session page,
light](https://app.fctl.sh/api/v1/published/9fDK5Onuir4nvtq51qBZFJ9GRnyP1mmLaIt1Reqa7jc/before-session-light.png)
| ![After: the session in turns,
light](https://app.fctl.sh/api/v1/published/HMqRgymRq9UKQbqZ5EuivZRwIFeJO0NMkp5NcGHVUs1/after-session-light.png)
|
| ![Before: the classic session page,
dark](https://app.fctl.sh/api/v1/published/SHllHCXEQcuctLptlXQDLWbs1jMzf0ReKxQSoYl152a/before-session-dark.png)
| ![After: the session in turns,
dark](https://app.fctl.sh/api/v1/published/njCPVM8Gm3UxdHkKFkG3iFtZcEteru0MOFP94RwkOsY/after-session-dark.png)
|
| ![Before: the classic session page on a phone,
dark](https://app.fctl.sh/api/v1/published/jbvoQV94KMCy21pBcw5QE6CNW6zqFJ9ccZBXUNSBhNk/before-phone-session-dark.png)
| ![After: the session in turns on a phone,
dark](https://app.fctl.sh/api/v1/published/1Pyx7pkPoSv5XirGsbbBQ3QBL77LF3FkjdN57JOQ2CF/after-phone-session-dark.png)
|

Settings → Appearance without the **New session view** toggle:

| Before | After |
|---|---|
| ![Before: Appearance with the New session view
toggle](https://app.fctl.sh/api/v1/published/GVeEt96dY7KwVJdSGQbfFoet4oyKVoqZ5HRGIrdEhBK/before-appearance-light.png)
| ![After: Appearance with the theme and the clock
only](https://app.fctl.sh/api/v1/published/D7d4K3MpuuQGCW79Fm8j5C9LbrXMKbA2NceGSgmkJ6S/after-appearance-light.png)
|

## Worth confirming

- **Decision:** No way back: there is no setting or hidden switch to
bring back the classic page, and `v` is now free rather than reassigned.
- **Decision:** The app removes the leftover `fctl:session-view` key at
startup instead of leaving it in people's browsers, so the privacy
policy can drop its line. That cleanup can be removed after a few
releases.
- **Assumption:** Nothing people relied on was only on the classic page.
On a computer, its header also showed the description, the status's
reason, the branch and the reconnecting, runner and disk notes. The new
view shows the first of those notes in the header, the description and
branch on the cover, and the rest in the details.

[fctl session](https://app.fctl.sh/s/ses_01M6W9V9Q7RQBPZVNZ646R1BW6)

<!-- FCTL_REVIEW_SUMMARY -->
---

> [!NOTE]
> **Medium risk.** It replaces the session page, the app's main screen,
with the page that was an opt-in until now and deletes the classic page
and its switch, so a gap in the merged page reaches every user at once.
>
> **What it does.** Makes the session view in turns the only one: the
classic session page, its transcript, the Settings toggle, the menu
entries and the `v` shortcut are removed. The code the new page shared
with the classic one (details rail, share dialog) moves into
`routes/session.tsx`, and `main.tsx` clears the old `fctl:session-view`
browser setting at startup. Docs and tests are updated to match, and the
two page test files are merged into one.
>
> **Classic view removed.** There is no way back to the classic session
page, and a privacy policy change in fctl-site#115 should merge only
after this is deployed.
>
> <sub>[fctl
review](https://app.fctl.sh/s/ses_01M6WB7X270FY6EREY11RY16SA)'s first
look at
[`dbebbed`](dbebbed)
· 30 files, +1500 −2797 · [Review agent
settings](https://app.fctl.sh/p/fctl?tab=reviews)</sub>

<!-- /FCTL_REVIEW_SUMMARY -->

---------

Co-authored-by: fctl-sh[bot] <fctl-sh[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant