Skip to content

docs: the extension page and legal pages describe 0.9.0, with flags concealed, not hidden - #67

Merged
bryanfawcett merged 3 commits into
stagingfrom
claude/blissful-bell-4liuye
Oct 6, 2026
Merged

bryanfawcett merged 3 commits into
stagingfrom
claude/blissful-bell-4liuye

Conversation

@bryanfawcett

@bryanfawcett bryanfawcett commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Why

The site said the flag switch "hides" flags, and it named 0.8.4 as the next release.

Patches (0.8.3 to 0.8.9) are now GitHub test releases. They don't go to the Chrome Web Store, which gets each minor. So the next release teachers get is 0.9.0.

From 0.9.0 the extension no longer hides Toddle's own flags. A teacher can conceal them for a shared screen instead.

Checked against the extension's staging branch:

  • CHANGELOG (Unreleased), README
  • docs/licensing.md, docs/data-schema.md, docs/enterprise-deploy.md, docs/architecture.md, docs/security-review.md
  • SECURITY.md
  • app/features/registry.ts
  • store/listing.md

Extension PR #38 is merged into staging and shipped in the v0.8.9 patch. So docs/data-schema.md (renamed from toddle-data-fields.md) exists, and "My classes switches on and off at once" is shipped code.

What changed

Versions (src/data/legal.ts)

  • next is now 0.9.0, and a new latestPatch is 0.8.9.
  • Each "before" claim now names 0.8.2, the version on the store today.
  • The second security review is recorded as covering the 0.8.4 code, a test release. Its fixes are in 0.9.0.

Flags

  • The wording now lives once, in a new flags constant: "conceal" and "flag visibility", never "hide".
  • "Show flags" in the sidebar shows one student's flags.
  • Concealing is described as a screen, not a lock: a concealed flag can still show that a student has one.
  • It says no more than that, because how a concealed flag looks is still being reworked.
  • The value on Toddle's site is tee-blur-flags (it was gbx-hide-flags in 0.8.2).
  • The sidebar asks Toddle for a student's flags each time it opens.
  • Updated on: the product page, data handling, privacy (from extensionDataFacts), student privacy (new "Student flags" section), security, cookies, terms, the home page and llms.txt.
  • Tests now expect "It conceals flags, not names", and fail on "hide flags" on the extension page, the home page or in llms.txt.

The rebuild

  • The flag switch, the student sidebar and the home page's additions run in the extension's isolated world, inside closed shadow roots.
  • The Security page gains a section on this, and the home page channel's limit (from the extension's SECURITY.md).

Features

For schools

  • A rollout summary on the extension page:
    • the Admin console steps;
    • Group Policy, Intune and macOS, with the store update URL;
    • one organisation key, pasted in once by each teacher;
    • allow licences.nyuchi.dev.
  • The full guide is offered on request.
  • A link to the help centre's "How to use" collection.
  • New "For a teacher" steps that no longer suggest the columns appear without a licence.

Data schema

  • Described on the data handling page (new #schema section), the extension page and llms.txt, and offered on request.
  • Not linked: the extension's repository is private, and the tests forbid GitHub links.

Data handling

  • The licence server keeps a SHA-256 of each key, never the key itself, plus an organisation key's domains.

Unchanged

  • Prices: US$5 and US$149.99, matching the licence server's PRICES.
  • The Zimbabwe CDPA and GDPR framing.

Screenshots

  • 06-flags and 07-menu show 0.8.2. Their alt text says so, and the flags caption is now "The flag switch".
  • Both need retaking on 0.9.0.

Two fixes for failures that were already on staging

  • npm run lint, TS2322 at astro.config.mjs:38. The sitemap's serialize hook set item.lastmod to a Date, but a sitemap item's lastmod is a string. It is now new Date().toISOString(). The sitemap still emits the same ISO 8601 <lastmod>.
  • "Audit what ships": GHSA-68fv-2mgg-jv7q (source-map-js, high). source-map-js 1.2.1 → 1.2.2, the patched release.
    • Every dependent's range already allows 1.2.2, so no override was needed.
    • The lockfile was regenerated with npm update source-map-js, run with the repo's pinned npm 11.12.1. The local npm 10.9 would have stripped the libc fields.
    • The lockfile diff is that one package.

Base branch

This targets staging, not the default main.

#66, the previous PR from this branch, was squash-merged into staging and isn't on main yet. I rebuilt this branch from origin/staging so that work isn't lost or conflicted.

Before the rebuild, the old branch tip and staging had identical trees, so nothing unmerged was dropped.

Checks

These are the steps in .github/workflows/build.yml and the org lint gate, run locally:

  • npm ci (npm 11.12.1): ok.
  • npm run check (astro check): 0 errors, 0 warnings.
  • npm test (build, vitest, CSP): 88/88 tests pass, and the CSP covers all 5 inline scripts.
  • node scripts/audit.mjs: clean. The only remaining advisory is GHSA-ch52-4w7c-c8xp, which was already set aside, by date.
  • npm audit --audit-level=moderate (non-blocking): still reports http-cache-semantics (high, no fix) and postcss-selector-parser (moderate) in build tooling.
  • npm run lint: 0 errors. The remaining warnings are older ones in files this PR doesn't touch.
  • npm run ci:check and npm run format:check: clean.
  • markdownlint: clean. yamllint on the workflows: clean. JSON validity: ok.
  • actionlint wasn't available here. The workflows are unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CoDNYz27iJ7o8PPztCzTpq

…oncealed, not hidden

The pages described 0.8.4 as the next release and said the flag switch
hides flags. Patches are now test releases that do not go to the Chrome Web
Store, so the next release teachers get is 0.9.0, and from it the extension
no longer hides Toddle's own flags: a teacher can conceal them for a shared
screen.

- Flags, said once in `flags` (src/data/legal.ts): "conceal" and "flag
  visibility", never "hide"; "Show flags" in the sidebar for one student;
  concealing is a screen, not a lock. A test fails on "hide flags".
- The rebuild in closed shadow roots, the student sidebar's timetable,
  email and admin-portal changes, a class's teachers by email, and My
  classes switching at once.
- For schools: the rollout steps and the organisation key on the extension
  page, a help centre link, and the data schema, described and on request.
- Data handling: the licence server keeps a hash of each key, not the key.
- The Zimbabwe CDPA and GDPR framing is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CoDNYz27iJ7o8PPztCzTpq
@vercel

vercel Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
learning Ready Ready Preview Oct 6, 2026 3:13am UTC

Request Review

…SA-68fv-2mgg-jv7q

- astro.config.mjs: the sitemap's serialize hook set `lastmod` to a Date,
  but a sitemap item's `lastmod` is a string (TS2322 in `npm run lint`).
  It is now `new Date().toISOString()`; the sitemap output is the same
  ISO 8601 timestamp.
- package-lock.json: source-map-js 1.2.1 → 1.2.2, the patched release for
  GHSA-68fv-2mgg-jv7q (high), which failed "Audit what ships". Every
  dependent's range already allows 1.2.2, so it is `npm update
  source-map-js`, run with the repo's npm (11.12.1); no override needed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CoDNYz27iJ7o8PPztCzTpq
Extension PR #38 (My classes switches at once; docs/data-schema.md) merged
into staging and shipped in the v0.8.9 patch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CoDNYz27iJ7o8PPztCzTpq
@bryanfawcett
bryanfawcett marked this pull request as ready for review October 6, 2026 03:14
@bryanfawcett
bryanfawcett merged commit 0666bf7 into staging Oct 6, 2026
13 checks passed
@bryanfawcett
bryanfawcett deleted the claude/blissful-bell-4liuye branch October 6, 2026 03:15

This branch was successfully deployed

1 active deployment
Preview — b71f655a Deployed Oct 6, 2026 by vercel[bot]
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