39 lines
1.9 KiB
Markdown
39 lines
1.9 KiB
Markdown
design ideas
|
|
---
|
|
|
|
- instead of dumb search, have like an omnibar with recency info built in?
|
|
- this requires some kind of cache and text search
|
|
- mail view has like a "filter stack"
|
|
- initially, this is empty, but when u do `/` u can add stuff like `acct:personal`, or `date<2020-03` or `has:attachment` or `from:*@gmail.com`
|
|
- then, when u hit enter, it gets added to a stack and u can like pop off filters
|
|
- example wld be liek `[acct:personal] [is:unread] [subject:"(?i)*github*"]` and then when u pop off the filter u just get `[acct:personal] [is:unread]`
|
|
- tmux-like windows
|
|
- maybe some of the familiar commands? `<C-b %>` for split for ex,
|
|
- gluon for scripting language
|
|
- hook into some global keybinds/hooks struct
|
|
- need commands:
|
|
- create dir
|
|
- move email to dir
|
|
- transparent self-updates?? this could work with some kind of deprecation scheme for the config files
|
|
- for ex: v1 has `{ x: Int }`, v2 has `{ [deprecated] x: Int, x2: Float }` and v3 has `{ x2: Float }`
|
|
this means v1 -> v2 upgrade can be done automatically but because there are _any_ pending deprecated values being used
|
|
it's not allowed to automatically upgrade to v3
|
|
- imap repl? or more realistically gluon repl that has an imap interface
|
|
- basically lets me debug imap commands on-the-spot, with the current connection
|
|
|
|
imap routine
|
|
---
|
|
|
|
- basic tcp connection is opened
|
|
- if tls is "on", then immediately perform tls handshake with the server
|
|
- if tls is "starttls", check starttls capability
|
|
- if the server doesn't have starttls capability, die and report to the user
|
|
- if the server _does_ have starttls, exit the read loop and perform tls handshake over current connection
|
|
- at this point, tls should be figured out, so moving on to auth
|
|
- check if the auth type that the user specified is in the list of auth types (prob support plain and oauth2?)
|
|
|
|
|
|
list of shit to do
|
|
---
|
|
|
|
- profile the client to see what needs to be improved?
|