Commit graph

2,122 commits

Author SHA1 Message Date
d5b9e33536 Merge pull request 'docs: harvest physical-room row and sources for the 41 s and degraded-score claims' (#160) from void/harvest-physical-room into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-14 01:54:37 +00:00
Void
6b40809f9d docs: harvest polarity row loses the shotgun claim; physical room run row; sources for the 41 s and degraded-score claims
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m21s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:54:29 +00:00
38b2c064b2 Merge pull request 'Upload failures tell the sender a reason and a next step' (#159) from void/upload-failure-reasons into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-14 01:53:57 +00:00
Void
ec2637a2bb Upload reasons: offline and background-tab only explain a dropped request; Details lays out in the card
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m54s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:53:47 +00:00
Void
c36b6e2cd9 Upload failures tell the sender a reason and a next step; diagnostics behind Details
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
uploadFailure attaches what the client observed (unreadable, offline, hidden tab, aborted,
progressed, stopped) and keeps a homeserver errcode; uploadReason turns that into a cause and an
action. The upload cards and the share panel's refusal list use it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:52:06 +00:00
bc097d0490 Merge pull request 'docs: Kiko's corrections to the symphony grammar harvest' (#158) from void/harvest-corrections into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-14 01:47:42 +00:00
398b172e21 Merge pull request 'Files desk: refuse files over the server's upload cap before sending' (#157) from void/files-desk-cut5 into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
2026-11-14 01:47:41 +00:00
Void
907635917e Size refusal: a failed run still names the refused files; a cap that is not a positive number is no cap
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m59s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:47:07 +00:00
Void
d3894f5b51 docs: apply Kiko's corrections to the symphony grammar harvest
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m21s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:46:39 +00:00
Void
65d7e7a46a Files desk: refuse files over the server's upload cap before sending
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
A file larger than m.upload.size is named in the note and dropped from the pick before any
upload or album root; a pick of only such files sends nothing. No stated cap or no file size
refuses nothing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 01:45:42 +00:00
da822e9e4e Merge pull request 'Phone-hit guard: no blind spots for aliased, namespace and non-tsx IconButton; scope-aware PhoneHit check' (#156) from void/phone-hit-guard-hardening into dev
All checks were successful
Rat dev preview / Build dev preview (push) Successful in 5m5s
Build pull request / Build pull request (pull_request) Successful in 5m12s
2026-11-13 23:46:37 +00:00
Void
0271d5f692 Phone hit guard: see every spelling of IconButton, read scope and the AST
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m54s
The coverage guard now scans every script file under src, resolves aliased and
namespace-member IconButton tags, and fails loudly on any other mention
(as={IconButton}, rebinding, re-export, destructuring, element access). A
PhoneHit that an inner scope rebinds, or that is imported as a type, no longer
counts. drawnPx/sizeProp read the parsed tag, not its text. The emoji Sidebar
column's 4 px gap is pinned.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:34:49 +00:00
08be0a792d Merge pull request 'Desk: one owner for the open count, derived row fold state, guest and settled fixtures' (#155) from void/desk-slice-1-findings into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:33:40 +00:00
Void
6a209649dc Desk Soul fixes: memoize the navigator's list so the hash check runs once; a check that cannot run withdraws every card; pin the navigator's verified count
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:33:39 +00:00
Void
b8741f9dcc Desk: one verified count, rotation-safe row fold, fixtures for guest and settled
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m35s
The navigator's 'Desk · N open' counted cards the desk withdraws on an
options_hash mismatch. buildDesk now owns the count (open_count less the
withdrawn open cards) and the navigator reads it through the same
useUnverified check the page uses; before the check lands it shows no count.
A row's fold is derived from the screen size and a tap, so rotation cannot
leave it stale. Adds guest and settled-while-answered fixtures and tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:29:06 +00:00
0b3e2294ca Merge pull request 'docs: Mimir bioacoustic research harvest for the symphony grammar' (#154) from void/symphony-grammar-harvest into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:28:25 +00:00
Void
d42584cd72 docs: harvest of Mimir's bioacoustic research for Aqua's activity grammar
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m17s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:28:20 +00:00
f3d0ebdb06 Merge pull request 'Media row reads room ids from @rooms.file_zones' (#153) from void/stewardships-rooms-key into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:25:20 +00:00
Void
cf1ecd64da Media row reads the room id from @rooms.file_zones, the shape provisioning writes
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m42s
The provisional media[<mind>] key was never written by anything; gamecult-ops #111 records ids under @rooms. The old key is no longer read.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:24:00 +00:00
ca3046e662 Merge pull request 'docs: Files desk status after cuts 1-4 and Stop' (#152) from void/files-desk-doc-status into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:18:19 +00:00
Void
817f2e46d6 docs: Files desk status names what is built and that the Commons row is not
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m25s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:18:17 +00:00
a078346ecc Merge pull request 'Files desk: Stop a send in flight, show replaces loops, freshest last event on add' (#151) from void/files-desk-send-cancel into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:17:42 +00:00
Void
c98d0175ff Soul fixes: sent-but-unechoed events count for the freshest last event; pre-aborted send starts no upload
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 5m33s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:17:40 +00:00
Void
e406ec7dc4 Files desk: Stop a send in flight; files in a replaces loop all show; Add files threads after the freshest event
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
Stop aborts the running upload (onPromise + mx.cancelUpload) and leaves it and the rest picked as 'stopped'. foldVersions shows files caught in a replaces loop with no head instead of hiding them. An add reads the room timeline at send time for the newest event in the thread.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:14:42 +00:00
d12e7bd578 Merge pull request 'Files desk cut 4: add files to an open album, named upload refusals' (#150) from void/files-desk-cut4 into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:11:35 +00:00
Void
90c6d5e278 Cut 4: pin that ShareSet sends into an existing album
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 5m22s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:11:33 +00:00
Void
0622d7d65d Files desk cut 4: add files to an open album; name the upload refusals
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
sendShareSet takes a title or an existing album (no new root; the first file threads after the album's newest event). Failed files carry the refusal for M_TOO_LARGE, M_FORBIDDEN and M_LIMIT_EXCEEDED in the result note. AlbumView mounts an Add files panel inside an open album.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:05:37 +00:00
f491df04f9 Merge pull request 'Files desk cut 3: versions via org.gamecult.publish.replaces' (#149) from void/files-desk-cut3 into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 23:03:48 +00:00
Void
5835e565cd Cut 3 Soul fixes: replaces counts only from the same sender; tests for the loop guard and the cover
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 6m20s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:03:33 +00:00
Void
796bc161a9 Cut 3: doc marks versions done
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 23:00:10 +00:00
Void
ac6018b57c Files desk cut 3: show the latest version of a file chain, earlier versions folded under it
A file event naming org.gamecult.publish.replaces supersedes the event it names. foldVersions reads the chain from the events alone; buildAlbums lists heads (count too) and AlbumView unfolds 'N earlier versions'. Both events stay ordinary files for other clients.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 22:59:52 +00:00
143bcc2dc6 Merge pull request 'Files desk cut 2: pagination in useAlbums, ShareSet folder test' (#148) from void/files-desk-cut2 into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 22:59:50 +00:00
Void
6aaee8badd Cut 2: doc names the page cap; truncation note says albums or files
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 5m20s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 22:59:33 +00:00
Void
01dfb155c5 Files desk cut 2: read every page of threads and replies; pin folder -> album title in ShareSet
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
useAlbums followed no next_batch, so a zone past 100 albums or 100 files per album was silently cut. readPages follows the token up to 20 pages per endpoint and says when the cap stopped it; AlbumView shows a dim note then.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 22:55:30 +00:00
cf8b16ff5d Merge pull request 'docs: Commons and per-Persona Files desk' (#142) from void/commons-files-desk into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 22:47:34 +00:00
Void
036146ce40 docs: fold Eureka's answers into the Files desk doc (room, cap, poster, final marker, Range unverified)
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m56s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 22:47:25 +00:00
bb6155709a Merge pull request 'Files desk cut 1: folders by album title path, share into the current folder' (#147) from void/files-desk-view into dev
All checks were successful
Rat dev preview / Build dev preview (push) Successful in 4m34s
Build pull request / Build pull request (pull_request) Successful in 4m31s
2026-11-13 21:46:36 +00:00
Void
b8eed50bd7 Soul fixes: a folder that empties keeps its Back row, blank titles get a label
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m1s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 21:46:28 +00:00
Void
53a724ae27 Files desk cut 1 under Matrix authority: folders by album title path, share into the current folder
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
Albums titled a/b/c group into folders in AlbumView; ShareSet prefixes the
current folder onto the album title it sends. No wire change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 21:45:00 +00:00
229591e22c Merge pull request 'Soft logout keeps local data; MAS front hides register and reset' (#145) from void/mas-client-fixes into dev
Some checks failed
Rat dev preview / Build dev preview (push) Successful in 3m39s
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-13 19:32:10 +00:00
Void
cd30c3dc40 wipeLocalData test: lint-clean never-settling store
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m23s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 19:13:14 +00:00
Void
8fb95402f5 wipeLocalData: bounded clearStores, storage clear that cannot reject; tests that bite
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 19:13:04 +00:00
Void
31d58075db Second Soul pass: soft event without a session wipes, wipe never rejects, rendered MAS tests
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
wipeLocalData moves to its own module with injectable ports: per-database failures are contained and localStorage clears in a finally. A soft logout with no session to remember is treated as hard. Login/PasswordLoginForm/ResetPassword MAS behavior is now tested by rendering. Login and register completion settle once per response.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 18:56:08 +00:00
Void
3a5258c3ef Soul fixes: idempotent logout handler, keep register consent entry under MAS, settle stores on register
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
First SessionLoggedOut decides; later events are ignored so a second soft event cannot fall into the wipe. Under MAS a configured registrationEntry (with its training notice) is kept; the MAS notice replaces only the in-client form and bare link. Registration goes through the same keep-or-wipe settle as login. Soft record drops its unused baseUrl. One shared https-or-localhost predicate.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 18:40:59 +00:00
Void
4fd83fb4c4 Soft logout keeps local data and re-logs in on the same device; MAS front hides register and reset
Soft (soft_logout === true) drops only the access token and records the device; sign-in is fixed to that user and sends device_id; same user and device keeps the stores, anything else wipes via the one wipeLocalData. Hard logout still wipes. When discovery advertises an msc2965 account or issuer, the register and forgot-password entries give way to a notice pointing at the account page.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 18:36:51 +00:00
dc9a541820 Merge pull request 'Phone glyphs: bigger icons in IconButtons and nav chevrons on phones' (#144) from void/phone-glyphs into dev
All checks were successful
Rat dev preview / Build dev preview (push) Successful in 3m49s
2026-11-13 18:24:24 +00:00
Void
9d65a34507 phoneGlyph test: pin each Icon size's px to folds' own CSS
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m3s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 18:20:12 +00:00
Void
9db91378c5 Phone glyphs: icons inside IconButtons and the nav chevron draw larger on phones, box unchanged
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 5m0s
folds draws a glyph at 16-24 px; on a phone the 16/18/20 px ones read small in their buttons. One global
rule per folds Icon size scales the glyph (22/24/24/26/28 px) at paint time inside an IconButton, so no
button, PhoneHit area or row changes size and desktop is untouched. phoneGlyph.test.ts pins the folds
class names, the px range and that the rule is a phone-only scale.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 17:52:10 +00:00
Void
a8e3acbde0 docs: Files desk decided as Matrix-only (A); Eureka's notes folded in; cut 1 recorded
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m20s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 15:46:23 +00:00
Void
0ab185bb57 docs: Files desk as a comparison, Matrix as the single authority (A) against the host service (B); publisher rule
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m19s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 14:48:01 +00:00