experiments in a post-browser web
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(izui): promote content to child-content when opened from parent window

Extensions explicitly passing role:'content' bypassed the inference that
detects parentWindowId and assigns child-content. This meant ESC did
nothing for pages opened from groups (escPolicy returns 'nothing' for
content role in active session).

Fix: after role assignment, promote content → child-content when
parentWindowId is set. Background/extension-host windows have null
parentWindowId so they're unaffected.

+27 -2
+10
backend/electron/ipc.ts
··· 1861 1861 role = 'utility'; 1862 1862 } 1863 1863 } 1864 + 1865 + // Phase 2: Promote 'content' to 'child-content' when opened from a real parent. 1866 + // Extensions may explicitly pass role:'content' for web pages, but if the IPC 1867 + // sender is a visible window (not background/extension-host), the opened page 1868 + // is semantically a child — ESC should close it and return to the parent. 1869 + if (role === 'content' && parentWindowId != null) { 1870 + console.log(`[izui] Promoting content -> child-content (parent: ${parentWindowId})`); 1871 + role = 'child-content'; 1872 + } 1873 + 1864 1874 console.log('[izui] Window role:', role, 'for:', url); 1865 1875 1866 1876 const windowParams = {
+17 -2
peek-todo.md
··· 243 243 Browsers do not not acknowledge entities across pages. 244 244 If you load two pages about the band Tortoise, the browser only knows you loaded two different domains. 245 245 Peek's entity-centrism projects uplifts the apex of understanding from publishers, into the user agent. 246 + 246 247 The application identifies and records entities in the pages you load. 247 248 Aims for approximate equivalancy via confidence threshold scoring. 248 249 The expirement starts with coarse types, eg person, place, event, organization. ··· 255 256 Uses the sourcing data to infer links between entities. 256 257 Scores entities based on frecency of observation and interaction. 257 258 258 - - [ ] get people, places, dates/times/events 259 - - [ ] get meaningful numbers, and their label, eg phone 259 + Entity detection first take is using regexes against page content. 260 + Can experiment also with https://github.com/mozilla/readability which we'll need for other features as well. 261 + Can harvest microformats with https://github.com/microformats/microformats-parser, index as the relevant entity type. 262 + We'll experiment with offline NER machine learning models as well, including training micro-models here from the data we're collecting. 263 + 264 + We'll cast a wide net to start, recording everything. 265 + Over time, we'll learn more about our needs and the limits of this approach. 266 + Then we can design expiration policies, archiving, import/export, etc. 267 + But the default should be to never lose anything. 268 + 269 + Initial entities to harvest: 270 + 271 + - [ ] people and related info, eg homepage, nick, social, email 272 + - [ ] places 273 + - [ ] dates/times/events 274 + - [ ] meaningful numbers and their label, eg phone numbers, tracking numbers, booking numbers 260 275 261 276 - [ ] extract a table as csv 262 277 - [ ] layer outside of web page, and in between pages (eg event page -> event -> any calendar page)