notedeck

Latest codebase changes to notedeck

Changes

William Casarin (54):

  • nostrverse: change default container from room to space
  • nostrverse: add dedicated relay support for multiplayer sync
  • nostrverse: defer relay subscription until connection is open
  • dave: replace dispatched_user_count with DispatchState state machine
  • nostrverse: quick refactors — parse_vec3, self_user, subscription dedup
  • nostrverse: break down build_space and sync_scene into focused helpers
  • dave: add codex tool events, token usage, and manual compaction
  • nostrverse: break down show_room_view and render_editing_panel
  • columns: async initial timeline loading to avoid UI stalls
  • dave: extract process_events() match arms into standalone functions
  • dave: clamp input box height to prevent overflow off-screen
  • dave: cycle permission mode badge through Default/Plan/AcceptEdits
  • dave: fix context fill bar to use input_tokens only
  • dave: keep Done indicator dot on completed sessions
  • dave: check for .exe extension in PATH lookup on Windows
  • nostrverse: add tilemap support with texture atlas rendering
  • dave: click Done indicator dot in session list to dismiss it
  • dave: remote session creation via host picker and spawn commands
  • dave: fix compact button using wrong session ID format
  • dave: make session keybindings match visual order
  • dave: show last activity timestamp in status bar
  • columns: add NIP-51 people list support (kind 30000)
  • columns: add people list creation UI
  • dave: sync permission mode between host and observer via nostr
  • dave: fix markdown tables breaking layout on small screens
  • dave: add “Allow Always” for per-session runtime permission allowlist
  • dave: fix markdown tables breaking layout on small screens
  • dave: persist focus indicator in kind-31988 session notes
  • dave: make auto-steal focus transition-based instead of per-frame
  • nostrverse: remove auto-snap-to-parent during free drags
  • nostrverse: refactor tilemap textures to data-driven TileStyle
  • fix: clear async load tracking when popping timeline routes
  • chrome: fix wasm build
  • nostrverse: fix rotation editor euler decomposition and tilemap z-fighting
  • fix: remove sync NDB queries that defeated async timeline loading
  • app: split App trait into update() + render()
  • chrome: only call update() on apps that have been opened
  • chrome: toggle side menu with Escape key from any app
  • nostrverse: add reset button and richer demo tilemap
  • nostrverse: fix deleted objects remaining rendered in scene
  • chrome: move mobile toolbar from Columns to Chrome level
  • chrome: remove unnecessary i32 cast in toolbar tab count
  • fix: separate Nostr event identity from CLI session ID for remote spawn
  • fix: auto-steal focus retries across frames via AutoStealState enum
  • fix: enable remote session kickstart via ndb subscriptions
  • chrome: painter-drawn toolbar icons with active/filled state
  • fix: toolbar gap, mobile scroll visibility, and welcome screen overlap
  • android: enable messages feature in jni build
  • settings: remove font size setting, use zoom level only
  • dave: add focus queue NEXT badge for mobile navigation
  • settings: add note preview to appearance section for zoom preview
  • dave: skip input auto-focus on mobile, dismiss Done on focus queue nav
  • nostrverse: clean up scene objects when expiring stale users
  • nostrverse: reject out-of-order presence events

kernelkind (92):

  • refactor(multicast): move multicast to own file
  • refactor(websocket): move Relay from mod.rs -> websocket.rs
  • refactor(websocket): rename Relay -> WebsocketConn
  • refactor(websocket): move WebsocketRelay -> websocket.rs
  • refactor(websocket): rename member variable relay -> conn
  • refactor(websocket): add comments & helper
  • feat(outbox): id types for outbox
  • test(outbox): outbox ids
  • feat(outbox): add relay limit objects
  • test(outbox): limits
  • feat(outbox): misc types
  • test(outbox): misc types
  • feat(enostr): add profiling crate
  • feat(outbox): add BroadcastRelay
  • feat(outbox): add Wakeup trait
  • feat(outbox): add MulticastRelayCache
  • feat(outbox): add QueuedTasks
  • feat(outbox): add OutboxSubscriptions
  • test(outbox): OutboxSubscriptions
  • feat(outbox): add TransparentRelay
  • test(outbox): TransparentRelay
  • feat(outbox): add WebsocketConn::from_wakeup
  • feat(outbox): add CompactionRelay
  • test(outbox): utils
  • test(outbox): CompactionRelay
  • feat(relay): support CLOSED message
  • feat(outbox): add RelayCoordinator
  • test(outbox): RelayCoordinator
  • feat(outbox): add OutboxSession
  • test(outbox): OutboxSession
  • feat(outbox): add OutboxPool
  • feat(outbox): add OutboxSessionHandler
  • feat(outbox): add OutboxPool::start_session helper
  • test(outbox): OutboxPool
  • refactor(enostr): expose outbox objects
  • test(outbox): add outbox integration tests
  • test(outbox): add multi-relay eose cleanup regression
  • feat(outbox): improve reconnect backoff handling
  • test(outbox): add reconnect backoff and jitter bound coverage
  • feat(outbox): concrete Wakeup impl for Outbox
  • tmp: accounts shim
  • feat(scoped-subs): add core runtime and key model
  • test(scoped-subs): cover runtime upsert, ownership, and account-switch semantics
  • feat(scoped-subs): add owner slots and app-facing facade
  • test(scoped-subs): verify owner-slot stability and lifecycle drop
  • feat(scoped-subs): add account-aware oneshot and publish APIs
  • feat(scoped-subs): add RemoteApi
  • feat(scoped-sub): add scoped sub owner keys
  • refactor(messages): new event prop Note instead of String
  • feat(outbox): add NotedeckRef
  • feat(perf): add profiling macros
  • refactor(timeline): split multi_subscriber into thread & timeline subs
  • refactor(TMP): pool -> legacy pool shim for commit history
  • feat(outbox-int): add OutboxPool & ScopedSubsState to Notedeck
  • feat(outbox-int): integration outbox ingestion
  • feat(outbox-int): Notedeck::init pass along OutboxSession
  • feat(TMP): TimelineSub::dependers shim (for commit history)
  • refactor(columns): share code attach_timeline_column
  • feat(outbox-int): use Outbox for following
  • feat(outbox-int): use outbox for broadcasting note
  • feat(outbox-int): use outbox for people list
  • feat(outbox-int): use outbox for sending mutes, unmutes & reports
  • feat(outbox-int): use outbox for sending reactions & zaps
  • feat(outbox-int): use outbox for sending posts
  • feat(outbox-int): use outbox for sending repost
  • feat(outbox-int): use outbox to send nip17 message
  • feat(accounts): add advertised relay helper
  • feat(outbox-int): integrate outbox into relay view
  • refactor(thread-subs): extract unsubscribe helpers
  • fix(thread-subs): roll back local state on unsubscribe failure
  • feat(outbox-int): route remote thread subs through scoped subs
  • refactor(outbox-int): manage scoped owners per thread scope depth
  • refactor(outbox-int): key local thread state by account
  • fix(timeline-subs): preserve local state on ndb unsubscribe failure
  • refactor(timeline-subs): key local timeline subs by account
  • feat(outbox-int): move remote timeline ownership to scoped subs
  • refactor(nip51-set): extract local cache/sub loader
  • feat(outbox-int): process outbox events
  • feat(outbox-int): only use one FilterState for timeline
  • refactor: move legacy event processing to dave
  • feat(outbox-int): migrate accounts to use outbox
  • test(scoped-subs): validate relay targeting for oneshot and publish APIs
  • feat(outbox-int): migrate onboarding to use outbox
  • feat(outbox-int): migrate nostrverse to use outbox
  • refactor: move legacy RelayPool usage exclusively to dave
  • refactor(outbox-int): remove legacy Subscriptions
  • test(refactor): remove legacy RelayPool generator
  • refactor(messages): remove unused conversation cache loaders
  • feat(nip17): dm relay list helpers
  • test(nip17): dm relay list helpers
  • feat(messages): ensure selected account DM relay list
  • feat(messages): prefetch participant DM relay lists and route outgoing messages

pushed to notedeck:refs/heads/master