-
Notifications
You must be signed in to change notification settings - Fork 42
Meetings
Erik Moeller edited this page Aug 24, 2020
·
3 revisions
This page holds notes and agendas for regular or irregular conversations pertaining to the development of the SecureDrop Client.
Read/Unread User Research & MVP discussion: see https://github.com/freedomofpress/securedrop-ux/wiki/Meetings-2020-08-24-(Read-Unread)
- How draft replies are managed (when they are deleted, updated to failed)
- Which race conditions we handle in the client, and which race conditions we don't
- How ordering of replies work
- #825 (packaged client bug) if there are updates
- Truncation issue
- Login error message
- Deletion progress indicator: https://github.com/freedomofpress/securedrop-client/issues/643
- Sync API behavior: https://github.com/freedomofpress/securedrop-client/issues/462
- (If we have time) Reply pending state redux
- Review latest export design
- Pending replies, follow-up issue: https://github.com/freedomofpress/securedrop-client/issues/604
- Export strategies: https://github.com/freedomofpress/securedrop-export/issues/18#issuecomment-546541528
- Loading behavior
- Goals for potential co-working day
- Export/print dialog UX
- Export device numbering redux
- Export challenges
- USB device identifier number gets reassigned
-
x not in list
errors - handling multiple usb devices
- export interface providing incorrect status outputs, e.g. USB_CONNECTED instead of ERROR_USB_CONFIGURATION
- etc.
- polling for plugged in device vs a button
- sensitive luks passphrase in metadata file
- How to handle replies that cannot be sent because the queue is paused
- Option 1: Indicate that replies are pending
- Option 2: Disable reply controls (and other actions?) if queue is paused
- Option 3: Use existing failure indicators
- Option 4: Indicate that replies are queued (not actively pending but waiting for network issues to resolve)
- Option 5: Show failed reply that ended up pausing the queue and all replies after that as red until network issue is resolved (trickier)
- ...
- Reference: Previous reply/network error explorations.
- Quick checks: file sizes, text alignment in reply speech bubbles, rich text formatted text allowed in reply box even though we don't store it that way
- how dates should be formatted in the source list
- quick demo of recent UI changes
- pause queue job and the follow-up tickets we need for restarting the client after closing it with jobs in the queue
- Client gradient updates
- Empty state in client
- Print/export specs
- Should we add another sd-dev VM for client development/testing in qubes? What do we gain from it? (See https://github.com/freedomofpress/securedrop-client/issues/483#issuecomment-513037893 and https://github.com/freedomofpress/securedrop-workstation/issues/288 )
- sqlite downgrades
- sqlite doesn't support
alter table drop column
so creating an sqlalchemy downgrade requires a workaround. It's pretty simple: usebatch_alter_table
. However, maybe it makes more sense to restore a backup, which can be more reliable and/or faster than to do a downgrade, depending on database size. The client's database might not ever be so large that performance is an issue, but we should add notes to our migration policy/ documenation in the client's README.md after discussing this further as a group. (Track notes here: https://github.com/freedomofpress/securedrop-client/issues/457.)
- sqlite doesn't support
- 0.2.0alpha milestone review
- Localization planning
- Upcoming events to keep in mind: MozFest 21-27 Oct, IFF 2020
- Any face-to-face event should include demos of Qubes and the client
- Qubes localization (100K words) dwarfs anything we're doing
- For workstation & client, let's identify languages currently used in prod by SecureDrop instances
- L10nlab team may be able to contract with FPF on outreach effort, will do some cost estimates
- (Kushal:) Outreach to Fedora may be an option
- UX feedback:
- What are the preconditions for the first user tests w/ the real client?
- Retry logic / refresh token discussion
- State of the queue
- Outstanding issues: Use queue for source deletion
- Persistence: a must-have feature? What does an MVP look like? - Erik to file
- State of client release (blocking other critical work)
- Discussion on Empty state screens that we didn't get to last week.
- Kushal to be invited to participate more in client development in upcoming sprint
- Moment of sad silence for Heartsucker's departure
- Refresh widget active-state messaging
- This has been assumed by nina to be the primary means of communicating network activity to users—whether they invoke/click the button or not. How does the team feel about these states? Allie has one fine animation now as the spinner, on an aside.
- nina would also like decisions from here to carry-over into the Empty state screens
- Timeline review
- Network/Reply Fail iterative implementation things
- Now includes login!
- Cross-reference this outline in GDocs for proposed Must/Should/Could details broken-out in specificity
- Analogous experiences
- Facebag did this to me today, when my connection dropped. As always, a real user's experience cannot ever be fully anticipated by the peeps behind an implementation's design—and hooboy, it peeved me off being locked-out from finishing the other tasks I was doing, on the page. As I thought about our users on the Workstation, it seemed like this is exactly when "Offline Mode" will be most useful to them... so planning how to elegantly transition into that after "x" amount of time
- Slack Queue wackery mid-connection-loss
- Queue update
- UX discussion of pending PRs
- Reply failure UX redux
- SecureDrop User Survey
- Post-PyCon catch-up
- Next steps on queue implementation
- "Empty screen" designs for when no source is selected - https://github.com/freedomofpress/securedrop-ux/issues/54
- Moving timeouts from the client using
QTimer
s to the SDK usingrequests
andsubprocess
based mechanisms
-
Default selection-state upon launch, between the Source List and the Messaging Pane
- Nina nominates caching each user's states when they quit or close the app, and re-opening with those same choices
- Ok, so then how to do for Offline Mode?
- ^ ...is why early mockups had user-ed content in the Convo pane, but users found that confusing.
-
Login from Offline mode
- Nina has mockups
- Network Activity, small part of this
- How do we want to display dates, times, and timestamps?
- Strange repainting behavior - do we need to start with a conversation selected?
- Timeouts are too short for API calls
- Should we center all popups
- Most of April, work on the Queue Design Doc