···265265- look at web actions/intents/applets
266266- xml pipeline language
267267268268-## Roadmap
269269-270270-### v0.1 - MVPOC
271271-272272-minimum viable proof of concept.
273273-274274-question: would i use this?
275275-276276-Core moduluarization
277277-- [x] Modularize feature types, eyeing the extensibility model
278278-- [x] move settings window to features/settings
279279-280280-App cleanup
281281-- [x] main window vs settings
282282-- [x] change settings shortcut from global+esc to opt+comma
283283-284284-Window lifecycle
285285-- [x] modularize window open/close + hidden/visible
286286-- [x] update settings, peeks, slides, scripts
287287-- [x] hide/show window vs create fresh
288288-- [x] update slides impl to use openWindow (x, y)
289289-290290-Minimal Electron + Maximal Web
291291-- [x] move features to all web code, with a couple special apis
292292-- [x] make globalShortcut an api like openWindow
293293-294294-Create core app
295295-- [x] core settings
296296-- [x] registers other features
297297-298298-Move all features to web implementation
299299-- [x] move all possible code from the electron file to the web app
300300-- [x] move to web implemented globalShortcut
301301-- [x] move to web implemented openWindow
302302-- [x] move settings re-use code to utils lib
303303-- [x] ability to add clickable links in settings panes
304304-- [x] add links to Settings app
305305-- [x] per-feature settings ui
306306-307307-Core+settings
308308-- [x] move feature list and enablement to storage
309309-- [x] merge core + settings
310310-- [x] enable/disable features
311311-- [x] configurable default feature to load on app open (default to settings)
312312-- [x] wire up tray icon to pref
313313-- [x] tray click opens default app
314314-315315-Core/Basic
316316-- [x] basic command bar to open pages
317317-- [x] fix setting layout wrapping issue
318318-319319-Commands/messaging
320320-- [x] implement pubsub api
321321-- [x] way to tell feature to open default ui (if there is one)
322322-- [x] way tell feature to open its settings ui (if there is one)
323323-324324-Features cleanup
325325-- [x] enable/disable individual slides, peeks
326326-- [x] enable/disable individual scripts
327327-328328-Internal cleanup
329329-- [x] s/guid/id/
330330-- [x] fix label names, match to pwa manifest
331331-- [x] put readable log labels back in
332332-333333-### v0.2 - MVCP (minimum viable concept preview)
334334-335335-minimum viable concept preview.
336336-337337-question: can others try this?
338338-339339-Windows/system
340340-- [x] app showing in dock even tho disabled
341341-- [x] app not showing in tray, even tho enabled
342342-- [x] all api calls get source attached
343343-- [x] window cache s/custom/map/
344344-- [x] window cache all windows not just persistent
345345-- [x] window cache - evaluate key approach (use-case: apps need to identify windows they open)
346346-- [x] always return window id, so apps can manage it
347347-- [x] reimplement keys, so much easier for callers than managing ids
348348-- [x] account for number of renderer processes (seems double?)
349349-350350-redo window system to be more webby
351351-- [x] prototype window.open
352352-- [x] evaluate webContents.setWindowOpenHandler
353353-- [x] stop using openWindow to show pre-existing hidden windows?
354354- - [x] can track web windows locally
355355- - [x] can identify web windows on both sides (key/name)
356356- - [x] add new custom api for windows superpowers
357357-- [x] collapse window opening to span both approaches
358358-- [x] finish converting all openWindow to window.open
359359-360360-Feature lifecycle (un/install and reloads)
361361-- [x] feature unload/reload - init/uninit whole feature and window
362362-- [x] all api calls have address accessible by preload
363363-- [x] close other windows of feature, not just background window
364364-365365-Feature re-init/reload when toggled
366366-- [ ] track shortcuts by source, remove when unloaded
367367-- [ ] main: track window sources
368368-- [ ] main: close child windows when (before) closing source window
369369-370370-Shortcut lifecycle
371371-- [x] main process should handle multiple registrations correctly
372372-- [x] send/track feature id/origin w/ each registration
373373-- [ ] unreg shortcuts on unload
374374-375375-Window features
376376-- [x] add back in window features to window.open
377377- - [x] show/hide (keep alive)
378378- - [x] transparent
379379-- [ ] enable global window resize
380380-- [ ] add draggable as pref (draggable as default)
381381-382382-Features clean themselves up for lifecycle events
383383-- [ ] load/unload peeks when enabled/disabled
384384-- [ ] load/unload slides when enabled/disabled
385385-- [ ] load/unload scripts when enabled/disabled
386386-387387-Peeks/Slides
388388-- [x] only register shortcut and create window if a URL is configured
389389-- [ ] unreg shortcuts and close windows on peek un/configure
390390-- [ ] unreg shortcuts and close windows on slides un/configure
391391-392392-Cmd
393393-- [ ] update to latest Cmd extension code
394394-- [ ] app-scoped multi-window pages open
395395-396396-Settings
397397-- [x] fix window size
398398-- [x] transparency
399399-- [ ] core settings re-render on feature toggle, eg feature-settings link enabled
400400-- [ ] default position (size to screen)
401401-402402-Daily driver blockers
403403-- [x] debug vs profile(s) for app dir
404404-- [x] fix ESC not working right
405405-- [x] fix ESC not working in web content
406406-- [x] fix ESC not working right over lil-gui
407407-- [ ] ESC not working when a page doesn't load for any reason
408408-409409-Dev stuff
410410-- [x] figure out single devtools window if possible
411411-412412-Deployment
413413-- [ ] app updates
414414-- [ ] icons
415415-- [ ] about page
416416-417417-Demo reel
418418-- [ ] Peeks: translate, calendar, ai chat, currency conversion, everytimezone, tldraw
419419-- [ ] Slides: soundcloud, crypto prices, notepad, todo list
420420-- [ ] Scripts: eth price, weather change
421421-422422-Survival
423423-- [ ] Settings feature to blow away local datastore
424424-- [ ] Schema versioning
425425-- [ ] Export config to file
426426-- [ ] Import config from file
427427-428428-Tests
429429-- [ ] stacked defaults file
430430-- [ ] import file
431431-- [ ] run app-specific test suites (in app sub dir)
432432-- [ ] run full test suite
433433-434434-### v0.3 - extensibility / history
435435-436436-Backburner wishlist
437437-- [ ] window switching order algo
438438-439439-DX papercuts
440440-- [ ] why crashing on reload main
441441-- [ ] devtools stealing focus, put in backround
442442-- [ ] unified floating devtools
443443-444444-Window features
445445-- [x] add transparency support to api
446446-- [ ] distentangle transparency and content-fit
447447-- [ ] add the rest of that shit
448448-449449-App mgmt
450450-- [ ] uniform policy for feature id creation (lean on web/extensions)
451451-- [ ] collisions
452452-453453-App dev
454454-- [ ] app model - web? extension? P/IWA? other?
455455-- [ ] shared libs, eg utils
456456-- [ ] language: call them feature or apps? other? extensions? mods?
457457-458458-Focus vs not focused app mode
459459-- [ ] openWindow option to not close on escape (perma windows w/ controls)
460460-- [ ] app focus detection in shortcuts
461461-- [ ] separate global shortcuts from app shortcuts (eg quit)
462462-- [ ] all-window show/hide when doing global shortcuts while app unfocused
463463-464464-Install/load/address features
465465-- [x] built-in feature loading from origin not file
466466-- [x] app protocol? webextension? pwa? wtf?
467467-- [ ] combine settings and background in built-in features?
468468- - eg, features can have default ui + bg services?
469469-- [ ] pull from manifest (load/install via manifest with special key?)
470470-- [ ] manifests for feature metadata
471471-- [ ] feature urls? eg peek://settings(/index.html)
472472-- [ ] feature metadata in manifest
473473-- [ ] move feature bg pages to iframes in core bg page?
474474-475475-Settings
476476-- [ ] make it so start feature can be unset (eh)
477477-478478-Navigation
479479-- [ ] make izui stack manager (part of window mgr?)
480480-- [ ] esc stack: from feature settings back to core settings
481481-- [ ] add to izui stack (and ix w/ history?)
482482-483483-Window animations
484484-- [ ] add window open animation (to/from coords, time) to openWindow
485485-- [ ] update slides impl to use animation again
486486-487487-Window controls/persistence/etc (after perma window)
488488-- [ ] window position persistence where it makes sense (settings, groups, cmd) and make configurable?
489489-- [ ] window size persistence where it makes sense (slides, peeks) and make configurable?
490490-- [ ] window controls
491491-- [ ] window resizers
492492-493493-History
494494-- [ ] push navigations out through pubsub?
495495-- [ ] add history listener + storage to cmd
496496-- [ ] store central app action history
497497-- [ ] store content script data
498498-499499-Feature level rpc?
500500-- [ ] how can other features query history vs store and query locally?
501501-- [ ] how to know what urls there are to open? publish paths in manifests?
502502-- [ ] discover + execute cmds?
503503-- [ ] need to be able to get/set properties from other "features"?
504504-505505-Window layout
506506-- [ ] try with settings maybe?
507507-- [ ] tile/untile
508508-509509-Web Platform
510510-- [ ] need a web loader that's not full BrowserWindow?
511511-- [ ] sandboxing
512512-- [ ] blocklist
513513-514514-After that
515515-- [ ] schema migration
516516-- [ ] Extension model?
517517-- [ ] Ubiquity-like
518518-- [ ] Panorama-like
519519-- [ ] Tray
520520-- [ ] Scratchpad
521521-- [ ] Identity
522522-- [ ] Contacts
523523-- [ ] Collaboration
524524-525525-Further
526526-- [ ] Implement the Firefox "awesomebar" scoring and search algorithm so that Peek *learns* you
527527-- [ ] Extension model designed for web user agent user interface experimentation
528528-- [ ] Infinite lossless personal encrypted archive of web history
529529-530268## Contribution
531269532270- in proto stage
+259
TODO.md
···11+# Roadmap
22+33+## v0.2 - MVCP (minimum viable concept preview)
44+55+minimum viable concept preview.
66+77+question: can others try this?
88+99+Windows/system
1010+- [x] app showing in dock even tho disabled
1111+- [x] app not showing in tray, even tho enabled
1212+- [x] all api calls get source attached
1313+- [x] window cache s/custom/map/
1414+- [x] window cache all windows not just persistent
1515+- [x] window cache - evaluate key approach (use-case: apps need to identify windows they open)
1616+- [x] always return window id, so apps can manage it
1717+- [x] reimplement keys, so much easier for callers than managing ids
1818+- [x] account for number of renderer processes (seems double?)
1919+2020+redo window system to be more webby
2121+- [x] prototype window.open
2222+- [x] evaluate webContents.setWindowOpenHandler
2323+- [x] stop using openWindow to show pre-existing hidden windows?
2424+ - [x] can track web windows locally
2525+ - [x] can identify web windows on both sides (key/name)
2626+ - [x] add new custom api for windows superpowers
2727+- [x] collapse window opening to span both approaches
2828+- [x] finish converting all openWindow to window.open
2929+3030+Feature lifecycle (un/install and reloads)
3131+- [ ] feature unload/reload - init/uninit whole feature and window
3232+- [ ] track shortcuts by source, remove when unloaded
3333+- [ ] main: track window sources
3434+- [ ] main: close child windows when (before) closing source window
3535+- [ ] all features correctly load/unload from settings toggle
3636+3737+Shortcut lifecycle
3838+- [x] main process should handle multiple registrations correctly
3939+- [x] send/track feature id/origin w/ each registration
4040+- [ ] unreg shortcuts on unload
4141+4242+Window features
4343+- [x] add back in window features to window.open
4444+ - [x] show/hide (keep alive)
4545+ - [x] transparent
4646+- [ ] enable global window resize
4747+- [ ] add draggable as pref (draggable as default)
4848+4949+Features clean themselves up for lifecycle events
5050+- [ ] load/unload peeks when enabled/disabled
5151+- [ ] load/unload slides when enabled/disabled
5252+- [ ] load/unload scripts when enabled/disabled
5353+5454+Peeks/Slides
5555+- [x] only register shortcut and create window if a URL is configured
5656+- [ ] unreg shortcuts and close windows on peek un/configure
5757+- [ ] unreg shortcuts and close windows on slides un/configure
5858+5959+Cmd
6060+- [ ] update to latest Cmd extension code
6161+- [ ] app-scoped multi-window pages open
6262+6363+Settings
6464+- [x] fix window size
6565+- [x] transparency
6666+- [ ] core settings re-render on feature toggle, eg feature-settings link enabled
6767+- [ ] default position (size to screen)
6868+6969+Daily driver blockers
7070+- [x] debug vs profile(s) for app dir
7171+- [x] fix ESC not working right
7272+- [x] fix ESC not working in web content
7373+- [x] fix ESC not working right over lil-gui
7474+- [ ] ESC not working when a page doesn't load for any reason
7575+7676+Dev stuff
7777+- [x] figure out single devtools window if possible
7878+7979+Deployment
8080+- [ ] app updates
8181+- [ ] icons
8282+- [ ] about page
8383+8484+Demo reel
8585+- [ ] Peeks: translate, calendar, ai chat, currency conversion, everytimezone, tldraw
8686+- [ ] Slides: soundcloud, crypto prices, notepad, todo list
8787+- [ ] Scripts: eth price, weather change
8888+8989+Survival
9090+- [ ] Settings feature to blow away local datastore
9191+- [ ] Schema versioning
9292+- [ ] Export config to file
9393+- [ ] Import config from file
9494+9595+Tests
9696+- [ ] stacked defaults file
9797+- [ ] import file
9898+- [ ] run app-specific test suites (in app sub dir)
9999+- [ ] run full test suite
100100+101101+## Unprioritized future
102102+103103+Backburner wishlist
104104+- [ ] window switching order algo
105105+106106+DX papercuts
107107+- [ ] why crashing on reload main
108108+- [ ] devtools stealing focus, put in backround
109109+- [ ] unified floating devtools
110110+111111+Window features
112112+- [x] add transparency support to api
113113+- [ ] distentangle transparency and content-fit
114114+- [ ] add the rest of that shit
115115+116116+App mgmt
117117+- [ ] uniform policy for feature id creation (lean on web/extensions)
118118+- [ ] collisions
119119+120120+App dev
121121+- [ ] app model - web? extension? P/IWA? other?
122122+- [ ] shared libs, eg utils
123123+- [ ] language: call them feature or apps? other? extensions? mods?
124124+125125+Focus vs not focused app mode
126126+- [ ] openWindow option to not close on escape (perma windows w/ controls)
127127+- [ ] app focus detection in shortcuts
128128+- [ ] separate global shortcuts from app shortcuts (eg quit)
129129+- [ ] all-window show/hide when doing global shortcuts while app unfocused
130130+131131+Install/load/address features
132132+- [x] built-in feature loading from origin not file
133133+- [x] app protocol? webextension? pwa? wtf?
134134+- [ ] combine settings and background in built-in features?
135135+ - eg, features can have default ui + bg services?
136136+- [ ] pull from manifest (load/install via manifest with special key?)
137137+- [ ] manifests for feature metadata
138138+- [ ] feature urls? eg peek://settings(/index.html)
139139+- [ ] feature metadata in manifest
140140+- [ ] move feature bg pages to iframes in core bg page?
141141+142142+Settings
143143+- [ ] make it so start feature can be unset (eh)
144144+145145+Navigation
146146+- [ ] make izui stack manager (part of window mgr?)
147147+- [ ] esc stack: from feature settings back to core settings
148148+- [ ] add to izui stack (and ix w/ history?)
149149+150150+Window animations
151151+- [ ] add window open animation (to/from coords, time) to openWindow
152152+- [ ] update slides impl to use animation again
153153+154154+Window controls/persistence/etc (after perma window)
155155+- [ ] window position persistence where it makes sense (settings, groups, cmd) and make configurable?
156156+- [ ] window size persistence where it makes sense (slides, peeks) and make configurable?
157157+- [ ] window controls
158158+- [ ] window resizers
159159+160160+History
161161+- [ ] push navigations out through pubsub?
162162+- [ ] add history listener + storage to cmd
163163+- [ ] store central app action history
164164+- [ ] store content script data
165165+166166+Feature level rpc?
167167+- [ ] how can other features query history vs store and query locally?
168168+- [ ] how to know what urls there are to open? publish paths in manifests?
169169+- [ ] discover + execute cmds?
170170+- [ ] need to be able to get/set properties from other "features"?
171171+172172+Window layout
173173+- [ ] try with settings maybe?
174174+- [ ] tile/untile
175175+176176+Web Platform
177177+- [ ] need a web loader that's not full BrowserWindow?
178178+- [ ] sandboxing
179179+- [ ] blocklist
180180+181181+After that
182182+- [ ] schema migration
183183+- [ ] Extension model?
184184+- [ ] Ubiquity-like
185185+- [ ] Panorama-like
186186+- [ ] Tray
187187+- [ ] Scratchpad
188188+- [ ] Identity
189189+- [ ] Contacts
190190+- [ ] Collaboration
191191+192192+Further
193193+- [ ] Implement the Firefox "awesomebar" scoring and search algorithm so that Peek *learns* you
194194+- [ ] Extension model designed for web user agent user interface experimentation
195195+- [ ] Infinite lossless personal encrypted archive of web history
196196+197197+## ✅ v0.1 - MVPOC
198198+199199+minimum viable proof of concept.
200200+201201+question: would i use this?
202202+203203+Core moduluarization
204204+- [x] Modularize feature types, eyeing the extensibility model
205205+- [x] move settings window to features/settings
206206+207207+App cleanup
208208+- [x] main window vs settings
209209+- [x] change settings shortcut from global+esc to opt+comma
210210+211211+Window lifecycle
212212+- [x] modularize window open/close + hidden/visible
213213+- [x] update settings, peeks, slides, scripts
214214+- [x] hide/show window vs create fresh
215215+- [x] update slides impl to use openWindow (x, y)
216216+217217+Minimal Electron + Maximal Web
218218+- [x] move features to all web code, with a couple special apis
219219+- [x] make globalShortcut an api like openWindow
220220+221221+Create core app
222222+- [x] core settings
223223+- [x] registers other features
224224+225225+Move all features to web implementation
226226+- [x] move all possible code from the electron file to the web app
227227+- [x] move to web implemented globalShortcut
228228+- [x] move to web implemented openWindow
229229+- [x] move settings re-use code to utils lib
230230+- [x] ability to add clickable links in settings panes
231231+- [x] add links to Settings app
232232+- [x] per-feature settings ui
233233+234234+Core+settings
235235+- [x] move feature list and enablement to storage
236236+- [x] merge core + settings
237237+- [x] enable/disable features
238238+- [x] configurable default feature to load on app open (default to settings)
239239+- [x] wire up tray icon to pref
240240+- [x] tray click opens default app
241241+242242+Core/Basic
243243+- [x] basic command bar to open pages
244244+- [x] fix setting layout wrapping issue
245245+246246+Commands/messaging
247247+- [x] implement pubsub api
248248+- [x] way to tell feature to open default ui (if there is one)
249249+- [x] way tell feature to open its settings ui (if there is one)
250250+251251+Features cleanup
252252+- [x] enable/disable individual slides, peeks
253253+- [x] enable/disable individual scripts
254254+255255+Internal cleanup
256256+- [x] s/guid/id/
257257+- [x] fix label names, match to pwa manifest
258258+- [x] put readable log labels back in
259259+