Manage a channel: name, presentation, note on the door, FAQ #369

Merged
littlefox merged 5 commits from issue-348-manage-channel into main 2026-10-28 01:32:46 +00:00
Owner

Closes #348

Stacked on #347 (merge that first). "Hantera kanalen" under a channel's status for its supervisor. Devserver test manage_channel (including a non-supervisor being refused); manage-channel.spec on all three profiles.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #348 Stacked on #347 (merge that first). "Hantera kanalen" under a channel's status for its supervisor. Devserver test manage_channel (including a non-supervisor being refused); manage-channel.spec on all three profiles. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
"Skapa kanal" in Alla kanaler opens a short form: the name, who can read
it (open, closed, secret), anonymous posts and secret members, and an
optional presentation. The channel is created with create-conf, joined,
and opened; the creator is its supervisor. A taken name, a server that
doesn't allow it, and a presentation that fails are said plainly.

kom-client gets admin.rs (ChannelKind, AdminError, create_channel), and
presentations work for any conference, not only my own person.

Refs #347

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
A channel's supervisor (or a member of the supervising conference) gets
"Hantera kanalen" under its status: rename it, write its presentation,
put up or take down the note on the door, and add or remove FAQs. Others
see the status as before. The server has the last word; a refusal is
said as "you may not change this channel".

The note is written as elisp writes it: a text to the server's motd
conference with the channel's name as subject, then set-etc-motd. A FAQ
is a text to the channel marked with faq-text.

Refs #348

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Test: what the channel status shows; phones open it through ⋯
All checks were successful
ci / desktop (push) Successful in 20m8s
ci / e2e (desktop) (push) Successful in 23m9s
ci / e2e (iphone) (push) Successful in 22m55s
perf / perf (pull_request) Has been skipped
ci / plan (push) Successful in 2m27s
ci / check (push) Successful in 9m57s
ci / e2e (android) (push) Successful in 16m31s
549d5c630c
Refs #347

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Refs #348

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Manage a channel: the message stays above the status after a change
All checks were successful
ci / e2e (iphone) (push) Successful in 22m1s
ci / e2e (android) (push) Successful in 19m34s
ci / e2e (desktop) (push) Successful in 19m9s
ci / desktop (push) Successful in 22m32s
perf / perf (pull_request) Has been skipped
ci / plan (push) Successful in 2m38s
ci / check (push) Successful in 10m5s
ab539efc74
open_conf clears the status line on purpose, so the message for a
change was gone before it showed. A change now reloads the view itself.

Refs #348

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge main into issue-348-manage-channel
All checks were successful
perf / perf (pull_request) Has been skipped
ci / plan (push) Successful in 2m2s
ci / check (push) Successful in 8m30s
ci / desktop (push) Successful in 15m19s
ci / e2e (desktop) (push) Successful in 18m2s
ci / e2e (android) (push) Successful in 19m13s
ci / e2e (iphone) (push) Successful in 21m35s
ade32fcc83
littlefox referenced this pull request from a commit 2026-10-28 15:15:36 +00:00
Sign in to join this conversation.
No description provided.