File zone: share a set of files as one album (flag off) #115

Merged
void merged 3 commits from void/file-zone into dev 2026-11-12 13:01:46 +00:00
Member

Draft. Ruling ratatoskr:ruling:persona-file-sharing-zone; follow-up chat-mind-20261112T124133749Z-t0.

A set of files is an album: one root text message plus one m.thread reply per file, the shape buildAlbums already reads. No homeserver change; a Mind's mouth and a person produce identical events. Gallery (MSC4274) and a custom relation were checked and rejected, see docs/file-zone.md, "Share a set".

  • shareSet.ts: ordered send with injected ports; a failed upload is named, the rest go; a failed root throws before any upload.
  • ShareSet.tsx: phone layout, one row when idle; picker, title, names, Send mount only after picking. Album list only, never an encrypted zone.
  • getMsgContent extracted from the composer, so shared and attached files carry the same info incl. sha256.
  • Flag fileZoneShare.enabled, default false in config.json.

Tests: shareSet.test.ts reads sent events back through buildAlbums (order, thread relations, failure, flag default). Albums + scene suites pass; the full features run had 2 scene files time out under load, green when rerun alone. tsc here is noisy from the shared node_modules (pre-existing matrix-js-sdk type errors); no new error in touched files beyond the existing AudioContent JSX one.

Not done: no Soul pass yet, no rendered phone check, no deploy. The Mind-side path (outbox, Persona decision, mouth post) is gamecult-ops / Huginn / mouth.

🤖 Generated with Claude Code

Draft. Ruling `ratatoskr:ruling:persona-file-sharing-zone`; follow-up `chat-mind-20261112T124133749Z-t0`. A set of files is an album: one root text message plus one `m.thread` reply per file, the shape `buildAlbums` already reads. No homeserver change; a Mind's mouth and a person produce identical events. Gallery (MSC4274) and a custom relation were checked and rejected, see docs/file-zone.md, "Share a set". - `shareSet.ts`: ordered send with injected ports; a failed upload is named, the rest go; a failed root throws before any upload. - `ShareSet.tsx`: phone layout, one row when idle; picker, title, names, Send mount only after picking. Album list only, never an encrypted zone. - `getMsgContent` extracted from the composer, so shared and attached files carry the same info incl. sha256. - Flag `fileZoneShare.enabled`, default false in config.json. Tests: shareSet.test.ts reads sent events back through `buildAlbums` (order, thread relations, failure, flag default). Albums + scene suites pass; the full features run had 2 scene files time out under load, green when rerun alone. tsc here is noisy from the shared node_modules (pre-existing matrix-js-sdk type errors); no new error in touched files beyond the existing AudioContent JSX one. Not done: no Soul pass yet, no rendered phone check, no deploy. The Mind-side path (outbox, Persona decision, mouth post) is gamecult-ops / Huginn / mouth. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
File zone: share a set of files as one album, behind fileZoneShare.enabled (off)
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
8ba931186f
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
void changed title from File zone: share a set of files as one album (flag off) to WIP: File zone: share a set of files as one album (flag off) 2026-11-12 12:51:57 +00:00
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
void changed title from WIP: File zone: share a set of files as one album (flag off) to File zone: share a set of files as one album (flag off) 2026-11-12 13:01:37 +00:00
File zone share: failed files by position, send guard outside the component, say when the room turned encrypted
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m33s
1a0882c083
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Member

Soul pass (two rounds) found: failure-rule doc claim wrong, retry/clear on failure, double-send, encrypted re-check, unmount mid-send, wrapping, config.json reformat, failed files matched by name, silent encrypted return. All fixed in 1e47b155 and 1a0882c0; 63 albums tests pass. Unpinned by tests: the ShareSet component state machine and the hidden-div mount. Not done: rendered phone check. Flag stays false.

Soul pass (two rounds) found: failure-rule doc claim wrong, retry/clear on failure, double-send, encrypted re-check, unmount mid-send, wrapping, config.json reformat, failed files matched by name, silent encrypted return. All fixed in 1e47b155 and 1a0882c0; 63 albums tests pass. Unpinned by tests: the ShareSet component state machine and the hidden-div mount. Not done: rendered phone check. Flag stays false.
void merged commit c5d1b9c90f into dev 2026-11-12 13:01:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Ratatoskr!115
No description provided.