Commit Graph
368 Commits
Author SHA1 Message Date
Raven ScottandCursor aa91e1a0ff Expose emoji-only layout and renameChannel for GUI
messageLayoutKind returns emoji-only; renameChannel gossips category/channel name updates for inline sidebar rename.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:17:44 -04:00
Raven ScottandCursor 21a5f7984b feat(platform): include custom role names in mentionNames (v0.8.170)
Role @mentions in composer autocomplete highlight in message rendering.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:05:57 -04:00
Raven ScottandCursor 45cf74ec42 feat(platform): moveChannelToParent with gossip and audit (v0.8.168)
Expose channel parent moves for Manage Channels permission holders.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:55:29 -04:00
Raven ScottandCursor dff4064efe feat(platform): setChannelMuteDuration and notification level cleanup
Wire timed mute IPC and clear channelMuteUntil when setting permanent
notification levels.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:45:06 -04:00
Raven ScottandCursor 91d7e3abc9 feat(platform): channel open read snapshot and role reorder API
Expose activeChannelLastReadAt from pre-mark read cursor for unread
divider UI and add reorderGuildCustomRoles with ROLE_UPSERT gossip.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:37:58 -04:00
Raven ScottandCursor c768d9fe3b feat(platform): setChannelNotificationLevel for guild channel prefs
Wire per-channel notification overrides with mutedChannelIds sync and
mesh gossip via notification prefs.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:20:30 -04:00
Raven ScottandCursor 7d899fb655 feat(platform): reorderCategories with permissions and gossip
Expose category reorder for MANAGE_CHANNELS holders with audit logging
and mesh gossip for each moved category row.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:08:23 -04:00
Raven ScottandCursor 8bfae6e3c2 feat(platform): reorderChannelsInParent with permission and gossip
Wire guild channel reorder for MANAGE_CHANNELS holders, gossip
CHANNEL_UPDATE per moved channel, and audit channel.reorder events.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:03:25 -04:00
Raven ScottandCursor 3438c3d252 docs: v0.8.158 dual combo buckets highest on guild open
Document guild channel pick when two mention+plain parent buckets compete;
smoke test:guild-dual-combo-buckets-highest.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:42:16 -04:00
Raven ScottandCursor d4a5b1afc3 docs: v0.8.157 plain bucket beats triple combo on guild open
Document guild channel pick when one heavy plain-only category outscores
three mention+plain combo categories; smoke test:guild-plain-beats-triple-combo.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:39:22 -04:00
Raven ScottandCursor 1c2f03d031 docs: v0.8.156 triple combo buckets highest on guild open
Document guild channel pick when three mention+plain parent buckets compete;
smoke test:guild-triple-combo-buckets-highest.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:37:05 -04:00
Raven ScottandCursor fb3df3d835 docs: v0.8.155 triple plain bucket wins on guild open
Document guild channel pick when three plain-only parent buckets compete;
smoke test:guild-triple-plain-bucket-pick.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:33:11 -04:00
Raven ScottandCursor 9dcc4a751a docs: v0.8.154 combo bucket beats heavy plain on guild open
Document guild channel pick when mention+plain parent score exceeds
a higher plain-only bucket; smoke test:guild-combo-beats-plain-bucket.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:30:19 -04:00
Raven ScottandCursor 846aae78cd docs: v0.8.153 plain bucket wins equal combo on minPos tie
Document guild-open bucket selection when mention+plain and plain-only
totals match and lower channel position breaks the tie.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:26:35 -04:00
Raven ScottandCursor 3e09637234 docs: v0.8.152 dual plain-only parent bucket pick
Document guild-open selection when two plain-only categories compete by
unread total.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:22:06 -04:00
Raven ScottandCursor 98a7a92733 docs: v0.8.151 plain-only bucket beats lighter combo on guild open
Document parent-bucket selection when plain unread total exceeds a
mention+plain combo bucket score.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:20:01 -04:00
Raven ScottandCursor 1aeeb97887 docs: v0.8.150 triple combo bucket highest total wins
Document guild-open selection among three mention+plain parent buckets.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:17:35 -04:00
Raven ScottandCursor 28b4ae4c81 docs: v0.8.149 equal combo bucket minPos tie-break
Document guild-open selection when two mention+plain buckets share the same
total score and lower minimum channel position wins.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:15:24 -04:00
Raven ScottandCursor 557d4d6a35 docs: v0.8.148 combo beats plain-only at equal plain unread
Document guild-open bucket selection when mention weight breaks a tie
between equal plain-unread totals across categories.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:13:03 -04:00
Raven ScottandCursor a644eb1e49 docs: v0.8.147 dual combo bucket pick smoke
Document that the higher mention+plain parent-bucket total wins when two
categories both have combined unread.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:10:16 -04:00
Raven ScottandCursor 6c17e43a6c docs: v0.8.146 mention+plain bucket pick smoke
Document that a category with one mention plus plain unread beats a higher
plain-only bucket in another category on guild open.

Co-authored-by: Cursor <[email protected]>
2026-05-22 20:07:05 -04:00
Raven ScottandCursor 143d63f345 docs: note root plain bucket beats dual mention categories (v0.8.145)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:57:18 -04:00
Raven ScottandCursor 67b935e7fe docs: note mention triple-bucket beats plain totals (v0.8.144)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:54:52 -04:00
Raven ScottandCursor 63166b1e5f docs: note three-way equal bucket minPos pick (v0.8.143)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:52:49 -04:00
Raven ScottandCursor 936f835c97 docs: note equal minPos bucket order tie-break (v0.8.142)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:50:15 -04:00
Raven ScottandCursor 33fc374096 docs: note equal bucket minPos tie includes root (v0.8.141)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:47:03 -04:00
Raven ScottandCursor f7ff17718f feat(platform): removeSearchRecent and root mention bucket pick (v0.8.140)
Expose removeSearchRecent to drop guild-scoped recent queries from prefs.
Document root mention bucket beating higher plain category unread.

Co-authored-by: Cursor <[email protected]>
2026-05-22 19:41:52 -04:00
Raven ScottandCursor 924e9fdb61 docs: note mention bucket beats plain root unread (v0.8.139)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:37:16 -04:00
Raven ScottandCursor 6f84d0a095 docs: note mixed parent-bucket guild channel pick (v0.8.138)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:34:00 -04:00
Raven ScottandCursor 2b1d810ca2 docs: note dual-category guild channel isolation pick (v0.8.137)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:30:08 -04:00
Raven ScottandCursor 3ac71d4a01 docs: note mention wins in single-category guild channel pool (v0.8.136)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:26:44 -04:00
Raven ScottandCursor 5376970c4b docs: document single-category guild channel pool pick (v0.8.135)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:23:33 -04:00
Raven ScottandCursor 3e5407bd73 docs: note uncategorized bucket guild channel pick (v0.8.134)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:20:07 -04:00
Raven ScottandCursor 255b2bd542 docs: note bucket total wins over minPos for guild channel pick (v0.8.133)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:15:50 -04:00
Raven ScottandCursor 76e9f3991e docs: note mention-in-bucket guild channel pick behavior (v0.8.132)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:12:44 -04:00
Raven ScottandCursor cfee2f8713 docs: note in-bucket position tie-break for guild channel pick (v0.8.131)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:08:36 -04:00
Raven ScottandCursor f9e50cab77 docs: document bucket minPos tie-break for guild channel pick (v0.8.130)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:05:32 -04:00
Raven ScottandCursor aea5485baf docs: mention-weighted parent bucket pick (v0.8.126)
Document that bucket totals use mention × 1000 + unread scores.
Smoke: test:guild-mention-bucket-pick.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:37:38 -04:00
Raven ScottandCursor eea4ce0187 feat(platform): pick guild channel by parent unread bucket total
When unread spans categories or uncategorized channels, select the
parentId bucket with the highest summed unread score before position
tie-break within the bucket.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:34:52 -04:00
Raven ScottandCursor f7c795259f fix(platform): category-scoped unread pick and channel unread counts
Filter message rows by channelId in _unreadForChannel after HyperDB find.
When every unread channel shares one category parentId, limit
_selectGuildChannelWithUnread to that category before position tie-break.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:32:14 -04:00
Raven ScottandCursor 19188c725c docs: note equal-unread position tie-break (v0.8.123)
Document that _selectGuildChannelWithUnread prefers lower channel.position
when mention/unread scores tie; smoke test:guild-unread-position-tie.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:25:09 -04:00
Raven ScottandCursor 43ac01b305 docs(platform): mention×1000 channel pick on loadGuild (v0.8.120)
Document mention-weighted scoring in _selectGuildChannelWithUnread and reference
test:guild-mention-channel-pick smoke.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:08:00 -04:00
Raven ScottandCursor 9629d1769b docs(platform): document loadGuild channel pick priority (v0.8.119)
Clarify _selectGuildChannelWithUnread order in README: unread/mention score,
then lastChannelByGuild, then first text. Reference smokes
test:guild-unread-over-last-channel and test:guild-unread-channel-jump.

Co-authored-by: Cursor <[email protected]>
2026-05-22 18:05:54 -04:00
Raven ScottandCursor 723627aa9a feat(platform): persist and restore last guild channel (v0.8.116)
selectChannel calls _persistLastGuildChannel for savable channel types.
_selectGuildChannelWithUnread falls back to lastChannelByGuild when no
unread channels qualify, after permission check via _canViewChannel.

Unread-weighted channel pick from v0.8.115 remains unchanged when unread > 0.

Co-authored-by: Cursor <[email protected]>
2026-05-22 17:21:25 -04:00
Raven ScottandCursor 995469292a feat(platform): guild unread channel pick and search history (v0.8.115)
_openGuild clears stale activeChannelId and calls _selectGuildChannelWithUnread
to open the text/thread/announcement channel with the highest mention-weighted
unread count before falling back to the first text channel.

setSearch records queries of at least two characters into user prefs via
_recordSearchRecent. view() exposes searchRecentQueries for the active guild.

Co-authored-by: Cursor <[email protected]>
2026-05-22 17:17:22 -04:00
Raven ScottandCursor 356f6fd9e3 feat(platform): persist discoveryExploreFilter in USER_PREFS
Phase 146 (v0.8.111): setDiscoveryFilter is async and saves query,
sort, minMembers, and tag to discoveryExploreFilter prefs. Restore
on boot via _ingestDiscoveryExploreBaselineFromPrefs. Emits discovery
after filter updates.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:54:51 -04:00
Raven ScottandCursor 9bf4d3c64f feat(platform): persist voice roster expanded channel ids in USER_PREFS
Phase 145 (v0.8.110): setVoiceRosterChannelExpanded stores
voiceRosterExpandedChannelIds across sessions. Ingest on boot from
user prefs alongside thread filter and voice roster filter prefs.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:23:47 -04:00
Raven ScottandCursor 911ade8aec feat(platform): createGuild publicListing toggle for discovery opt-out
Phase 144 (v0.8.109): createGuild accepts publicListing (default true).
recordGuild stores listing preference; announceGuild runs only when listed.
Unlisted servers stay invite-only until enabled in server settings.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:06:02 -04:00
Raven ScottandCursor 7d28f57d7f feat(platform): Phases 142–143 discovery, onboarding Explore, thread/voice prefs
Phase 142 (v0.8.107):
- navigateDeepLink explore kind with preserveBaseline and USER_PREFS ingest
- formatDiscoveryExploreBaselineDeepLink for shareable listing snapshots

Phase 143 (v0.8.108):
- onboardingExplorePending after first guild create; markOnboardingExploreShown
- joinInvite accepts pearcord://explore URLs (Join modal baseline paste)
- setThreadsPanelFilter persists threadsPanelFilter in USER_PREFS
- view exposes onboardingExplorePending for renderer auto-open Explore

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:48:38 -04:00
Raven ScottandCursor 627f7fe492 feat(platform): setVoiceRosterCombinedFilter for voice roster preset
Single API toggles voiceRosterMutedOnly and voiceRosterDeafenedOnly
together for Phase 141 combined sidebar filter chip.

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:17:32 -04:00