groups v2.0.0
This release will be pushed to the network as an over-the-air upgrade
An in-depth guide to groups v2 can be found at:
Release Notes:
- Groups has been rewritten with an architecture that is focussed on keeping the
amount of IO to a minimum to ensure data consistency
- Groups now include fully customizable roles, a new permissions model and
searching by ship
- Chat now includes emoji reactions, threaded replies and a better formatting
engine
- Notebooks now have a WYSIWYG note editor and a new grid view
- Collections now include the ability to post text items and the ability to
persist the view modality
- Notifications are now grouped globally, and per-group
Contributions:
Hunter Miller (556):
init
github-actions: first attempt at automating glob
release: fixing get urbit path
release: more pathing tests and pill booting
release: fixing bad action
release: pythonv2
release: install required pip packages
release: fixing paths again
release: more path fixing
release: trying double quotes
release: argparse doesn't like args that start with -
release: don't need hood for glob
release: adding debug messages and an exit call
release: adding pause before glob, perhaps timing issue
release: attempting with desk creation
release: removing sleep, checking files copied correctly
release: attempting curl instead
release: trivial change to trigger action
release: removing comment
release: removing workflow for now until we've solidified
config: updating packages and adding indigo config
config: restrict font sizing
fonts: adding self-hosted inter
fonts: adding source code pro
config: adding mock mode and some sample data
config: downgrading node version for vercel
types: fixing issues with vite and testing-library
storybook: initial config, moving component to folder
chat-input: adding button and trying tiptap
chat-input: making tiptap work with current format
mocks: updating mocking to use 1.1 changes
mobile: improving layout fit with mobile bottom bars and font size
button,chatinput: shuffling directories and adding tests
button: correcting test name
button: adding story
mocks: fixing types
build: fixing issues finding esbuild
button: updating snapshot
meta: removing erroneous add
button: preferring basic element over component
chat-input: doing proper usecallback usage
chat-input: adding placeholder
chat-input/content: first pass at integrating formatting
chat-input-menu: reworking for updated design, making accessible
chat-input-menu: first pass at link handling
chat-input-menu: second pass based on new design
chat,link-input: syncing format to latest and changing url placeholder
chat-content: fixing key issues
chat-content: fixing blockquote
chat-content: fixing links
chat-input-menu: fixing input sizing and state issues
chat-input: fixing links and updating design
chat-input-menu: refactoring to use radix popover for better control
chat-content: adding strikethrough
chat-input-menu: removing unnecessary memo
fonts: fixing loading strategy
fonts: fixing loading strategy
chat: adding support for formatting inline code
message-editor: adding history extension
message-editor: fixing import order
meta: fixing dep ref
sidebar: consolidating components and design in prep for mobile
sidebar: adding sidebar navigation for mobile
layout: updating to match new props
chat: adds new block type and a method to test
chat: cleaning up type issues
sidebarlink: fixing bad prop binding
meta: fixing package lock
meta: another attempt at fixing package-lock
chat-json: removing unnecessary typing
chat: implementing server-side drafts need to write an equality check so we aren't setting the same draft over the previous causing the cursor to move
chat-input: correctly handling return from server
drafts: mock support
chat: importing useful things from grid
chat: moving chat files and adding replies
ui: fix lint
chat-message: highlight if being replied to
chat: fixing type issues
chat-input: fixing menu positioning and dark visibility
sidebars: moving to routes
sidebars: switching to using purely routing
group: updating to handle undefined case
chat: removing unused deps
chat: adds draft piping back in, and fixes chat-action
meta: fixing tsc-files to work with ambients
mocks: getting all subs covered
mocks: adjusting dms to use dynamic subs
meta: fixing lock file
unreads: showing unread banner in dms, improving brief mocks
chat: adding unread markers and updating mocks to use
mocks: handling invited scry
Update ui/src/chat/ChatWindow.tsx
dm-sidebar: cleaning up styles and adding menu and new message
dropdown: cleaning up focus states and adding dropdown as component class
archive: making mocks work and unifying dropdowns
ops: setting up automatic deploys
ops: make entry file executable
ops: allow manual deploy
ops: fix deploy action
ops: updating janeway to support ssh
new-dm: cleaning up input to match a little better and fixing dm mocks
new-dm: fixing button and spacing
archiving: adding sidebar styling and adding action styling
dm-sidebar: adding indicator for active navigation
chat-input: fixing test
scroller: cleaning up styles
archive: removing entry points to archive features for now
dms: adding leave functionality and options to sidebar
ops: trying to prevent unsafe error
meta: give homestead a unique tile color
ops: trying latest janeway
hooks: abstracting isMobile
ops: making vercel build with production settings
ops: enable mock api with staging
dm-sidebar: fixing bad padding
ops: don't use ssh-key for remote operations
ops: bumping janeway for glob fix
ops: trying new janeway to resolve grep issue
dms: adding hero to message window
meta: update kelvin
chat-scroller: fixing equality for indexes
ts: switching to better catch-all
dms: adding subscription for invites
invites: fixing type and also accounting if ship isn't in dms yet
chat: don't resub if already subbed
Update ui/src/state/chat/chat.ts
Update ui/src/state/chat/chat.ts
perf: adding profiler and removing mock data from prod build
meta: changing target
types: making ts happy
ci: testing
api: gross shuffling
api: wrapping functions to make usage easier
api: fixing lint issues
Update ui/src/components/icons/BulletIcon.tsx
messages: building sidebar out to new design
sidebar: fixing import
sidebar: cleanup from merge
icons: cleaning up duplicates and names
sidebar: first pass at mobile, still needs bottom menu
icons: more icon normalization"
merge: post-merge cleanup
sidebar: mobile nav, lots of icon and component tweaks
sidebar: main groups list mobile pass, some consistency changes
mocks: adding more data for groups/channels
sidebar: updating snapshots
sidebar: adding scroll styles and fixing layout on desktop
nav: fixing dms and mock data
sidebar: fixing snapshots
messages-sidebar: cleaning up spacing and persisting filter setting
sidebar: unifying sidebar items
sidebar: fixing snapshots
sidebar: truncation, matching and design cleanup
sidebar: removing unused components
dm-hero: fixing collapsing hero on moons/comets
groups: reorganizing components
group-options: implementing mobile page
nav: generic refactoring, fixing nav between primary/secondary
icons: x icon cleanup and fixing name of person 16
group-actions: refactoring dialogs out to routes
group-info: fixing mobile spacing
layout: fixing casing
css: fixing import
mocks: making changes to use new dynamic path matching
dm-options: add activity
sidebar: update snapshots
ops: testing new docker and adding chatstead
sidebar: fixing dot rendering, some timestamp overflow tweaks
ops: making deploys more granular
dm: adding missing options prop
mocks: correcting ship, fixing default filter and window.our
base-css: formatting
chat-options: fixing icon sizing
state: preventing erroring scries from crashing subs
meta: updating dep for actual usage
chat-scroller: if writ deleted don't fail
api: bumping version to fix issue with wrong data channels
meta: bumping http-api for fix
chat: first pass at universal drafts
chat-input: updating snapshot
multi-dm: scaffolding out pages and invite ui
meta: update msw
chat: fix path interpretation for draft scry"
chat: fixing front-end piping for drafts
lint: formatting and snapshot update
metadata: adding color
multi-dm: use newId to redirect
multi-dms: adding mocks and UI to support multi-dms
lint: updating snapshots
meta: fixing types from merge
multi-dms: fixing subs, briefs, empty draft
handlers: fixing missing color
club: adding missing reducer pieces
meta: updating snapshot
multi-dm: allow leaves and fix club action dejs
chat-input: update snapshot
app: redirect to login if session expired
app: fix erroneous redirect in mock state
test: add snapshot back
group-info: setting up initial routes for everyone to work in
groups-role-mgmt: first pass at UI
tests: update snapshot
tests: update snapshot
groups: fleet diff changes
groups: front-end changes for new fleet diff
groups: attempting to fix syntax issues
groups: moving state and fleshing out reducer
groups: fixing backend compilation issues
members: adding invites and searching
members: making compatible with mobile nav
ship-selector: moving to appropriate place
multi-dms: refactoring to cleanup and adding capability for sending messages
lint: updating snapshot
groups: correcting join vuln and style
groups: fixing syntax error
groups: fixing indent
clubs: fixing echo issues and missing invites
lint: fixing chatinput
lint: fixing chatinput, keeps flopping
multidm-form: removing console logs
chat: give brief when joining
chat-input: wrapping in reply showing and fixing thread width
chat-input: fixing test
edit-info: fixing undefined color and stale closure of clubid
multi-dms: fixing threads
edit-form: remove errant console log
groups: adding metadata editor to group info page
edit-info: needed to use routing pattern so that we always have id
clubs: use color in avatar
virtual-scroller: fix not loading messages initially
edit-info: adding delete ability for groups and cleaning up a few things
group-info: removing errant console log
meta: fixing missing handler and snapshot
sidebar: store multidms in localstorage
privacy-selector: making reusable and more form friendly
lint: fix snapshots
group-editor: account for privacy
new-dm: use navigate for both
multi-dm: init subs ahead of time, optimistic create before async send
clubs: adding pinning
chat: adding pinned to persistence
lint: fixing snapshots
new-dm: better hook usage
newgroup: fixing casing on roles and putting back onclick
dms: overzealous pre-subscription failing on scry so message never fires, other small fixes
ship-selector: use cited ship names
chat-input: better use of debounce + hooks
lint: fixing snapshot
gangs: retrofitting flow to work with new designs
groups: changing behavior to list, trying to ensure gangs fall out
chat: ensuring writer check works and giving briefs when we need them
chat: correcting sidebar, channel index join, spinner, channel settings
chat: handling chat-leave
groups: remove replaced cases
groups: removing errant comment
groups: adding invite mechanism
groups: removing invite text field
lint: fixing snapshot
groups: adding back in behavior that detects if joined
dates: only check from end of the day
groups: fixing add/edit channel
groups: add invite count, fixing join nav, making sure we see gang leave
groups: removing unused pages
lint: updating snapshot
group-info: make sure privacy is filled correctly
privacy-selector: fixing secret text
groups: leave if I'm removed, prevent self kick/ban, invite join smoother
lint: fixing snapshot
tests: fixing annoying snapshot bouncing
channel-index: removing count until it's accurate
lint: updating snapshot
channel-create: adding writers to set permissions on creation
chat,groups: fixing missing json conversion and permission handling
sections: fixing id creation to be @tas compat
members: don't show admins options for kicking/banning themselves
chat-thread: adjusting css so thread takes up full window when constrained
find-groups: ensure indexed gangs get added to gangs
ops: update to new release pipeline
pins: unifying pins and making generic
chat: fixing types
chat: better sub state tracking
ops: trying new janeway
group-actions: make pin option reflect state
ops: turning on verbose for debugging deploys
heap: compiles
types: fix type info for holt
heap: adding generators
find-groups: reversed logic for gang indexing
heap: starting front-end
heap: finishing marks and adjusting front-end to heaps
heaps: final touches for adding/displaying curios
channels: undoing unification
heap: removing cruft
chat: fixing nest/flag issues, threads, and channel index break on empty group
heap: proper path for group read
chat: prevent draft overriding current message
new-group: more immediate validation
section-input: add style for highlighting on top of std highlight color
diary: initial copy from heap
diary: bare bones frontend
message-editor: update to match type
chat-scroller: resolving unstable component definition
lint: fixing duped classes and updating snapshot
hark: adding basic front-end pieces
hark: finishing notification UI and converting to use nest for channels
diary-editor: fixing type
hark: differentiating notifications for dms and adding dm harks
hark: guarding against self and gossip
logged-out: fixing issue where avatar render crashed
groups: adding all meta notifications
groups: adding group-level notifications
lint: fixing snapshot
vite: addingproxying for preview
vite: adjusting config to match bugged preview config
vite: fixing builds that should be production
vite: redoing app detection to improve vite mode usage
heap: allow editing curio
npm: fixing package lock
channel-index: updating to work with all channel types
heap: adding backend changes for view persistence
heap: front-end for view persistence, types cleanup
dismiss: should work across all channel types
heap: adding hook for comments
chat: don't send harks if we're replying to ourselves and only send harks to other repliers
heap: fixing bad merge
heap: fixing comment times and correcting notification behavior
chat: fix bad refactor of leave
diary: fixing a few issues with subs, inline-code, missing conversions
diary: adding harks and fixing can-read path
heap: changing to match diary
chat: fixing spacing
perms: fixing missing subscriptions for perms updates and multi-channel issues
group-unread: fixing flag/nest mixup
groupsidebar: stop snapshot flip flopping
chat: add groups ref
heap: fixing edit and adding some areas that use titles
group-ref: handle secret case and fix avatar sizing
app: handle redirects from grid
diary: note header and beginning of content
diary: beginning styling view, adding headers to everything
diary-note: adding comments
diary-note: comment sorting
meta: removing erroneous package installation
layout: fixing overflow and sticky header
diary-note: finish header actions
request-join: adding preliminary backend actions and front-end UI
request-join: adding rescind and fixing notification
members: adding request -> pending -> join flow
diary: adding publish action and fixing key issues
nav: restructure to work better with framer motion
diary-editor: cleaning up
diary: persisting view
diary-channel: removing console log
heap: fixing view behavior and correcting styles
app: move grid redirect to prevent resubscribing on navigate change
chat: fixing bad nav arrangment
chat: react router needs to match a path
meta: adjusting meta type to work with cover images
meta: adjusting to new types
image-field: refactoring to reusable field and more compatible with react-hook-form
sidebar-item: prevent crashes from mix
new-channel: fixing type
heap,refs: cleaning up usage and location
diary: fixing ref parsing and adding cite input
group-invites: use correct invite method
chat-store: preventing undefined blocks
diary: preventing null access
diary: fix delete
diary: adding edit
diary-edit: actually using the right time
ops: sourcemaps likely killing memory
diary-options: restore delete fix
lint: formatting
diary-add: correctly check content
group-actions: switch to new ref links
app: fix grid redirect
groups: only join default channels
diary: refactoring all places doing link copying to use same and updated to ref structure
groups: type documentation
chat: type documentation
diary: type documentation
desks: changing docket info
ui: replacing most instances of homestead/chatstead that matter
ops: add other deploy targets so team can deploy at will
heap: type documentation, and misc corrections
refs: unifying unavailable ref, spacing tweaks, stabilizing heap ref display
docs: adding %docs supported docs
chat: correcting hark desks for club and dm
chat: adding docs, and updating group docs to match
docs: fixing syntax errors
ship-selector: only show outline in dark
meta: updating app descriptions
dms: autofocus chatinput
tiptap,diary: fix breaks parsing and diary redirect bug
tiptap: fixing tests
docs: adding heap and diary, modifying overview
meta: adding icons
chat: adding emoji reactions back
chat: fixing delete
chat: adding add reaction button
reaction: fix aria label
sidebar: add drop shadow for text contrast
sidebar: restore average color
heap: fixing overflow issues
heapdetail: tweaking mobile and text styles
chat: fixing reactions render
meta: updating icons
groups: redirect to latest channel or top channel
diary: change placeholder
chat: fixing bad loading order and new message loads not trigger state update
vscroll: replacing with virtuoso, running into prepend issues
apps: fix queries
vscroll: fixing prepending items and adding loaders
club: erroneous presig for multidm
apps: changing to bap for concision
meta: version bump for release
diary: updating types and adding migration
diary: adding extensions and parsing, pokes fail though
lint: formatting
diary: adjusting type so it doesn't blow loom
diary: fixing issue where bullet lists were ignored
diary: improving styling on both edit and display side
diary: headers working end to end
diary: adding horizontal rules to frontend
diary: removing extraneous comments
tests: fixing harness for chatmessage
tests: fixing more harness issues with fetch
ops: editing actions to work with ref passing
diary: making header act more like rest of inline content
tiptap: fix test
lint: fix snapshot
lint: whitespace
meta: moving folders around
lint: whitespace
nav: shuffling around routes and mobile wrappers
groups: finishing migration
chat: saga migration
nav: fixing channel back buttons
notifications: fixing scrollbar jump and bad overflow
lint: fix snapshot
find-groups: changing path for better nav
vscroll: useMemo on objects generated on render that are deps
Update ui/src/chat/ChatScroller/ChatScroller.tsx
messages-sidebar: use correct nest and whom
lint: whitespace correction
ops: needed stronger bash-fu
nav: adding missing routes to mobile nav
mobile: style tweaks
chat-scroller: adjusting mobile and fixing issues with loading
Update ui/src/chat/ChatMessage/ChatMessage.tsx
chat: reverting problematic save
chat: reverting revert, mimicking latest negotiations from jake
heap: use the correct type for reduce
meta: version bump
groups: adding better handling for errored group joins
chat: fixing thread layout regression
usemedia: fixing logic error in hook so it gets properly initialized
app: undoing dumb changes
diary: adds missing piece for state updates
chat-scroller: fixing logic for day marker
chat-scroller: removing unused import
Update ui/src/logic/tiptap.ts
tiptap: address linting concerns
lint: whitespace changes
groups: proxy pokes to host
groups: adding new poke -> fact tracking and added loading state to group creation
groups: refactoring to mimic rest of codebase
chat-scroller: more stable layout
meta: version bump
chat: new unread tracking system
chat: fix loading logic, make sure code and input break correctly
lint: update snapshot
chat-scroller: bottom threshold should be small, but top should stay large
chat: fixing time mismatch so briefs calculate appropriately
chat: improving brief mgmt, and refactoring isJoined/isUnread
dismiss-channel-notifs: fix type error
briefs: calculate correctly and make sure usages use nests
chat: addressing pr feedback and fixing small issues
groups: shoring up name normalization
apps: adding sane tas checking for flags
multi-dm: fix modal dismiss
chat: improving word breaking in input and messages, preventing code snippets from being occluded
lint: fixing snapshots
channels: protect from non admins if admin only
chat-message: adding clarity to conditionals
channels: hiding unpermissioned channels from sidebars, canReadChannel helper
app: fix media query deduplication
app: remove errant log
sidebar-sort: go back to briefs which was correct, ensure they work for all channels
lint: fix snapshot
channel-sort: ripping out incorrect sort
groups: fix invite to work with secret groups
groups: removing duplicated load
state: clean state for migrations, making more consistent
chat-input: remove chat draft machinery until we have time
chat: initial support for mentions
chat: adding mention notification and exact patp match
lint: fix type errors
group-join: don't fail if there's no notification
chat: ensure time gets corrected and id + sent match
message-editor: only allow mentions in chat for now
chat: changing back fetch size
multi-dm: adding tracking to edit save
talk: fake nests to match allbriefs, persist filter
emoji-picker: remove unused comment
deps: needed update of all radix for pointer-events fix
groups: don't invite someone who's joining
groups: bad logic in gang removal
meta: version bump for beta
groups: fix secret join and protect vs missing xeno
groups: erroneously removed kick
channel: prevent brief marking from triggering infinite loop
meta: version bumps
chat: show date divider on new day even on notice
heap,diary: use correct time for marking read
diary: correcting time linkages
clubs: prevent double 'join' and represent pending correctly
migration: show unmigrated channels and differentiate with messaging
migration: converting to tooltip and component, added messaging to groups
migration: correcting language for groups
diary: adding remote fetching of notes
meta: kelvin upgrade
meta: version bump
migration: more accurate view of what's migrated
diary: correcting time passing
heap: adding remote fetching and cleaning up time linkages
migration: handle empty groups
diary: refactoring time linkage based on liam's feedback and correcting toast id
heap: fixing missing json conv, aligning with diary and clarifying times
bait: switching to placeholder ref for now
migration: changing import flag tracking for better logic
migration: comment for clarification of import state
channel-list: correcting imports check
migration: convert cover value to hex, missing json flag
migration: fix color conversion
migrate-map: actually give the value, not just a gate
groups: missing closing bracket
lint: remove unused and reorder
lint: removing unused ref
meta: version bump
diary: add imp subscription
ops: changing so subsequent deploys don't glob
migration: no need to use channels anymore
local: don't store connection status in localstorage
migration: use channel previews for unjoined channels
lint: fixing test
app-ref: fix id and add subscribeOnce to api
meta: version bump
diary: adds mentions to editor and parses links correctly
migration: only retry after 10 mins
meta: version bump
heap: better link check
diary: add ship to json conv
migration: use wait checking for valid behavior
migration: actually initialize and fetch
migrate: only sub once
Jake Miller (2):
Update desk/app/chat.hoon
Update desk/app/groups.hoon
James Acklin (140):
meta: fix error boundary issue target
meta: change app tile colors
nav/groups: adds active highlight to special actions
adds hunter's whom fix to NewDM
nav/chat: regular sidebar item spacing
nav/chat: adds pinned DMs to mobile view
shipName: show alias everywhere
chatNotice: fix spacing
dm/header: fix alignment, cursor + select
dm/sidebar: remove invite from 1:1, mark read on read
chatMessage: comment out nonworking options
mocks: add some nicknames
dm: show reply in ChatInput
ci: fix ChatMessage snapshot
groups/nav: tighten sidebar spacing
groupSidebar: add slide-in animation
nav: fixing snapshot
nav/dm: move 'mark read' to first position, blue
dms: address PR comments
nav: avoids hover class collision with highlight set
fixing snapshot
fixing snapshot again
equality fix
chat/multi-dm: use ship nicknames in MultiDmHero
nav: hover treatments for sidebar item actions
nav: base dropdown-item hover background
nav: revives the big yellow button
nav: update snapshots
fixing snapshots
groups: adds byb to mobile nav
nav: remove search
nav: fixes pinned heights in groups; unify chat
chat: navigate to / on back from DM
groups: brings group icon url/hex field to spec
chat: disable send on new DM screen without valid ships
chatInput: disable send button with no content
groups: hover for ChannelIndex channels
groups: full-width ancillary pages
interface: correct ChatInput top-border color
groups: unifies channel header with Chat
chat: unread banner to latest design
chat: show group img/color in Channels sidebar
groups: fix groupavatar input overflow
groups/create: properly set default color
groups: use sigil color logic in ColorBoxIcon
groups: void hover treatments for dropdown labels
groups: spacing, color, and casing nits
groups: more color and prose nits
shipselector: border fixes
channelindex: eliminates empty section container
profile/edit: field alignment, reset dirty state on submit, disabled secondary-button color
groups: add letter to group avatars everywhere
profile/edit: more spacing, css
mistake-revert
nav: update snapshot
heap: channel header consistent with design
reorder channel/group name in header
groups: adds react-helmet, app-dependent <title>s
groups: adds app-cased favicons
groups: add dynamic titles for most routes
groups + chat: titles for all accessible channels
fix merge
groups: channel actions in header, WIP
groups: refine channel actions (WIP)
idiomatic destructuring
groups: placeholder mutes, remove mark-as-read in header
correctly leave a channel of any kind
fix exhaustive-deps error
groups/nav: applies design to overview nav
groups/nav: use profile color as item highlight
group/nav: applies design to inner-group navbar
groups/nav: uses activity/notifications for group/groups home
groups/nav: pixel-perfect spacing
groups/nav: restores overflow behavior in group
groups/nav: update snapshots, better color function
chat: bring nav up to spec
groups/nav: collapse custom color function
groups/nav: use color2k
back out route changes
groups: adds notification routes back in, adds avatar to chatinput, clears Talk home
update ChatInput snapshot
diary/note: share + menu parity with design
diary: assorted cosmetics
diary: disable publish correctly
groups/channel-create: add colors + fix icons for channel types
groups/channel-edit: stay on page when creating channel
update snapshot
groups/nav: dynamic styling for group covers, checkpoint
groups/nav: adds dynamic coloring for image-covers in group
channels/add: use TW classes
groups/channel-edit: stay on page when creating channel
groups/nav: dynamic styling for group covers, checkpoint
groups/nav: adds dynamic coloring for image-covers in group
groups/channel-create: add colors + fix icons for channel types
update snapshot
channels/add: use TW classes
groups: sweeping color regression fixes
update snapshot
app: soft dark colors
update snapshot
groups: change collection to gallery
heap: text curio cleanup - grid, list, detail
refs/curio: add line-clamp and margin to text curio refs
app: product icon extravaganza
app: update landscape icons
chat+heap+diary: hide inputs if cannot write
heap + diary: hide non-permissive comment field
diary: allow authors and admins to edit notes
heap: prevent non-authors/non-admins from editing curios
diary: update index to show/hide edit buttons
meta: moving dev instructions
meta: add MIT license
meta: final readme
groups: use landscape settings
meta: updating snapshot
profile: address PR feedback
refs: adds desk refs
addressing PR feedback, fixing test
groups: adds feedback button and hover-menu to app title
feel: adds ships to chat reactions
s3: add rudimentary multi-file upload + store
s3: adds store, updates types
s3: produce and set URL for each upload
s3: key FileStore, associate input with upload
s3: add example implementation of input
groups: mobile nav redesign
groups: update ChannelIndex snapshot
groups: mobile nav PR feedback
groups: adds ellipsis to name-hover in group sidebar
groups: update NewChannel snapshot
groups: add channel admin actions
groups: use pretty channel type in actions
groups: remove comments
groups: prevent avatar squishing
meta: version bump
talk: refurb multi-DM chat info
talk: MultiDmEditModal feedback, pending list
meta: 0.9.0 version bump
meta: alpha -> beta
meta: version bumps
Jared Tobin (11):
ops: misc deploy action adjustments
ops: adjust jobs workflow
ops: dispatch on pushes to jt/action for testing
Revert "ops: adjust jobs workflow"
ops: don't add safe directory
ops: test OTA command in action
ops: use more appropriate flag order for janeway
ops: supply ssh key when OTA-ing
ops: test all commands
ops: full test
ops: remove --verbose flags, target master
Liam Fitzgerald (392):
chat: new backend
chat: new frontend
chat: support deleting messages
chat: add reacts
chat: auto setup default chat
chat: make not ugly
chat: fix ship validation
ui: strip out moment, use date-fns
chat: make back incompat changes OTAable
ui: cleanup chat state mgmt
chat: add replies
ui: update glob
chat: add unreads
ui: fix build error
ui: add fixtures
ui: prettier, add styling
ui: fix linting
groups: sketch out prototype
chat: integrate with groups
wip
meta: use npm ci to setup deps in CI pipeline
ui: freeze package-lock
ui: add ChatWindow
ui: add group navigation chrome
groups, chat: add channel creation
ui: add channel creation
ui: visualise members
groups: json conversions for roles
ui: visualise roles
groups: add networking
groups: add ui subscriptions
ui: synchronise group state in real-time
groups: add joining mechanism
chat: fix flag fetching
ui: allow joining of channels
chat: add writing roles
ui: add ChannelSettings page
chat: add more JSON conversion
ui: respect writer roles
chat: match JS types
chat: implement r/w permissions
chat: implement permission revocation
ui: fix adding a channel
ui: batch state updates to prevent zombie children
ui: add mocks for group state
ui: linting pass
ui: fix tsc
ui: fix lint
ui: sketch out pending groups
ui: componentise Gang
ui: add GangModal
wip
ui: fix linting issues after merge
groups: JSON conversions for join
ui: allow joining of groups
groups: refine subscription handling
groups: navigate to Group page on create
ui: move from formik to react-hook-form
groups: add scry endpoint for gangs
ui: fix gang fetching
ui: rm formik import
ui: address hunder review
groups: make cordon useful
ui: update cordon types
ui: use any-ascii
groups: add +ban-ship
ui: visualise open cordon
groups: add %afar cordon
ui: display custom group
ui: lint
ui: add delMessage to useChatState
ui: surface message deletion
ui: update tests
chat: fix replied field in JSON
ui: implement threading
ui: implement threading
ui: make chat threads match root view
ui: update threading to match spec
ui: visualise authors in reply
ui: address pat review
ui: update indices on delete
ui: add Dm routing skeleton
ui: add DM mock data, show
ui: address tom review
chat: factor out $diff:writs
chat: implement DMs
ui: hopefully unthrash package-lock.json
chat: subscriptions for live UI
ui: live updating DMs
chat: rewrite to split ordering and ID
chat: stop overflow of bounding box in thread view
chat: highlight message of thread
chat: use indigo XIcon
ui: fix lint
chat: write DM querying
ui: rework types to match new datastructures
chat: move group chats to $pact
chat: unify dm/groupchat state handling
ui: implement backward index
chat: stop rebunting group chat $pact
chat: fix face shadowing causing bad reply structure
ui: fix threading in DMs
ui: fix horizontal overflow
ui: fix reply state reduction
ui: address pat review
ui: address hunter review
ui: fix lint
ui: fix lint
ui: fix threading in ChatInput
chat: add $brief, make queryable
ui: order Dms, unread marking
chat: split $contents into $story, $notice
ui: render chat notices
groups: add missing %group-log mark
chat: make .draft a $story
ui: fix joining a chat
chat: typecheck
chat: add network status to $dm
chat: add dm $rsvp functionality
chat: add joining notice
ui: wire up join/invite flow
chat: add .unread-id field to $brief
chat: sketch archival of dms
chat: fix %older scry
ui: add fetchOlder api
chat: update archival technique
ui: allow chats to be archived
chat: add /dm/archive scry
chat: add club initialisation
chat: finish club draft
groups: add $bloc to specify superusers
chat: notify on DM
chat: autowatch DMs
chat: invite notifications
ui: move sigil memoization outside of react
ui: refine VirtualScroller anchor selection logic
chat: add JSON for marks
chat: club subscriptions for live UI
chat: add initialisation
ChatScroller: key virtualscroller component
ChatScroller: prevent threaded messages from being shown inline
wip
chatdesk: make desk.bill compile
chat: fix cruft from rebase
chat: make test passing
chat: rewire to gossip out group DM messages
chat: add necessary conversion marks
groups: add channel grouping
chat: make club metadata editable
chat: fix leaving DMs
groups: add automatic joining of channels
groups: respect autojoin flag
chat: make club metadata scryable
chat: do not notify on counterparty leave
dms: backend for pinning
ui: update dm pin pokes
ui: move from @uw to @uv
chat: move to @uv for club id
ui: fix subscribe once
groups: add missing readers property in channel json
groups: add missing par
groups: add necessary fields to create
chat: load newer
hark: first draft
hark: add %saw-seam action
hark: draft querying patterns
hark: draft timeboxing
wip
chat: add %chat-leave poke
chat: give %chat-leave on briefs
ui: fix vscroll locking behaviour
hark: cascading reads
hark: refactor, add comments
groups: leave
groups: protect against self-leave
groups: give diff for %group-leave
chat: make %inline-code not recursive
groups: add index subscription
groups: fix priority of wutlus
groups: fix mark in previews
groups: fix backwards conditional
groups: clean up index subs
groups: add channel ordering to zone
groups: order zones themselves
groups: introduce $nest
groups: update channel orderng to use $nest
groups: fix missing fas in nest enjs
desk: add desk-wide %holt functionality
desk: remove redundant $holt poke
ui: update for nest/flag bifurcation
landscape-dev: vendor deps at current master
chat: add upgrade logic from graph-store
groups: add %invite-decline poke
desk: fix agent order
hark: update rug handling
hark: add %rug mark
hark: add %action mark
wip
groups: fix invite mark name
groups: add %edit zone delta
contact-hook: upgarde networking
desk: remove contact-store from bill
hark: add ui subscription
hark: add blanket support
contact-hook: automatically federate through groups
chat: more sketches of import
groups: sketch out migration
groups: fix migration breakage after merge
groups: add |import generator
groups: fix md-store import scry
groups: address hunter concerns
desk: add +of, ordered set engine
groups: use +of to ensure correctness
groups: make zone mandatory, include defaults
groups: fix zone consistency issues w/ch add
groups: fix missing zone-ord add
groups: use %default instead of %$ for def zone
groups: fix compilation
chat,heap: fix default zone
chat: fix $inline recursion
heap: fix $inline recursion
ui: update for properly recursive inline type
chat: allow serving references
chat: allow asking for references
chat: add marks for previewing of references
diary: flesh out quips implementation
diary: add more JSON conversions
ui: refactor to remove channel polymorphism
diary: even more JSON conversions
ui: adding comments
diary: fix ui update subscription
ui: live comment updating
ui: fix out of sync types
ui: enable sourcemaps in production
ui: monkey-patch in correct order
ui: fix lint
diary: fix breakage from merge
diary: flesh out adding a note
diary: DiaryEditor -> DiaryInlineEditor
diary: prototype editor
ui: manually add paragraphs to diary editor
heap: use %ud for IDs
ui: update for %ud IDs in %heap
hark: enable garbage collection
ui: convert to @ud on way out
chat: fix brief
ui: prototype editor, again
ui: QoL fixes for interactive diary nodes
ui: fix lint, tsc
chat: add %cite types
chat: improve $cite type to allow arbitrary non-group references
notify: import from groups
notify: compiles
notify: upgrade for new hark
hark: add %hark-yarn mark
hark, notify: remove debug printfs
notify: fix +on-load
ui: cleanup
notify: add missing marks
groups: add ask set
groups: rework permissions for ask set
ui: update types for ask set in groups
diary: flesh out adding a note
diary: DiaryEditor -> DiaryInlineEditor
diary: prototype editor
ui: manually add paragraphs to diary editor
ui: prototype editor, again
ui: QoL fixes for interactive diary nodes
ui: fix lint, tsc
ui: cleanup
cite: add referencing
cite: drop unit path in %desk/%chan cases
ui: add cite path parser, printer
ui: render out references from $cite
notify: use %uv consistently
ui: fix recreation issues with block implementation
groups: preview group from nest
groups: add channel preview type
diary: fix encoding of time in notes-diff
diary: fix time replication
ui: update for new references schemes
ui: fix lint, tsc
ui: remove unused deps
notify: rewatch hark if subscription broken
groups: fix preview devase
diary: add $sort field
chat: fix previewing
chat: fix preview +take
groups: fix can-read scry
notify: rewatch hark if subscription broken
groups: fix preview devase
diary: add $sort field
ui: make diary header sticky
ui: add cancel button to new message
groups: fix location of pending request notification
ui: fix sending of useGroupState.revoke()
ui: tweak ShipSelector styling
chat: version marks
chat: add dummy marks
diary: version marks
heap: version marks
groups: version marks
ui: update mark names
chat: version subscriptions
diary: rework quips to nest inside notes
diary: match chat message type w/ quips
desk: fix kick resubscribe loop due to public/rolling mismatch
ui: update comment types to latest, and rework staggered fetching
diary: add %outline marks and associated endpoints
ui: clean up no longer use fields
desk: get rid of duplicate
ui: make virtuoso set keys on components properly
diary: write state migration
chat: fix upgrade
diary: write markdown parser
ui: fix array handling in diary rendering
diary: import poke sketch
chat, diary: make upgrade logic compile
chat,diary: fix merge breakage
chat: fix +roll losing captured state
groups: upgrade migration style
heap: add migration path
wip
chat: fix +roll losing captured state, again
wip
heap,quips: fix incorrect time handling
diary: fix url handling for images
desk: move channel meta migration into %groups
chat: %create takes all initial state
diary: %create takes all initial state
heap: %create takes all initial state
desk: fix broken migration
groups: fix zone consistency in migration
diary: improve migration
groups: fix admin import
chat: read all on import
diary: improve migration
diary: read all on migration
heap: read all on migration
diary: fix log handling in migration
heap: fix log handling in migration
chat: fix log handling in migration
chat: improve migration parsing
chat: fix versioning
groups: fix migration
diary: fix versioning
heap: fix versioning
desk: fix breakage from merge
diary: add comments to migration
landscape: include club migration
chat: add pending import indicators
diary: add pending import indicators
heap: add pending import indicators
chat: add ver to group-action marks
heap: add ver to group-action marks
diary: add ver to group-action marks
groups: fix potential networking desync
migration: improve diary handling
migration: fix newline handling in diary
DiaryContent: add %ship renderer
desk: add desk.release file
cite: fix %bait typing, conversion
groups: track nests that were imported
migration: remove autoconversion
groups: track nests that were imported
groups: req/res protocol for dude discovery
groups: populate .shoal on import
chat: add req/res for old style graph references
ui: support for graph-store references
chat: fix path formatting in migration
groups: add missing %dude mark
chat: prevent resub loop in %said handling
diary: prevent resub loop in %said handling
heap: prevent resub loop in %said handling
heap: allow references
heap: improve validation
ui: handle %block in %heap
diary: allow referencing comments in $said
heap: render references
diary: migrate references
desk: prevent duplicate subscriptions on said endpoints
references: prevent dupe requests by tracking loading
groups: finish initialising group before giving fact
groups: cleanup role import
groups: ensure host has write perms
groups: avoid overwriting admin perms in go-init
heap: fix typo in $sect
groups: fix typo
groups: fix importing admin
groups: add /init watch
groups: fix admin importing
desk: final versioning
Mackenzie Davidson (12):
devex: integrate tlon eslint/prettier #16
update `@tloncorp/eslint-config`
add eslint rule to allow jsx in tsx files
update path to `tsconfig.json` (plays nicer with editors)
updated linting scripts
updated `@tloncorp/eslint-config`
update eslint rule `tailwindcss/no-custom-classname` to allow for custom classes defined in `tailwind.config.js`
add `tsconfigRootDir` to eslint config
eslint + prettier: always add semicolon
lint and format all
tests: update snapshots
prettier: updated `trailingComma` rule to `es5` to not have trailing commas in jsx
Patrick O'Sullivan (370):
Switch to react 17 until we need 18 features
Update render in main.tsx
Add mock-http-api
Add new mocking
Update mock-http-api, add sample mock poke
Use VITE_SHIP_URL for mocking requests
Switch to VITE_MOCK_URL for local dev, add VITE_VERCEL_URL for deployments
chat: basic chat message/content components
chat: move Author and ShipImage into chat-message
chat: fix type issue in onSubmit in ChatInput
chat: commit snapshots for ChatMessage, set gh test workflow to update snapshots
chat: use less ambiguous param name for array item in content
chat: add comments to ChatContent
Update to mock-http-api 1.1.2
chat: add chat-reactions
chat: use interface for ChatContentProps
chat: use new Chat component
fix issues around using new mock-http-api
chat: add key to ChatReaction props
chat: add y margin around chat time
Use static time for ChatMessage test, snapshots no longer need update in CI
rename directories with CamelCase
chat: switch to new chat types
chat: shunt block content to the top
use tailwind officialSorting (the sorting used by prettier) for eslint classname sorting rule
Switch to unknowns for typeguards
Move Block/InlineContent components out, remove memos, switch to ternaries in ChatContent render
Fix tailwind classname order in other relevant components
Switch to faketimers for mock chat message
chat log: add date divider, fix some spacing issues
chat log: add hover state for normal timestamps, add another mockWrit
chat log: extract prettyDay out into hook
chat log: add prettyDayAndTime to author
chat log: remove extraneous divs around conditional components in ChatMessage
chat log: add usePrettyDayAndDateAndTime, trigger with hover on author
chat log: fix chat message storybook/test for timestamps
chat log: switch to css hover states
chat log: move usePrettyDay* to utils.ts, change to makePrettyDay*
chat log: use opacity rather than hidden/visible for timestamps
chat log: bump padding in author and datedivider
chat log: move date string to the end of author timestamp
chat log: make sigils a bit smaller
chat log: tighten up the padding on all rows
Add husky
Remove import of empty utilties.css, was causing issue with tailwind config
Don't lint-staged css files
Add tailwindcss-scoped-groups for nested group util
Add bg change on hover, add ChatMessageOptions
Run npm i -D esbuild to fix deploy issues
Add note about husky to the readme
Remove extraneous arrow func
Make icons more versatile and reduce filesize
Fix spacing/padding issues around chat message options icons
Make IconButton accessible
Switch from tailwindcss-theming to tailwindcss-theme-swapper
Line up message content with @p
More style cleanup around message rows
Make HashIcon square
Fix issue with option label
Remove unused import in ChatContent
Update snapshot
chat log: Fix a few more padding issues
chat message options: Center elipsis icon in container
chat message options: set pointer-events to none on iconbutton label
chat message: clean up reaction style
chat message: Add ChatImage block content
chat message: Update ChatImage to match disc. unions compatible w/urbit
chat message: Set 600 as default max-width
chat message: Add border radius to chat images
chat message: Address ed's feedback
ops: Add --fix option to lint in precommit hook
ops: add git add to lint-staged commands
ops: Run npm lint:fix
ops: Remove 'git add' from lint-staged per lint-staged docs
ops: Add tsc to lint-staged
ops: use npm run scripts in lint-staged
ops: run tsc only on ts files
ops: Use tsc-files for typechecking individual files on precommit
ops: Run tests before lint-staged in pre-commit
ops: Add vite/client to tsconfig types
ops: Add vercel.json w/rewrites rule, forces use of react-router for all routes
Add %contact-store
dms: start new DM
dms: add mocks
dms: Add some better/more detailed contacts to mock store
dms: run lint
dms: add filter related boilerplate for later
dms: allow user to send DM immediately after adding valid ship
dms: remove avatar from ship tags in new dm select (to match figma)
dms: fix some style issues around react-select input
dms: add some more mock contacts
dms: change sip tag label background to gray-100
dms: rename SigOption to ShipName
dms: new dm input box style tweaks
dms: add NewMessageIcon and new dm button to sidebar
dms: lots of style updates + dark mode fixes for react-select
Add invite mock
Move DM invite into its own page
dm-invites: match DM header to figma
dms: pass navigate func as prop to chatinput
Add new 'huge' size for sigil avatar, allow non-icon sigil
dm-invites: add basic accept/reject page
dm-invites: add decline 'are you sure?' modal
dm-invites: match pending dm state in sidebar to figma
dm-invites: fix modal size issues on mobile viewports
dm: cleanup dm header styles
dm: cleanup pendingDMs variable name in mocks
dm-invites: address james's feedback on styles
dms: Allow user to add valid patps not in contacts as DM participants
Add chatdesk toplevel dir
Add vite config to new eslintignore file
chat split: add new chat modes, scripts
chat split: switch routing scheme based on mode (IS_CHAT?)
chat split: fix typo in build script
chat split: add chatstaging mode
chat split: add missing cases to app.tsx
Update ui/src/components/icons/AsteriskIcon.tsx
Update ui/src/components/icons/AsteriskIcon.tsx
Update ui/src/components/icons/BulletIcon.tsx
Use bounded box caret down icon
Fix padding around caretdown in sidebar
Add pinned label to DM sidebar
Add pinnedDMs state
Add PinIcon
Handle pin/unpin, don't show pinned DMs outside of pins
Ensure dropdown label in message sidebar aligns with other items
Add default gray background to dropdown menu, revert padding changes
Add contact nickname from contact-store to ShipName
Add option showAlias prop to ShipName
Add group pinning state, mocks, handlers
Add pinnedDM check back to MessagesList filter
Add pinned groups to group sidebar
Add pinned groups to group mobile sidebar
Move isPinned into component scope, conditionally render pin/unpin label in dropdown menu
Update development doc, move to root of repo
Add react-dnd
Add another consistent mock group
Add basic drag/drop to GroupList
Downgrade react-dnd, avoid compat issue w/react 18
WIP: persist ordered pins to backend/app settings state
Move DM invite dialog out to its own component
Add 'Invite' option/dialog to DMs
Add updated mockServiceWorker.js
Update DmInviteInput to allow for multiple ships
Add ability to add multiple ships from DmInviteDialog
Add div toggle prop to Sidebar, make GroupItemContainer a list item
Use wrapper const rather than extra component in SidebarItem
Format Search.tsx
Allow user to invite other ships to existing multiDM, remove invite option from single DM menu
Fix cancel button
Add ClubDeltaAddHive case to initializeMultiDm
Remove unnecessary promise.all, then chain
Update/fix handlers around multiDM subscriptions
Update mock-http-api
Add import aliasing to project, show example in Sidebar
Install prosemirror view, fix failing lint
Set skipLibCheck to true on tsconfig
Move NewGroup to dialog, toggled from Sidebar
Move new group dialog into SideBar component
Add useStep hook
Add new NewGroup component, build first step component
Add NewGroupForm as second step
Flesh out form a bit more
Add ColorBoxIcon, clean up styles
Add EmptyIconBox, naive implementation of setting group icon color
Remove errant tsconfig
Switch to ColorPicker for hex code input
Fix issues with colorpicker input managing its own state
Use form state to drive colorpicker in NewGroupForm
Clear color icon state on cancel
Add image icon preview
Update all import in touched files to use aliases
Move dialog/dialogconent into NewGroup
Fix padding, add divs for TemplateOrScratch
Move next/prev buttons into NewGroups step components
Add NavigationDots
Use router for open/close state on NewGroup modal
Account when setting defaultColor for colorpicker
Preserve backgroundLocation when opening NewGroup modal
WIP, Add naive NewGroupPrivacy component
WIP, add icons
Disable next butotn on step 2 if no icon is provided
Add selectedPrivacy state
Make PrivactySettingRow a button rather than a div
Remove form tag, we'll handle form submission manually
Update icons
Add template type state
Add single ship mode to ShipSelector, WIP
Add initial stab at NewGroupInvite, WIP
Clean up state, add dropdown
Add sortBy to GroupMemberRoleList
Fix ship selector style issues
Make a few style tweaks
Make patps in ship invite list bold
Update based on backend group-create changes
Fix ship selector in new DM, fixes #382
Po/fix ship validation in ship selector
Po/fix hidden member role in member management view
use toTitleCase from utils
groups: Ability to leave group
groups: address design for group leave
Hide groups already joined and in pending claim state from join list
Add pending group join popover
Use group state's reject handler to handle canceling pending group join
Make a new hook for pending gangs without claim
Address urcades feedback, make popover mobile-friendly
Fix duplication of pinned groups
Fix missing chat channels in chatstead
Add new buttons to ChannelHeader for heaps
Setup basic grid, naive image/oembed renders
Add list view for collections
Add heaps to mocks
Flesh out HeapRow
Fix channelheader import
Persist displayMode and sortMode to settings-store
Add settingsPoke mock handler
Chat: fix bug where group channels aren't rendering
Bump testing-library version for patch
WIP: enhance embed thumbs
Attempt fix for matchesNode error in prod deploy
Flesh out twitter thumbnails
Flesh out other oembed thumbs in grid
Flesh out oembed thumbs in HeapRow
Account for links, images, music
Fix twitter icon issue
Attempt to fix matchesNode issue
Attempt to fix matchesNode issue on switching chats
Chat: fix unsupported channel type bug
Clean up grid, allow thumbs/titles from other oembed providers
Fix bug introduced with route refactor
Add edit/delete submenu to grid items
Clean up HeapRow
Fix type issue in HeapRow
Fix matchesNode issue on chat threading
Add messageEditor.isDestroyed to HeapTextInput useEffect
Clean up Heap components
Clean up loading states in grid and row views, remove Suspend
Remove suspense, HeapLoadingBlock from HeapChannel
Make embeds look nice in detail, improve mobile formatting
Fix type def issue on embed functions
Add audio player to detail view
Update ui/src/heap/HeapAudioPlayer.tsx
Fixes from bad push to master, plus added copy functionality to heap block/row
Add heap/writ references to chat messages
Match designs for chat references, split out into separate components
Add initialize for linked channel and loading spinner
Only call noembed when it could be an embed
Use isValidURL to check for url before fetching from noembed
Only show loading spinner if it's a URL
Match curio references in chat to figma
Add icons to content references in chat
Add note references to chat
Add note image to note references
Switch to Link component for read more button
Fix loading issue on heap rows
WIP: scroll to message in virtual scroller
Fix scrollToIndex to work with new VirtualScroller implementation
Remove refToken from note reference, use link in curio ref
Check for new scrollTo in componentDidUpdate in VirtualScroller
Update note reference styles
Only show unread date divider if there is actually an unread message
Remove link to notifications from chatstead sidebar
Add toast notification for published new note to diary channel
Put navigate inside setTimeout in newNote useEffect
Chat: remove reply action
Chat: handle references to unsubbed groups
Chat: remove reply action
groups: mark join notification read when joining from non-notification
chat: remove unknown avatar icon from pending chats, use sigil
groups: show default sidebar when GroupSidebar can't render in some situations
chat: fix error with loading ref to private curio in another group
chat: fix error with loading notebook refs
chat: fix several issues with drafts
talk: persist message filter in settings store
groups: persist groups and channel sorts in settings store
remove old useState code in useSidebarSort
fix ternary in return object for useSidebarSort
fix type issue on setSortFn
Use sortFn rather than sideBarSort in sortRecordsBy
groups: set notifications sidebar item as active when at default route
update test snapshot, lint cleanup
groups: set heap display mode in settings store
groups: add ability to remove potential invite from invite list on new group creation
chat: add image upload to chat input
fix type issue in upload.tsx
Add loading and error states
Prevent double encoding of urls and account for spaces in regex
Fix condition on showing upload button
Make uploadFile more readable
Fix type in upload/storage
Update popover error design
Update ui/src/dms/MessagesSidebarItem.tsx
chat: fix issue where S3 urls would seem to persist as drafts
chat: fix missing special characters in image url regex
handle frontend disconnects
remove unused import in disconnect notice component
don't export setupAPI, not useful
only retrive groups if we're actually looking at a group
Remove errorCount from app.tsx, revert scry changes in api.ts
Chat: fallback to 'find groups' is join failes on group ref
groups: fix for double listing of matched value in join ship selector
groups: fix for collision caused by channels using the same channel flag
remove unused imports
Check for existing channels for all channel types
Switch to random small int from date timestamp
Groups: show private group join requested in group reference
Use button.text from useGroupJoin
Fix scroll position issue when switching chats
Add top padding for new author chat messages
Update chatmessage snapshot for tests
Add padding to last message in chat scroll
groups: fix for jumping/mis-ordered admin channel list
add updateGroups method, use it in moveChannel method
chat: use scrollTo to scroll to messages, fix thread exits
use time rather than idTime for returnUrl
Apply same fix to single ship selection that was applied to multiple
Catch disconnects caused by subscription errors, use errorCount
Move setting of client.onError to setupAPI func
Add airlockErrorCount, make use of 'reconnecting' status
Make sure we only show a recent channel for this particular group
Remove unused JoinGroup component
Add loading state for all group joins
Add loading state for group indo edit
Add loading state for group deletion
Add loading states for member role changes
Add presig to patps for index call in FindGroups
Address hunter's feedback on loading states
Clean up ChannelManagerHeader
Add loading states for channel creation
Add loading state for editing a channel
Add loading state for section edits
Add loading state for deleting channels
chat: Use useWritByFlagAndWrit for all writ references
chat: fix link to message (use time)
Add z-index:10 for dropdown class in components.css
groups: Add presig to invite modal
groups: Route to channel index by default if no channels joined
groups: Add zindex to 'joining group' popover
groups: Fix overflow issue in New Group modal in safari by setting a definite width on dialog
groups: Prevent refs from loading while scrolling
make isScrolling prop optional on ContentReference
make isScrolling prop optional on ChatContent
chat: Remove copy ref button from DM messages
update test snapshot
Update ui/src/chat/ChatMessage/ChatMessageOptions.tsx
Pass isScrolling prop into each ref type, only load if not scrolling and not loaded
heap: store links as link content type
groups: Show default cover import (0x0) as default cover color
chat: Handle code block input/display
address urcades feedback on codeblock padding
Use lodash for findLastIndex to fix tscheck on test
add new codeblock icon
Fix padding issue on one-line code blocks
remove console log
heap: fix titles for links in detail view
chat: fix persistent loading spinner in multiDMs
groups: allow user to see host ship profile from find groups
chat: clean up chat input toolbar based on urcades feedback
Update ui/src/components/References/WritBaseReference.tsx
Update ui/src/state/groups/groups.ts
Remove HeapDetailHeaderDescription
Update ui/src/state/groups/groups.ts
ops/meta: remove prerelease notice
refs: show when content has not been migrated yet
Diary: filter out empy text nodes in wrap paragraph
Diary: load diary note before calling useNote in editor
Diary: fix lists in editor
Bump docket versions
Send empty string title on new links
Update desk.docket-0 to 1 0 3
james acklin (11):
Update ChatUnreadAlerts.tsx
Update ChatUnreadAlerts.tsx
meta: add landscape-dev instructions
Update ui/src/components/ShipSelector.tsx
Update ui/src/components/ShipSelector.tsx
meta: update README
Update ui/src/profiles/ProfileCoverImage.tsx
Update ui/src/components/Sidebar/Sidebar.tsx
groups: update image regex
nerveharp (1):
Update issue templates
rabsef-bicrym (1):
fix for checking group before creating diary, chat (#1021)
rcrdlbl (259):
added 'clear formatting' button to ChatInputMenu
created false default for isActive and isSelected on ChatInputMenuButton
changed clear button to text, accompanying CSS edits
extra padding to textbutton to align more with normal buttons
removed unused x icon import
mobile view: text formatting tools now appear below input field
jsDOM feature mock to keep tests running smoothly
keyboard focus fixes, exit button added to URL input
ChatInputMenuToolbar broken into seperate file
small padding update in ChatInputMenuToolbar
WIP: sidebar built out to work as seperate from URL route
fixed route issue
equalized sidebar widths
fixed sidebar width changing on select
added persistence for group navigation
cleanup
updated linter snapshots, ran linter
added useEffect to groups.tsx, removed flag from useNavStore
wip: group info dialog
group info modal: working on desktop
initial mobile fixes
fixed safari modal oversize
nav: normalized modal width
correct dropdown > modal interaction flow
import cleanup
safari dark-mode only text selection override
moved css definition to base.css
wip: created stub UI for modal
Merge master in for multi-dm state
first pass at color picker
new chats are now placed at bottom of screen
reverted capitalization change on layout imports
conditional rendering of auto margin
built out color picker
stubbed out empty search page, new search route
added info and edit options to MultiDM Options
modal now submits
requested review changes
added color field to mock handlers
useMultiDM implemented in info form, isMulti boolean in DMOptions
using inbuilt react-select focus property
removed redundant background application
using css color variable
pending groups now don't open options in sidebar
changed pending prop to use isAccepted in dm and multidm
restored chatinput test snapshot
pending invite dropdown
removed safari button rendering issue
basic channel list item UI
wip: drag + drop, section pokes
pokes for autojoin and zones
wip: edit chat name
fixed typeerrors in mocks
linter updates
default switch submits info
wip: permissions dropdown
replaced drag n drop library
wip: section layer
wip: prevent dragging channel outside section/vice versa
multi-layer drag and drop functions
type/file location cleanup
edit/delete section
cleanup/section field placeholder
wip: New Channel Form
wip: adding, deleting channels and sections
new section drop tools, visual updates, minor reordering bugs
update snapshots, add polyfill for resize-observer to prevent tests failing
wip: optimistic updating
frontend behavior complete
updated snapshots
updated variable names to be more accurate, channel flag derivation
using channelFlag everywhere it should be used
Default channel conditionally rendered, changed addOrEditChannel to editChannel
design and interaction feedback
view profile: first pass
updated snapshots
package-lock created with npm 8.12.1
added profile link to member list avatar for admin
modal footer no longer gray
footer is no longer gray even if there's no contact-store entry for the ship
wip: sidebar user info debugging
wip: sidebar user info debugging
WIP: Profile editing – missing groups
group add/remove
linter run
Update ui/src/components/Sidebar/Sidebar.tsx
wip: channel manager backend-frontend interaction
code feedback + group add/delete stability improvements
header/avatar field default value
wip: channel deleting + zone reordering
first pass at backend integration of channel/zone ordering
sidebar and channelIndex now respect admin-set order
added variables to tests, updated snapshots
remove unnecessary exclude from tsconfig
changed default zone key to 'default'
snapshots updated
code style feedback
linter run
wip: pre-merge
pre-merge
wip: heap detail view
heap: comment list
copy icon updated
code style updates from feedback
collections: layout fixes, heap state initialized on detail page visit
moved sidebar out of own file
handled switch to embed state in type info hook
implemented user dark mode preference in theme-color meta value
sidebar nav link fix
sidebar channel list now filters out unjoined groups
group selector on profile search no longer autofocuses, autofocus option added to groupSelector
mobile view fixes, main nav width fix
updated snapshot
Revert "updated snapshot"
Revert "homestead: [skip actions] update glob (0v50c5m.mcj3a.fs4mg.t06sg.cadb0)"
Revert "Revert "homestead: [skip actions] update glob (0v50c5m.mcj3a.fs4mg.t06sg.cadb0)""
Revert "mobile view fixes, main nav width fix"
mobile view fixes, main nav width fix
link truncation fix
sidebar info spacing fix, removed elipse menu
removed unnecessary time call from HeapDetail
moved filtering logic to hooks/utils
copy edits throughout
updated terminology
delete tsconfig.json
first run: nav animation
removed animations from mobile
switched react-spring to framer-motion v6.5.1, changed animation
fixed disappearing sidebar
fixed mobile hidden nav settings
inChannel added to mobile check
removed redundant mobile nav check
diary: grid view
new placeholder images
diary: list view
switched share icon to copy
added sorting-related boilerplate, implemented sort by old/new post on frontend
re-inserted group header
removed unnecessary asChild prop from sort controls
added key to diary list view
changed title and app icon to read Talk instead of messages
update to desk file
removed placeholder image URL from image form
added fallback colors for when there's a broken cover image
use the fallback colors if CORS is broken for the header image
enable submitting a message with an attached reference and blank text
changed order of app title and page info
used radix-ui for chatmessage tooltips
changed grid to fill-auto and not fit-auto
updated test files
changed grid resizing and block items to take up full width of container
linter run
moved container div definition to HeapChannel
updated system message styling, fixed accidental HTML execution in ICONS document
fixed multi-DM avatar, multi-DM filtering in talk, new DMs redirecting to wrong URL
set header to z-index 50
fixed navbar disappearing on window resize
loading state for buttons
disabled template page in new group form, copy update
updated snapshot
added non-null check for section list sorting function
removed placeholder images and image upload button
added option to sort curios alphabetically
if group title text is white, use drop shadow
added DMOptions dropdown to group chat channels
set shipSelector padding to avoid size jumping
now using intersectionObserver to mark channels as read once the divider appears on screen
set specific width for filtering dropdowns
set active items one shade darker
disabled hover color on active state
updated snapshot
updated list spacing to y-1
removed duplicates in pending list, removed pending members from member list
flipped public/private logic on editing field
deleted tsconfig backup json file
using react.forwardref on DateDivider
chatState re-write, sentMessages array, isMessageDelivered hook
snapshot update
frontend to-spec with mocks
updated snapshot
posted to client, not delivered state
code feedback cleanup
added .reverse to DM filter
updated styled paragraph test to test for a paragraph and not a single word
changed tiptap logic to avoid inserting breaks into the middle of a paragraph
changed tiptap logic to avoid inserting breaks into the middle of a paragraph
preventing errored joins from appearing in the sidebar
updated test snapshot
refactored to use old groups doCopy API
reverted usehooks-ts version to 2.6.0
reverted usehooks-ts version to 2.6.0
updated justCopied to didCopy
reverted package-lock
changed nav/main content layout to enable scrolling
added required value to name field, added required: false to all others
wip: group cover/icon preview component
group info fields, new color/image picker design, fixed navigation dots
group privacy selector visual updates
group creation flow rework
moved eslint disable post-lint
globe icon replaced
fixed multi-DM use of image or color field
removed unused imports
added default setting to channel creation submit action
added copy functionality to author component
updated test snapshot
changed modal to follow top
added inline to string parsing for proper title previews
changed default title for untitled images in header
set field focus target on heap text input to entire input
disabled CSS hover on touchscreens
allowed click to select diary node from dropdown, allowed up/down arrow keys to exit image block
removed chat code block overflow issue
changed content preview in heaprow to prevent mobile overflow
prevented overflow on long notifications
prevented insertion of extraneous newlines into notebook posts
added apple-touch-icon to header
changed back button behavior on mobile for Talk
added feedback menu to talk
added placeholder to URL field
implemeted s3 uploader in notebook header
changed header title
created image/url upload field, added to profile editor
added image upload to new group page and DiaryImageNode
added image upload field to new curio form
replaced globe icon with open lock icon
disabled autofocus on mobile
introducing globe16icon
bottom margin on link input
profile/edit: cover image preview update, field height fix
fixed color field width jumping
profile modal – cover updated
removed unused assignment
updated color/image input field to account for empty default values
updated dropdown styling, fixed channel header dropdowns (incorrect library)
linter run
restructuring of chat thread
fix broken title value, code cleanup
emojipicker mobile ruleset
emojipicker mobile ruleset
heap input scroll enabled
added check for background location match
changed sidebar scroll behavior
changed sidebar scroll behavior
mobile nav updates
mobile sidebar fix, scroll fix
updateValues on diaryImageNode
padding normalized
updated test files to account for missing useVessel hook in chatIndex
changed emoji picker popover to come out of left side of trigger
changed truncation css class
fixed truncation on mobile, various visual fixes, fixed mobile link input
updated PWA manifests, added bottom spacing for standalone mode
removed duplicate manifest in header
added not-prose to writ ref
added not-prose to more refs
fixed emoji picker screen collision issues
portalled emojipicker content
actually using the group privacy
ryjm (41):
docs: minor grammar/style edits
chat: fix state migration
update marks
groups: version negotiation
migrate `net`
cleanup
diary: versioning
chat: lib/epic/hoon -> sur/epic/hoon
diary: address PR feedback, remove state mig
diary: re-order state/epic to match chat
diary: give new epic when it's not cool
groups: remove state mig and address feedback
groups: only speak good news when it's not okay
diary, groups: remove %load, update %sub
groups: `go-start-sub` -> `(go-sub
load.net)`
groups: formatting
groups: `?-` to `?.`
heap: version negotiation
groups: handle %pub update
update marks
chat: update marks
chat: atone
chat, diary: intercession
ops: raze all agents
all: save bad state to /put
chat: dangling tis
chat: fixes
chat: okay cool comment
groups: remove erroneous %sub check
heap: keep
diary: keep
groups: avoid alien ships for now
diary, heap: actually keep
groups: formatting
diary: keep arm
heap: keep arm
diary, chat, heap: epic conditional and tests
migration: %bait placeholder
groups: admin fix
groups: flip condition and rename
groups: update other go-init call site
tomholford (232):
devex: peg node version
devex: add tests
devex: add snapshot testing lib and example
devex: CI pipeline using GH actions
devex: update CI working directory
devex: fix working-directory path
devex: another attempt to fix CI
devex: fix package-lock
devex: add eslint + lint stage to CI
devex: resolve lint issues
deps: bump @tloncorp/eslint-config
wip: App Shell / Layout component
devex: address PR feedback
devex: add ui/README and dev guide
ui: fix storybook import
wip: ChatMessages virtual scroll
ux: threads start scroll from top
ux: port groups1 scroller
devex: resolve lint and tsc errs
vscroll: fix wheel scroll handler, address lint
chat: address vscroll PR feedback
chat: fix vscroll average height
vscroll: address PR feedback:
chat: refactor mock data; fetch older msgs
scroll: start at bottom, follow new msgs
scroller: address PR feedback
scroll: fake scrollbar follows direction
scroller: fix reflow offset calc
scroller: fake bar fills whole screen
scroller: resolve tsc errors
devex: allow unused args prefixed with _
scroller: hide loading spinner at start / end
sidebar: Search, Join, Create Groups match design
sidebar: sort groups list by A->Z or recent
sidebar: address PR feedback
sidebar: channels sidebar implements Design spec
sidebar: address PR feedback
ui: fix focus state, sidebar sorter occlusion
sidebar: groups actions dialog
sidebar: styling, layout, integrate w/ Nav changes
sidebar: show kebab button when menu open
sidebar: enhanced dropdown styling
sidebar: address PR feedback
sidebar: copying link shows confirmation
sidebar: fix hover opacity styling
multi-dms: add Club pokes and types
multi-dms: add poke and type for sending (#262)
multi-dms: add to zustand state
multi-dms: simplify chat state interface
wip: initiate multi-dm
wip: updated MEssage route, MultiDm TODOs
wip: initiate multi dm by entering multiple patps
multi-dm: navigate to MultiDm and show title
multi-dm: address PR feedback
multi-dm: pr feedback re: whomIsFlag
multi-dm: enhanced UX for entering multiple patps
multi-dm: keydown handler backspace behavior
multi-dm: can start with Enter or Send
dm-input: restore click on option behavior
devex: rename Option --> ShipOption
dm-input: memoize contacts for improved perf
devex: replace `any` with FieldValues form type
devex: fix UseFormRegister types
ux: ShipSelector perf enhancement
ux: ShipSelector prefers nicknames
ux: ShipSelector search uses nickname + patp
vscroll: load newer messages onScroll
channel: add create channel modal
groups: first pass of channel index view
channels: join from Index view
channels: title links to Channel from Index
channels: index uses Briefs to determine joined
pr: remove ChannelManager placeholder
pr: button and section styling tweaks
test: add chatinput test snapshot
gangs: update design, prep for reject modal
gangs: reject confirmation modal flow
deps: add usehooks-ts
gangs: option to skip future reject confirmations
logic: use regex for `whomIsFlag`
test: add single char term case
logic: use regex for `whomIsFlag`
test: add single char term case
groups: refactor Find flow
channels: Leave a Channel from Index view
chat: more placeholder images
chat: add title to Test Image button
groups: remove Create Channel sidebar action
api: stubbed Groups Index endpoint
groups: revamped Join Grop flow
devex: fix storybook alias resolution
groups: filter Secret groups from search results
ui: Groups Join loading state placeholder
pr: style feedback
api: integrate with backend /gangs/index endpoint
gangs: separate Invites from Search results
groups: Join by Nickname, @p, or Invite URL
groups: simplify search result display logic
groups: timeout when unable to query host index
groups: Find Groups styling feedback
sidebar: fix Groups / Channels sorting
sidebar: fix Groups --> Recent sorting
pr: address feedback - use namespace imports
devex: fix imports after rebase
groups: fix sticky Find view
groups: restore and simplify Join behavior
devex: fix typo in comment
groups: re-restore Join behavior
groups: after leaving, redirect to root route
groups: consume %invite-reject endpoint
invites: reflect backend renaming
channels: clickable rows, semantic HTML
groups: update `zone` types
groups: address `tsc` errs
pr: address feedback on `idx` type
channels: refactor Index to reflect Zone schema
channels: sorted ChannelIndex
channels: update ChannelIndex icons for heaps
collections: use Shapes Icon
icons: add Notebooks icon
sidebar: refactor Sorting hooks
messages: refactor Sorting behavior
sidebar: Channels sidebar buckets by Zone
sidebar: handle empty ChannelList empty state
sidebar: simplify defaultSort
heaps: HeapInput component
heaps: add Heap - List mode styles
heap: [wip] add rich text
heaps: render Rich Text curios
heaps: styling
heaps: ux enhancements
channels: use heap icon in sidebar and admin list
diary: update ChannelIcon to support Notebooks
heap: persist input drafts
channels: indicate unreads in sidebar
channels: simplify unread logic
channels: dismiss unread notifications on view
channels: address PR feedback for Unread hook
groups: sidebar unread indicator
heaps: hoverable carousel buttons in detail view
groups: sidebar unread PR feedback
heap: address PR feedack
heaps: edit curio modal and flow
ui: display title when in list mode
devex: clean up before major refactor
heaps: more cleanup and prep for edit refactor
heaps: edit curio modal uses Rich Text
heaps: remove extraneous changes
heaps: keyboard navigation for carousel
devex: address PR feedback
devex: more cleanup
ci: address linter errs
devex: remove extraneous package locks
devex: forward ref for ChannelHeaderButton
input: add test for tiptap#parseInline
deps: upgrade vitest
test: more coverage
tiptap: fix parser, add test suite
test: suppress unrelated Hark test
deps: bump vitest
parser: refactor wrapParagraphs, add tests
groups: accepting invite navigates sidebar
groups: accepting invite navigates sidebar
tiptap: jsonToInline test coverage
tiptap: refactor JSON serializer
devex: replace magic number
tiptap: update codeblock node type
deps: add codeblock extension + lowlight
diary: codeblocks in editor
diary/note: codeblock in published note
diary/note: remove lowlight, prep for prismjs
tiptap: unify diary + json inline serializers
lint: resolve tsc err
diary/note: embeddable web links
diary/note: fix link input styling
idiary/note: edit mode prism syntax highlighting
diary/note: code block language picker
perf: reduce supported languages to common + hoon
perf: suspend DiaryNoteEditor to shrink bundle
heap/ux: esc key to nav from detail to index
perf: fix Ref re-renders
groups/sidebar: render placeholder while loading
heap/ux: smaller button targets
docs: more readme tweaks
ux: add Alpha Notice
ui: address PR feedback
devex: simplify notice
devex: add scripts and config for use with bouncer
fix bin script paths
devex: one more paths fix
devex: update gitignore
groups: prototype secret
groups: secret group flow
devex: update glossary for bloc
groups: filter secret groups from search results
groups: editable privacy
groups: edit group privacy --> secret
groups: previews accommodate secrecy
pr: address feedback
groups: editing Group privacy swaps cordon
groups: WIP migration for groups-0 --> groups-1
groups: 0-to-1 migration [wip]
devex: address PR feedback
devex: address PR feedback
groups: suppress superfluous notifications
groups: suppress superfluous notifications
ui: mobile styling for New Groups modal
channels: fix recent sort in sidebar
text: fix failing test
ui: fix modal backdrop on mobile
channels: sort recent applies to all channel types
test: fix broken Sidebar test
vscroll: remove oldWhom / indexData
scroller: deep link to chat msg
chat: click unread banner to go to first unread
scroller: restore pre-pending behavior
style: shade deep links as G1 blue
scroller: remount when switching channels
scroller: attempt to fix mobile jank
scroller: fetch all unreads on load
unreads: reuse getFirstUnread hook
notice: consistent localStorage keys
channels: refactor pre-fetching behavior
perf: dynamic scroller page fetching
deps: upgrade react-virtuoso 2.19.0 --> 3.1.4
scroller: refactor scrollTo behavior
multi-dm: pre-sig ship names
heap: empty curio title to pass backend validation
heaps: fix posting and viewing app refs
heap: app ref styling for curios
heap: address PR feedback
chat: fix double sig on mentions
~midsum-salrux (6):
Require can-read to watch chat
Split off go-can-read and check watch-chan
scry ames on /peers instead of /peers/[ship]
Send hi to alien ships
Handle helm poke ack
Hi and subscribe
édouard (1):
edit padding of DateDivider to 'py-4'