feat(ui): stacking role badges in roster + chat; drop default pentagram
- introduce a Role model + App::host()/roles_of(): the host is the first occupant of the roster (shown the moment they join, no sandbox required), and roles are additive — a host who summoned a sandbox and can drive reads ✝⚡◆. Badges read the same ACL the broker enforces, so they can never advertise a power the room won't honour - render the stacked badge in the clergy panel and inline next to the author on every chat message; split VirtualBox commands into their own help cluster - default styling: the startup handle prompt now prints ✝ (crypt sigil) instead of the inverted pentagram - README: document VirtualBox VMs, snapshot save/load, AI streaming + recall, the badge system, and the expanded theme set - gitignore out-of-tree experiments, the heavy demo-build kit, and logs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+4
-2
@@ -99,7 +99,9 @@ fn main() -> Result<()> {
|
||||
match net::authenticate(&ip, port, &name, &password, no_tls, insecure) {
|
||||
Ok(s) => break s,
|
||||
Err(e) if interactive => {
|
||||
eprintln!("✖ {e:#}\n that handle didn't work (taken or full?) — pick another.");
|
||||
eprintln!(
|
||||
"✖ {e:#}\n that handle didn't work (taken or full?) — pick another."
|
||||
);
|
||||
name = prompt_handle()?;
|
||||
}
|
||||
Err(e) => return Err(e),
|
||||
@@ -168,7 +170,7 @@ fn main() -> Result<()> {
|
||||
fn prompt_handle() -> Result<String> {
|
||||
use std::io::Write;
|
||||
loop {
|
||||
print!("⛧ choose your handle: ");
|
||||
print!("✝ choose your handle: ");
|
||||
std::io::stdout().flush()?;
|
||||
let mut s = String::new();
|
||||
if std::io::stdin().read_line(&mut s)? == 0 {
|
||||
|
||||
Reference in New Issue
Block a user