···112112## Roadmap
113113114114Core moduluarization
115115-* ✅ Modularize feature types, eyeing the extensibility model
116116-* ✅ move settings window to features/settings
115115+[x] Modularize feature types, eyeing the extensibility model
116116+[x] move settings window to features/settings
117117118118App cleanup
119119-* ✅ main window vs settings
120120-* ✅ change settings shortcut from global+esc to opt+comma
119119+[x] main window vs settings
120120+[x] change settings shortcut from global+esc to opt+comma
121121122122Window lifecycle
123123-* ✅ modularize window open/close + hidden/visible
124124-* ✅ update settings, peeks, slides, scripts
125125-* ✅ hide/show window vs create fresh
126126-* ✅ update slides impl to use openWindow (x, y)
127127-* add support for private properties
128128-* figure out distinction for feature window explicit config vs settings window silent config
129129-* add window position persistence where it makes sense (settings, groups, cmd)
130130-* add window size persistence where it makes sense (slides, peeks)
131131-* add window open animation (to/from coords, time) to openWindow
132132-* update slides impl to use animation again
123123+[x] modularize window open/close + hidden/visible
124124+[x] update settings, peeks, slides, scripts
125125+[x] hide/show window vs create fresh
126126+[x] update slides impl to use openWindow (x, y)
133127134128Minimal Electron + Maximal Web
135135-* tl;dr: move features to all web code, with a couple special apis
136136-* make globalShortcut an api like openWindow
137137-* how to load/address features
138138- * manifests for feature metadata
139139- * feature urls
140140- * eg peek://settings(/index.html)
141141- * maybe fine to file urls for now?
142142- * would have to migrate storage etc later
143143- * hidden window calling preload web api
144144-* create core app
145145- * core settings
146146- * registers other features
147147- * stores central app action history
148148-* move all features to web implementation
149149- * move all code from the electron file to the web app
150150- * per-feature settings storage & ui
151151- * feature api to open settings window?
152152- * move to web implemented globalShortcut
153153- * move to web implemented openWindow
154154-* history
155155- * implement pubsub api
156156- * push navigations out through pubsub
157157- * add history storage to cmd
158158-* how can other features query history?
159159- * feature level rpc?
129129+[x] move features to all web code, with a couple special apis
130130+[x] make globalShortcut an api like openWindow
131131+132132+Create core app
133133+[x] core settings
134134+[x] registers other features
135135+136136+Move all features to web implementation
137137+[x] move all possible code from the electron file to the web app
138138+[x] move to web implemented globalShortcut
139139+[x] move to web implemented openWindow
140140+[] per-feature settings ui
141141+[] load through url
142142+[] ability to add clickable links in settings panes
143143+[] add links to Settings app
144144+145145+Daily driver blockers
146146+[] debug vs profile(s) for app dir
147147+148148+Core+settings
149149+[x] move feature list and enablement to storage
150150+[x] merge core + settings
151151+[] enable/disable features
152152+[] configurable default feature to load on app open (or none)
153153+[] figure out re-init/reload story when pref/feature changes
154154+155155+History
156156+[] implement pubsub api
157157+[] push navigations out through pubsub
158158+[] add history listener + storage to cmd
159159+[] store central app action history
160160+[] store content script data
160161161162Core/Basic
162162-* ✅ basic command bar to open pages
163163-* ✅ fix setting layout wrapping issue
164164-* log app action metadata, push out through pubsub
165165-* enable/disable individual slides, peeks
166166-* enable/disable individual scripts
167167-* store content script data
163163+[x] basic command bar to open pages
164164+[x] fix setting layout wrapping issue
165165+[] re-enable label previews, eg "Peek {key} - {address}"
166166+[] add support for per-feature hidden prefs (should be per-schema)
168167169168Features cleanup
170170-* enable/disable whole features
171171-* move feature list and enablement to storage
172172-* configurable default feature to load on app open (or none)
173173-* re-enable label previews, eg "Peek {key} - {address}"
169169+[] enable/disable individual slides, peeks
170170+[] enable/disable individual scripts
171171+[] visible-but-not-changeable settings should be per-schema
172172+[] add window open animation (to/from coords, time) to openWindow
173173+[] update slides impl to use animation again
174174+[] add window position persistence where it makes sense (settings, groups, cmd) and make configurable?
175175+[] add window size persistence where it makes sense (slides, peeks) and make configurable?
176176+[] global shortcuts vs app shortcuts
177177+[] openWindow option to not close on escape
178178+179179+Core cleanup
180180+[] move feature bg pages to iframes in core bg page?
174181175182Deployment
176176-* app updates
177177-* profiles?
178178- * per build prob fine for now
179179- * switcher
183183+[] app updates
184184+[] icons
185185+[] about page
180186187187+➡️ MVP (minimum viable preview)
188188+189189+-------
190190+191191+Install/load/address features
192192+[] manifests for feature metadata
193193+[] feature urls? eg peek://settings(/index.html)
194194+[] maybe fine to file urls for now, would have to migrate later
181195182182--> mvp (minimum viable preview)
196196+Feature level rpc?
197197+[] how can other features query history vs store and query locally?
198198+[] how to know what urls there are to open? publish paths in manifests?
199199+[] discover + execute cmds?
200200+[] need to be able to get/set properties from other "features"?
183201184184--------
185202186203Window layout
187187-* try with settings maybe?
204204+[] try with settings maybe?
188205189206Web Platform
190190-* need a web loader that's not full BrowserWindow?
191191-* sandboxing
192192-* blocklist
207207+[] need a web loader that's not full BrowserWindow?
208208+[] sandboxing
209209+[] blocklist
193210194211After that
195195-* schema migration
196196-* Extension model?
197197-* Ubiquity-like
198198-* Panorama-like
199199-* Tray
200200-* Scratchpad
201201-* Identity
202202-* Contacts
203203-* Collaboration
212212+[] schema migration
213213+[] Extension model?
214214+[] Ubiquity-like
215215+[] Panorama-like
216216+[] Tray
217217+[] Scratchpad
218218+[] Identity
219219+[] Contacts
220220+[] Collaboration
204221205222Further
206206-* Implement the Firefox "awesomebar" scoring and search algorithm so that Peek *learns* you
207207-* Extension model designed for web user agent user interface experimentation
208208-* Infinite lossless personal encrypted archive of web history
223223+[] Implement the Firefox "awesomebar" scoring and search algorithm so that Peek *learns* you
224224+[] Extension model designed for web user agent user interface experimentation
225225+[] Infinite lossless personal encrypted archive of web history
209226210227## Contribution
211228