Repository navigation
Commit 8fb7c80
committed
fix(web): Body Double is for anything, and live it is the agent's screen
Reported 2026-09-28: "I should be able to run a body double session for
anything I'm doing, no restrictions or list of Focus areas ... I end up with
a very 'busy' screen with the agent not being a clear central focus."
No Focus card. It listed the three most recent pending study topics (on the
learner's machine, auto-captured questions from other sessions) with an "at
capacity" chip, above the picker and above the terminal. The activity field
was always free text, so it restricted nothing; it only looked as if it did,
on a surface whose spec already says body doubling is not a study thread
(ADR-0003). The three-topic rule is unchanged where study threads start (the
Study picker's park-first check), GET /api/body-double/focus and its unit
tests stay, and committed focus is managed with `studyloop focus`. The note
composer offers the activity instead of study topics.
A live session is the agent's screen, the way the Study view already is
(absolute, inset 0 inside .content-area, so the column has a height to fill):
* the view's heading and big timer step aside; the strip carries the
activity, the Pomodoro (time, Start/Pause/Resume, Break) and End session;
* the console fills the rest of the window;
* Capture folds to one row under it while live (one $watch on sessionActive,
so start, reattach and end all agree); Note and Park open it, and ending
gives back the learner's own idle choice;
* the floating Park-a-thought button and Pomodoro widget step aside while a
Body Double session is live: they covered the terminal's last line and,
once the strip moved up, the End button itself.
Also: the console's status line and dot had no CSS ("Connected · kiro" was
large bold text; the dot was invisible), and the idle 25:00 sat hard left
under a centred settings row.
Two defects found by measuring this change before calling it done, each now
pinned: with Capture open at 1024x768 the console kept a 240px floor its
section did not, so it spilled 90px under the note form (the floor moved to
the section); and starting the Pomodoro put the floating widget on End, which
only a hit test showed (the click failed after 30s with "intercepts pointer
events").
Measured at 1440x900: strip 85-136px, console 148-827px (82% of the content
area), Capture row 839-888px; at 1024x768 the console gets 79%. With Capture
open the console keeps 270px (laptop) / 257px (tablet) and nothing overlaps.
Tests retired with the card, their behaviour gone: the Focus-pane fold, the
four committed-focus tests, the focus-slot note topic. Updated: the fold
reload test (Capture only), the Pomodoro end test (starts it from the strip),
the post-end test (opens the folded Capture first), journey phases 1-3 and 9
(no card; the rule of three read from the API; the activity typed, not
picked). Body Double e2e 38/38, related web suites 129 passed, JS 167/167,
mkdocs --strict clean.1 parent 7dde69c commit 8fb7c80
7 files changed
Lines changed: 305 additions & 381 deletions
File tree
- docs
- packages/studyloop
- src/studyloop/web/static
- tests/e2e
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
55 | 71 | | |
56 | 72 | | |
57 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
70 | 76 | | |
71 | 77 | | |
72 | 78 | | |
| |||
Lines changed: 22 additions & 52 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3160 | 3160 | | |
3161 | 3161 | | |
3162 | 3162 | | |
3163 | | - | |
3164 | | - | |
3165 | | - | |
| 3163 | + | |
3166 | 3164 | | |
3167 | 3165 | | |
3168 | 3166 | | |
| |||
3186 | 3184 | | |
3187 | 3185 | | |
3188 | 3186 | | |
3189 | | - | |
| 3187 | + | |
3190 | 3188 | | |
3191 | 3189 | | |
3192 | 3190 | | |
| |||
3251 | 3249 | | |
3252 | 3250 | | |
3253 | 3251 | | |
3254 | | - | |
3255 | 3252 | | |
3256 | | - | |
| 3253 | + | |
| 3254 | + | |
| 3255 | + | |
| 3256 | + | |
| 3257 | + | |
| 3258 | + | |
| 3259 | + | |
| 3260 | + | |
| 3261 | + | |
| 3262 | + | |
| 3263 | + | |
3257 | 3264 | | |
3258 | 3265 | | |
3259 | 3266 | | |
| |||
3310 | 3317 | | |
3311 | 3318 | | |
3312 | 3319 | | |
3313 | | - | |
3314 | | - | |
3315 | | - | |
3316 | | - | |
3317 | | - | |
3318 | | - | |
3319 | | - | |
3320 | | - | |
3321 | | - | |
3322 | | - | |
3323 | | - | |
3324 | | - | |
3325 | | - | |
3326 | | - | |
3327 | | - | |
3328 | | - | |
3329 | | - | |
3330 | | - | |
3331 | | - | |
| 3320 | + | |
| 3321 | + | |
| 3322 | + | |
| 3323 | + | |
| 3324 | + | |
| 3325 | + | |
| 3326 | + | |
3332 | 3327 | | |
3333 | 3328 | | |
3334 | | - | |
3335 | | - | |
3336 | | - | |
3337 | | - | |
3338 | 3329 | | |
3339 | 3330 | | |
3340 | 3331 | | |
3341 | 3332 | | |
3342 | 3333 | | |
3343 | | - | |
3344 | | - | |
3345 | | - | |
3346 | | - | |
3347 | | - | |
3348 | | - | |
3349 | | - | |
3350 | | - | |
3351 | | - | |
3352 | | - | |
3353 | | - | |
3354 | | - | |
3355 | | - | |
3356 | | - | |
3357 | | - | |
3358 | | - | |
3359 | | - | |
3360 | | - | |
3361 | 3334 | | |
3362 | 3335 | | |
3363 | 3336 | | |
| |||
3439 | 3412 | | |
3440 | 3413 | | |
3441 | 3414 | | |
3442 | | - | |
3443 | 3415 | | |
3444 | 3416 | | |
3445 | 3417 | | |
| |||
3478 | 3450 | | |
3479 | 3451 | | |
3480 | 3452 | | |
3481 | | - | |
3482 | | - | |
3483 | | - | |
3484 | | - | |
| 3453 | + | |
| 3454 | + | |
3485 | 3455 | | |
3486 | 3456 | | |
3487 | 3457 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1671 | 1671 | | |
1672 | 1672 | | |
1673 | 1673 | | |
1674 | | - | |
1675 | | - | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
1676 | 1682 | | |
1677 | 1683 | | |
1678 | 1684 | | |
| |||
1681 | 1687 | | |
1682 | 1688 | | |
1683 | 1689 | | |
1684 | | - | |
| 1690 | + | |
1685 | 1691 | | |
1686 | 1692 | | |
1687 | 1693 | | |
| |||
1698 | 1704 | | |
1699 | 1705 | | |
1700 | 1706 | | |
1701 | | - | |
1702 | | - | |
1703 | | - | |
1704 | | - | |
1705 | | - | |
1706 | | - | |
1707 | | - | |
1708 | | - | |
1709 | | - | |
1710 | | - | |
1711 | | - | |
1712 | | - | |
1713 | | - | |
1714 | | - | |
1715 | | - | |
1716 | | - | |
1717 | | - | |
1718 | | - | |
1719 | | - | |
1720 | | - | |
1721 | | - | |
1722 | | - | |
1723 | | - | |
1724 | | - | |
1725 | | - | |
1726 | | - | |
1727 | | - | |
1728 | | - | |
1729 | | - | |
1730 | | - | |
1731 | | - | |
1732 | | - | |
1733 | | - | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
1734 | 1713 | | |
1735 | 1714 | | |
1736 | 1715 | | |
| |||
1834 | 1813 | | |
1835 | 1814 | | |
1836 | 1815 | | |
1837 | | - | |
| 1816 | + | |
1838 | 1817 | | |
1839 | 1818 | | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
1840 | 1829 | | |
1841 | 1830 | | |
1842 | 1831 | | |
| |||
1878 | 1867 | | |
1879 | 1868 | | |
1880 | 1869 | | |
1881 | | - | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
1882 | 1874 | | |
1883 | 1875 | | |
1884 | 1876 | | |
| |||
1898 | 1890 | | |
1899 | 1891 | | |
1900 | 1892 | | |
1901 | | - | |
| 1893 | + | |
1902 | 1894 | | |
1903 | 1895 | | |
1904 | 1896 | | |
| |||
1932 | 1924 | | |
1933 | 1925 | | |
1934 | 1926 | | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
1935 | 1930 | | |
1936 | 1931 | | |
1937 | | - | |
1938 | | - | |
| 1932 | + | |
| 1933 | + | |
1939 | 1934 | | |
1940 | 1935 | | |
1941 | 1936 | | |
| |||
0 commit comments