docs: the 0.3.0 backlog, from testing 0.2.6.1

Wonder Ink's next interface, the PDF viewer's Download and second Print,
readable worksheet names, a tab's sound indicator, the popup that Chrome
does not show, session retention, and the site's weight; Presentations
as a maximisable tile grid with click-to-advance and a hidden pointer;
the launcher's subtitles and Parent Call's flash. Recorded, not built.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ekklesia
2026-09-24 07:01:10 -05:00
co-authored by Claude Opus 5.5
parent cd798a33a1
commit 0bbe2a1ee0
3 changed files with 92 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
# Backlog — 0.3.0 and later
Recorded after hands-on testing of 0.2.6.1 in September 2026. **None of
this is in 0.2.6.2**, which is limited to picture printing, the
Presentations memory failure and the settings lockdown. Each item says
what was observed, so whoever picks it up starts from the evidence.
## Wonder Ink
- **An interface like Chrome's, visibly the classroom's.** Familiar tabs
and back/forward/reload, without an address bar, new-tab button or
anything that takes a teacher somewhere the lesson did not. The 0.2.6.1
tab strip is a step towards it, not the design.
- **The PDF viewer's own Download button.** It saves a copy, which the
download handler then opens as another worksheet tab. Remove it, or
intercept the download from a worksheet tab so it does nothing visible.
(0.2.2 already skips re-opening a save from a worksheet tab — see
`from_worksheet` in `on_download` — so check first which route it now
takes.)
- **One Print, not two.** A worksheet tab has the viewer's printer icon
and Wonder Ink's Print; both now open the same preview, but a teacher
sees two buttons. One teacher-facing workflow.
- **Readable worksheet names.** Tabs show the downloaded file's name,
which for many worksheets is a long generated prefix. Strip it, or take
the name from the PDF's own title.
- **A speaker on the tab that is playing sound** (`QWebEnginePage.recentlyAudible`).
- **Linked lesson text opens an intermediate popup** instead of following
the link, where Chrome follows it directly. Investigate: probably a
site script choosing `window.open` for a gesture Wonder Ink reports
differently, or `createWindow` being asked for a popup type we treat as
a tab.
- **Session retention.** Today closing Wonder Ink signs the teacher out
(session-only cookies). Wanted: recover from an accidental close, but
expire after a configurable period of inactivity, including across
restarts. Needs a design that never leaves one teacher signed in for
the next — and first, a real account to measure where the site keeps
its sign-in: 0.2.6.1 found cookies do clear on close, but the profile's
Local Storage persists, and whether the site stores its token there has
never been tested.
- **The site's sluggishness, where it is ours.** Measured in 0.2.6.1:
Wonder Ink and Chrome take the same time (about 2.9 s cold) and the
site is the weight — 119 – 160 requests, 3.2 MB, the Google Maps API
loaded twice. Ours to look at: whether a classroom's QtWebEngine has its
GPU (`classroom-wonderink --diagnose` on the machines), and the page
shell being revalidated on every warm load (62 – 87 ms).
- **The browser is scaled twice** under Plasma (dpr 2.25 at 150%):
`classroom-browser` forces `UI_SCALE` on a Chrome that already follows
the compositor. Deliberately left in 0.2.6.x because teachers know that
size, and Wonder Ink was matched to it. Decide once, for both.
## Presentations
- **A normal, maximisable application** instead of the small floating
library window.
- **Consistently sized tiles in a responsive grid.**
- **No unnecessary internal scrollbars or stretched layouts.** 0.2.6.2
had to give a row extra height by hand when a card carries the
memory-failure message; the layout should size to its cards.
- **Keep the window's size and position** when importing a presentation
or changing a cover.
- **Click the slide to advance.**
- **Hide the pointer after a moment of stillness while presenting**, and
bring it back on movement.
- **Keep the keyboard controls**, and never advance when a playback
control itself is clicked.
- **Remote control of a presentation** — later than 0.3.0.
## The launcher and Parent Call
- **Remove the subtitles under DVD and Presentations** on the launcher.
- **Parent Call appears among the ordinary applications for a moment and
then disappears**, which looks like a crash. Keep it reachable through
its background or notification route without it flashing up as a
window.
## The settings lockdown
- A notification's **Configure** button still shows, and opens a small
"module disabled" window (0.2.6.2). Hiding it needs a change to Plasma's
notification applet, not configuration — revisit if Plasma gains a
Kiosk key for it.
- The settings-module list is per Plasma release. `tools/lab/converged-check`
fails when a new one appears; the list in `config/plasma/xdg/kdeglobals`
then needs the new name.
+4
View File
@@ -280,3 +280,7 @@ classroom-manual --features which manual pages this device shows
`--status` prints titles, slide counts, the chosen thumbnail slide, both `--status` prints titles, slide counts, the chosen thumbnail slide, both
timers and the expiry date. It is the fastest way to answer "why has this timers and the expiry date. It is the fastest way to answer "why has this
gone" and "why has this not appeared". gone" and "why has this not appeared".
## Later
The library's next round — a maximisable window, a tile grid, click to advance, a hidden pointer — is in [backlog.md](backlog.md).
+4
View File
@@ -571,3 +571,7 @@ For completeness, so nobody re-audits them: the managed policy in
`/etc/opt/chrome/policies/managed/` sets first-run, sign-in, password `/etc/opt/chrome/policies/managed/` sets first-run, sign-in, password
and homepage behaviour only. None of it touches media, autoplay, and homepage behaviour only. None of it touches media, autoplay,
iframes, fullscreen or site permissions. iframes, fullscreen or site permissions.
## Later
What testing of 0.2.6.1 asked for next is in [backlog.md](backlog.md).