playwriter 0.0.33 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/aria-snapshot.d.ts +68 -0
  2. package/dist/aria-snapshot.d.ts.map +1 -0
  3. package/dist/aria-snapshot.js +359 -0
  4. package/dist/aria-snapshot.js.map +1 -0
  5. package/dist/cdp-relay.d.ts.map +1 -1
  6. package/dist/cdp-relay.js +95 -5
  7. package/dist/cdp-relay.js.map +1 -1
  8. package/dist/cdp-session.d.ts +24 -3
  9. package/dist/cdp-session.d.ts.map +1 -1
  10. package/dist/cdp-session.js +23 -0
  11. package/dist/cdp-session.js.map +1 -1
  12. package/dist/debugger-api.md +4 -3
  13. package/dist/debugger.d.ts +4 -3
  14. package/dist/debugger.d.ts.map +1 -1
  15. package/dist/debugger.js +3 -1
  16. package/dist/debugger.js.map +1 -1
  17. package/dist/editor-api.md +2 -2
  18. package/dist/editor.d.ts +2 -2
  19. package/dist/editor.d.ts.map +1 -1
  20. package/dist/editor.js +1 -0
  21. package/dist/editor.js.map +1 -1
  22. package/dist/index.d.ts +8 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/mcp.d.ts.map +1 -1
  27. package/dist/mcp.js +151 -14
  28. package/dist/mcp.js.map +1 -1
  29. package/dist/mcp.test.js +340 -5
  30. package/dist/mcp.test.js.map +1 -1
  31. package/dist/protocol.d.ts +12 -1
  32. package/dist/protocol.d.ts.map +1 -1
  33. package/dist/react-source.d.ts +3 -3
  34. package/dist/react-source.d.ts.map +1 -1
  35. package/dist/react-source.js +3 -1
  36. package/dist/react-source.js.map +1 -1
  37. package/dist/scoped-fs.d.ts +94 -0
  38. package/dist/scoped-fs.d.ts.map +1 -0
  39. package/dist/scoped-fs.js +356 -0
  40. package/dist/scoped-fs.js.map +1 -0
  41. package/dist/styles-api.md +3 -3
  42. package/dist/styles.d.ts +3 -3
  43. package/dist/styles.d.ts.map +1 -1
  44. package/dist/styles.js +3 -1
  45. package/dist/styles.js.map +1 -1
  46. package/package.json +13 -13
  47. package/src/aria-snapshot.ts +446 -0
  48. package/src/assets/aria-labels-github-snapshot.txt +605 -0
  49. package/src/assets/aria-labels-github.png +0 -0
  50. package/src/assets/aria-labels-google-snapshot.txt +110 -0
  51. package/src/assets/aria-labels-google.png +0 -0
  52. package/src/assets/aria-labels-hacker-news-snapshot.txt +1023 -0
  53. package/src/assets/aria-labels-hacker-news.png +0 -0
  54. package/src/cdp-relay.ts +103 -5
  55. package/src/cdp-session.ts +50 -3
  56. package/src/debugger.ts +6 -4
  57. package/src/editor.ts +4 -3
  58. package/src/index.ts +8 -0
  59. package/src/mcp.test.ts +424 -5
  60. package/src/mcp.ts +242 -66
  61. package/src/prompt.md +209 -167
  62. package/src/protocol.ts +14 -1
  63. package/src/react-source.ts +5 -3
  64. package/src/scoped-fs.ts +411 -0
  65. package/src/styles.ts +5 -3
@@ -0,0 +1,1023 @@
1
+ - table [ref=e3]:
2
+ - rowgroup [ref=e4]:
3
+ - row "Hacker Newsnew | past | comments | ask | show | jobs | submit login" [ref=e5]:
4
+ - cell "Hacker Newsnew | past | comments | ask | show | jobs | submit login" [ref=e6]:
5
+ - table [ref=e7]:
6
+ - rowgroup [ref=e8]:
7
+ - row "Hacker Newsnew | past | comments | ask | show | jobs | submit login" [ref=e9]:
8
+ - cell [ref=e10]:
9
+ - link [ref=e11] [cursor=pointer]:
10
+ - /url: https://news.ycombinator.com
11
+ - img [ref=e12]
12
+ - cell "Hacker Newsnew | past | comments | ask | show | jobs | submit" [ref=e13]:
13
+ - generic [ref=e14]:
14
+ - link "Hacker News" [ref=e16] [cursor=pointer]:
15
+ - /url: news
16
+ - link "new" [ref=e17] [cursor=pointer]:
17
+ - /url: newest
18
+ - text: "|"
19
+ - link "past" [ref=e18] [cursor=pointer]:
20
+ - /url: front
21
+ - text: "|"
22
+ - link "comments" [ref=e19] [cursor=pointer]:
23
+ - /url: newcomments
24
+ - text: "|"
25
+ - link "ask" [ref=e20] [cursor=pointer]:
26
+ - /url: ask
27
+ - text: "|"
28
+ - link "show" [ref=e21] [cursor=pointer]:
29
+ - /url: show
30
+ - text: "|"
31
+ - link "jobs" [ref=e22] [cursor=pointer]:
32
+ - /url: jobs
33
+ - text: "|"
34
+ - link "submit" [ref=e23] [cursor=pointer]:
35
+ - /url: submit
36
+ - cell "login" [ref=e24]:
37
+ - link "login" [ref=e26] [cursor=pointer]:
38
+ - /url: login?goto=news
39
+ - row [ref=e27]
40
+ - row [ref=e28]:
41
+ - cell [ref=e29]:
42
+ - table [ref=e30]:
43
+ - rowgroup [ref=e31]:
44
+ - row "1. upvote Publish on your own site, syndicate elsewhere (indieweb.org)" [ref=e32]:
45
+ - cell "1." [ref=e33]
46
+ - cell "upvote" [ref=e34]:
47
+ - link "upvote" [ref=e36] [cursor=pointer]:
48
+ - /url: vote?id=46468600&how=up&goto=news
49
+ - generic "upvote" [ref=e37]
50
+ - cell "Publish on your own site, syndicate elsewhere (indieweb.org)" [ref=e38]:
51
+ - generic [ref=e39]:
52
+ - link "Publish on your own site, syndicate elsewhere" [ref=e40] [cursor=pointer]:
53
+ - /url: https://indieweb.org/POSSE#
54
+ - generic [ref=e41]:
55
+ - text: (
56
+ - link "indieweb.org" [ref=e42] [cursor=pointer]:
57
+ - /url: from?site=indieweb.org
58
+ - text: )
59
+ - row "822 points by 47thpresident 19 hours ago | hide | 186 comments" [ref=e43]:
60
+ - cell [ref=e44]
61
+ - cell "822 points by 47thpresident 19 hours ago | hide | 186 comments" [ref=e45]:
62
+ - generic [ref=e46]:
63
+ - text: 822 points by
64
+ - link "47thpresident" [ref=e47] [cursor=pointer]:
65
+ - /url: user?id=47thpresident
66
+ - generic "2026-01-02T19:48:25 1767383305" [ref=e48]:
67
+ - link "19 hours ago" [ref=e49] [cursor=pointer]:
68
+ - /url: item?id=46468600
69
+ - text: "|"
70
+ - link "hide" [ref=e50] [cursor=pointer]:
71
+ - /url: hide?id=46468600&goto=news
72
+ - text: "|"
73
+ - link "186 comments" [ref=e51] [cursor=pointer]:
74
+ - /url: item?id=46468600
75
+ - row [ref=e52]
76
+ - row "2. upvote Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e53]:
77
+ - cell "2." [ref=e54]
78
+ - cell "upvote" [ref=e55]:
79
+ - link "upvote" [ref=e57] [cursor=pointer]:
80
+ - /url: vote?id=46473348&how=up&goto=news
81
+ - generic "upvote" [ref=e58]
82
+ - cell "Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e59]:
83
+ - generic [ref=e60]:
84
+ - link "Trump says Venezuela’s Maduro captured after strikes" [ref=e61] [cursor=pointer]:
85
+ - /url: https://www.reuters.com/world/americas/loud-noises-heard-venezuela-capital-southern-area-without-electricity-2026-01-03/
86
+ - generic [ref=e62]:
87
+ - text: (
88
+ - link "reuters.com" [ref=e63] [cursor=pointer]:
89
+ - /url: from?site=reuters.com
90
+ - text: )
91
+ - row "695 points by jumpocelot 9 hours ago | hide | 1696 comments" [ref=e64]:
92
+ - cell [ref=e65]
93
+ - cell "695 points by jumpocelot 9 hours ago | hide | 1696 comments" [ref=e66]:
94
+ - generic [ref=e67]:
95
+ - text: 695 points by
96
+ - link "jumpocelot" [ref=e68] [cursor=pointer]:
97
+ - /url: user?id=jumpocelot
98
+ - generic "2026-01-03T06:35:21 1767422121" [ref=e69]:
99
+ - link "9 hours ago" [ref=e70] [cursor=pointer]:
100
+ - /url: item?id=46473348
101
+ - text: "|"
102
+ - link "hide" [ref=e71] [cursor=pointer]:
103
+ - /url: hide?id=46473348&goto=news
104
+ - text: "|"
105
+ - link "1696 comments" [ref=e72] [cursor=pointer]:
106
+ - /url: item?id=46473348
107
+ - row [ref=e73]
108
+ - row "3. upvote Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e74]:
109
+ - cell "3." [ref=e75]
110
+ - cell "upvote" [ref=e76]:
111
+ - link "upvote" [ref=e78] [cursor=pointer]:
112
+ - /url: vote?id=46469577&how=up&goto=news
113
+ - generic "upvote" [ref=e79]
114
+ - cell "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e80]:
115
+ - generic [ref=e81]:
116
+ - link "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger?" [ref=e82] [cursor=pointer]:
117
+ - /url: https://www.madebywindmill.com/tempi/blog/hbfs-bpm/
118
+ - generic [ref=e83]:
119
+ - text: (
120
+ - link "madebywindmill.com" [ref=e84] [cursor=pointer]:
121
+ - /url: from?site=madebywindmill.com
122
+ - text: )
123
+ - row "598 points by simonw 18 hours ago | hide | 98 comments" [ref=e85]:
124
+ - cell [ref=e86]
125
+ - cell "598 points by simonw 18 hours ago | hide | 98 comments" [ref=e87]:
126
+ - generic [ref=e88]:
127
+ - text: 598 points by
128
+ - link "simonw" [ref=e89] [cursor=pointer]:
129
+ - /url: user?id=simonw
130
+ - generic "2026-01-02T21:27:44 1767389264" [ref=e90]:
131
+ - link "18 hours ago" [ref=e91] [cursor=pointer]:
132
+ - /url: item?id=46469577
133
+ - text: "|"
134
+ - link "hide" [ref=e92] [cursor=pointer]:
135
+ - /url: hide?id=46469577&goto=news
136
+ - text: "|"
137
+ - link "98 comments" [ref=e93] [cursor=pointer]:
138
+ - /url: item?id=46469577
139
+ - row [ref=e94]
140
+ - row "4. upvote X-Clacks-Overhead (hleb.dev)" [ref=e95]:
141
+ - cell "4." [ref=e96]
142
+ - cell "upvote" [ref=e97]:
143
+ - link "upvote" [ref=e99] [cursor=pointer]:
144
+ - /url: vote?id=46475437&how=up&goto=news
145
+ - generic "upvote" [ref=e100]
146
+ - cell "X-Clacks-Overhead (hleb.dev)" [ref=e101]:
147
+ - generic [ref=e102]:
148
+ - link "X-Clacks-Overhead" [ref=e103] [cursor=pointer]:
149
+ - /url: https://hleb.dev/post/x-clacks-overhead/
150
+ - generic [ref=e104]:
151
+ - text: (
152
+ - link "hleb.dev" [ref=e105] [cursor=pointer]:
153
+ - /url: from?site=hleb.dev
154
+ - text: )
155
+ - row "31 points by hleb_dev 4 hours ago | hide | 8 comments" [ref=e106]:
156
+ - cell [ref=e107]
157
+ - cell "31 points by hleb_dev 4 hours ago | hide | 8 comments" [ref=e108]:
158
+ - generic [ref=e109]:
159
+ - text: 31 points by
160
+ - link "hleb_dev" [ref=e110] [cursor=pointer]:
161
+ - /url: user?id=hleb_dev
162
+ - generic "2026-01-03T11:37:07 1767440227" [ref=e111]:
163
+ - link "4 hours ago" [ref=e112] [cursor=pointer]:
164
+ - /url: item?id=46475437
165
+ - text: "|"
166
+ - link "hide" [ref=e113] [cursor=pointer]:
167
+ - /url: hide?id=46475437&goto=news
168
+ - text: "|"
169
+ - link "8 comments" [ref=e114] [cursor=pointer]:
170
+ - /url: item?id=46475437
171
+ - row [ref=e115]
172
+ - 'row "5. upvote Of Boot Vectors and Double Glitches: Bypassing RP2350''s Secure Boot (ccc.de)" [ref=e116]':
173
+ - cell "5." [ref=e117]
174
+ - cell "upvote" [ref=e118]:
175
+ - link "upvote" [ref=e120] [cursor=pointer]:
176
+ - /url: vote?id=46403062&how=up&goto=news
177
+ - generic "upvote" [ref=e121]
178
+ - 'cell "Of Boot Vectors and Double Glitches: Bypassing RP2350''s Secure Boot (ccc.de)" [ref=e122]':
179
+ - generic [ref=e123]:
180
+ - 'link "Of Boot Vectors and Double Glitches: Bypassing RP2350''s Secure Boot" [ref=e124] [cursor=pointer]':
181
+ - /url: https://streaming.media.ccc.de/39c3/relive/2149
182
+ - generic [ref=e125]:
183
+ - text: (
184
+ - link "ccc.de" [ref=e126] [cursor=pointer]:
185
+ - /url: from?site=ccc.de
186
+ - text: )
187
+ - row "106 points by aberoham 12 hours ago | hide | 11 comments" [ref=e127]:
188
+ - cell [ref=e128]
189
+ - cell "106 points by aberoham 12 hours ago | hide | 11 comments" [ref=e129]:
190
+ - generic [ref=e130]:
191
+ - text: 106 points by
192
+ - link "aberoham" [ref=e131] [cursor=pointer]:
193
+ - /url: user?id=aberoham
194
+ - generic "2025-12-27T16:49:39 1766854179" [ref=e132]:
195
+ - link "12 hours ago" [ref=e133] [cursor=pointer]:
196
+ - /url: item?id=46403062
197
+ - text: "|"
198
+ - link "hide" [ref=e134] [cursor=pointer]:
199
+ - /url: hide?id=46403062&goto=news
200
+ - text: "|"
201
+ - link "11 comments" [ref=e135] [cursor=pointer]:
202
+ - /url: item?id=46403062
203
+ - row [ref=e136]
204
+ - row "6. upvote IPv6 just turned 30 and still hasn't taken over the world (theregister.com)" [ref=e137]:
205
+ - cell "6." [ref=e138]
206
+ - cell "upvote" [ref=e139]:
207
+ - link "upvote" [ref=e141] [cursor=pointer]:
208
+ - /url: vote?id=46465327&how=up&goto=news
209
+ - generic "upvote" [ref=e142]
210
+ - cell "IPv6 just turned 30 and still hasn't taken over the world (theregister.com)" [ref=e143]:
211
+ - generic [ref=e144]:
212
+ - link "IPv6 just turned 30 and still hasn't taken over the world" [ref=e145] [cursor=pointer]:
213
+ - /url: https://www.theregister.com/2025/12/31/ipv6_at_30/
214
+ - generic [ref=e146]:
215
+ - text: (
216
+ - link "theregister.com" [ref=e147] [cursor=pointer]:
217
+ - /url: from?site=theregister.com
218
+ - text: )
219
+ - row "442 points by Brajeshwar 1 day ago | hide | 887 comments" [ref=e148]:
220
+ - cell [ref=e149]
221
+ - cell "442 points by Brajeshwar 1 day ago | hide | 887 comments" [ref=e150]:
222
+ - generic [ref=e151]:
223
+ - text: 442 points by
224
+ - link "Brajeshwar" [ref=e152] [cursor=pointer]:
225
+ - /url: user?id=Brajeshwar
226
+ - generic "2026-01-02T14:55:09 1767365709" [ref=e153]:
227
+ - link "1 day ago" [ref=e154] [cursor=pointer]:
228
+ - /url: item?id=46465327
229
+ - text: "|"
230
+ - link "hide" [ref=e155] [cursor=pointer]:
231
+ - /url: hide?id=46465327&goto=news
232
+ - text: "|"
233
+ - link "887 comments" [ref=e156] [cursor=pointer]:
234
+ - /url: item?id=46465327
235
+ - row [ref=e157]
236
+ - row "7. upvote A Beginner's Two-Component Crystal-Style Wi-Fi Detector (siliconjunction.wordpress.com)" [ref=e158]:
237
+ - cell "7." [ref=e159]
238
+ - cell "upvote" [ref=e160]:
239
+ - link "upvote" [ref=e162] [cursor=pointer]:
240
+ - /url: vote?id=46443730&how=up&goto=news
241
+ - generic "upvote" [ref=e163]
242
+ - cell "A Beginner's Two-Component Crystal-Style Wi-Fi Detector (siliconjunction.wordpress.com)" [ref=e164]:
243
+ - generic [ref=e165]:
244
+ - link "A Beginner's Two-Component Crystal-Style Wi-Fi Detector" [ref=e166] [cursor=pointer]:
245
+ - /url: https://siliconjunction.wordpress.com/2025/12/12/a-beginners-two-component-crystal-style-wi-fi-detector/
246
+ - generic [ref=e167]:
247
+ - text: (
248
+ - link "siliconjunction.wordpress.com" [ref=e168] [cursor=pointer]:
249
+ - /url: from?site=siliconjunction.wordpress.com
250
+ - text: )
251
+ - row "75 points by jensgk 10 hours ago | hide | 27 comments" [ref=e169]:
252
+ - cell [ref=e170]
253
+ - cell "75 points by jensgk 10 hours ago | hide | 27 comments" [ref=e171]:
254
+ - generic [ref=e172]:
255
+ - text: 75 points by
256
+ - link "jensgk" [ref=e173] [cursor=pointer]:
257
+ - /url: user?id=jensgk
258
+ - generic "2025-12-31T13:00:42 1767186042" [ref=e174]:
259
+ - link "10 hours ago" [ref=e175] [cursor=pointer]:
260
+ - /url: item?id=46443730
261
+ - text: "|"
262
+ - link "hide" [ref=e176] [cursor=pointer]:
263
+ - /url: hide?id=46443730&goto=news
264
+ - text: "|"
265
+ - link "27 comments" [ref=e177] [cursor=pointer]:
266
+ - /url: item?id=46443730
267
+ - row [ref=e178]
268
+ - row "8. ParadeDB (YC S23) Is Hiring Database Engineers (paradedb.notion.site)" [ref=e179]:
269
+ - cell "8." [ref=e180]
270
+ - cell [ref=e181]:
271
+ - img [ref=e182]
272
+ - cell "ParadeDB (YC S23) Is Hiring Database Engineers (paradedb.notion.site)" [ref=e183]:
273
+ - generic [ref=e184]:
274
+ - link "ParadeDB (YC S23) Is Hiring Database Engineers" [ref=e185] [cursor=pointer]:
275
+ - /url: https://paradedb.notion.site/?p=172ea4ce9deb80898ef5d5097bd65544&pm=s
276
+ - generic [ref=e186]:
277
+ - text: (
278
+ - link "paradedb.notion.site" [ref=e187] [cursor=pointer]:
279
+ - /url: from?site=paradedb.notion.site
280
+ - text: )
281
+ - row "1 hour ago | hide" [ref=e188]:
282
+ - cell [ref=e189]
283
+ - cell "1 hour ago | hide" [ref=e190]:
284
+ - generic "2026-01-03T13:53:34 1767448414" [ref=e191]:
285
+ - link "1 hour ago" [ref=e192] [cursor=pointer]:
286
+ - /url: item?id=46476636
287
+ - text: "|"
288
+ - link "hide" [ref=e193] [cursor=pointer]:
289
+ - /url: hide?id=46476636&goto=news
290
+ - row [ref=e194]
291
+ - 'row "9. upvote Tomasf/Cadova: Swift DSL for parametric 3D modeling (github.com/tomasf)" [ref=e195]':
292
+ - cell "9." [ref=e196]
293
+ - cell "upvote" [ref=e197]:
294
+ - link "upvote" [ref=e199] [cursor=pointer]:
295
+ - /url: vote?id=46442624&how=up&goto=news
296
+ - generic "upvote" [ref=e200]
297
+ - 'cell "Tomasf/Cadova: Swift DSL for parametric 3D modeling (github.com/tomasf)" [ref=e201]':
298
+ - generic [ref=e202]:
299
+ - 'link "Tomasf/Cadova: Swift DSL for parametric 3D modeling" [ref=e203] [cursor=pointer]':
300
+ - /url: https://github.com/tomasf/Cadova
301
+ - generic [ref=e204]:
302
+ - text: (
303
+ - link "github.com/tomasf" [ref=e205] [cursor=pointer]:
304
+ - /url: from?site=github.com/tomasf
305
+ - text: )
306
+ - row "44 points by bdcravens 7 hours ago | hide | 4 comments" [ref=e206]:
307
+ - cell [ref=e207]
308
+ - cell "44 points by bdcravens 7 hours ago | hide | 4 comments" [ref=e208]:
309
+ - generic [ref=e209]:
310
+ - text: 44 points by
311
+ - link "bdcravens" [ref=e210] [cursor=pointer]:
312
+ - /url: user?id=bdcravens
313
+ - generic "2025-12-31T09:16:58 1767172618" [ref=e211]:
314
+ - link "7 hours ago" [ref=e212] [cursor=pointer]:
315
+ - /url: item?id=46442624
316
+ - text: "|"
317
+ - link "hide" [ref=e213] [cursor=pointer]:
318
+ - /url: hide?id=46442624&goto=news
319
+ - text: "|"
320
+ - link "4 comments" [ref=e214] [cursor=pointer]:
321
+ - /url: item?id=46442624
322
+ - row [ref=e215]
323
+ - row "10. upvote Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e216]:
324
+ - cell "10." [ref=e217]
325
+ - cell "upvote" [ref=e218]:
326
+ - link "upvote" [ref=e220] [cursor=pointer]:
327
+ - /url: vote?id=46475296&how=up&goto=news
328
+ - generic "upvote" [ref=e221]
329
+ - cell "Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e222]:
330
+ - generic [ref=e223]:
331
+ - link "Profiling with Ctrl-C (2024)" [ref=e224] [cursor=pointer]:
332
+ - /url: https://yosefk.com/blog/profiling-with-ctrl-c.html
333
+ - generic [ref=e225]:
334
+ - text: (
335
+ - link "yosefk.com" [ref=e226] [cursor=pointer]:
336
+ - /url: from?site=yosefk.com
337
+ - text: )
338
+ - row "20 points by hun3 4 hours ago | hide | 2 comments" [ref=e227]:
339
+ - cell [ref=e228]
340
+ - cell "20 points by hun3 4 hours ago | hide | 2 comments" [ref=e229]:
341
+ - generic [ref=e230]:
342
+ - text: 20 points by
343
+ - link "hun3" [ref=e231] [cursor=pointer]:
344
+ - /url: user?id=hun3
345
+ - generic "2026-01-03T11:13:48 1767438828" [ref=e232]:
346
+ - link "4 hours ago" [ref=e233] [cursor=pointer]:
347
+ - /url: item?id=46475296
348
+ - text: "|"
349
+ - link "hide" [ref=e234] [cursor=pointer]:
350
+ - /url: hide?id=46475296&goto=news
351
+ - text: "|"
352
+ - link "2 comments" [ref=e235] [cursor=pointer]:
353
+ - /url: item?id=46475296
354
+ - row [ref=e236]
355
+ - row "11. upvote 2026 will be my year of the Linux desktop (xeiaso.net)" [ref=e237]:
356
+ - cell "11." [ref=e238]
357
+ - cell "upvote" [ref=e239]:
358
+ - link "upvote" [ref=e241] [cursor=pointer]:
359
+ - /url: vote?id=46471199&how=up&goto=news
360
+ - generic "upvote" [ref=e242]
361
+ - cell "2026 will be my year of the Linux desktop (xeiaso.net)" [ref=e243]:
362
+ - generic [ref=e244]:
363
+ - link "2026 will be my year of the Linux desktop" [ref=e245] [cursor=pointer]:
364
+ - /url: https://xeiaso.net/notes/2026/year-linux-desktop/
365
+ - generic [ref=e246]:
366
+ - text: (
367
+ - link "xeiaso.net" [ref=e247] [cursor=pointer]:
368
+ - /url: from?site=xeiaso.net
369
+ - text: )
370
+ - row "634 points by todsacerdoti 15 hours ago | hide | 468 comments" [ref=e248]:
371
+ - cell [ref=e249]
372
+ - cell "634 points by todsacerdoti 15 hours ago | hide | 468 comments" [ref=e250]:
373
+ - generic [ref=e251]:
374
+ - text: 634 points by
375
+ - link "todsacerdoti" [ref=e252] [cursor=pointer]:
376
+ - /url: user?id=todsacerdoti
377
+ - generic "2026-01-03T00:15:47 1767399347" [ref=e253]:
378
+ - link "15 hours ago" [ref=e254] [cursor=pointer]:
379
+ - /url: item?id=46471199
380
+ - text: "|"
381
+ - link "hide" [ref=e255] [cursor=pointer]:
382
+ - /url: hide?id=46471199&goto=news
383
+ - text: "|"
384
+ - link "468 comments" [ref=e256] [cursor=pointer]:
385
+ - /url: item?id=46471199
386
+ - row [ref=e257]
387
+ - row "12. upvote Clicks Communicator (clicksphone.com)" [ref=e258]:
388
+ - cell "12." [ref=e259]
389
+ - cell "upvote" [ref=e260]:
390
+ - link "upvote" [ref=e262] [cursor=pointer]:
391
+ - /url: vote?id=46467057&how=up&goto=news
392
+ - generic "upvote" [ref=e263]
393
+ - cell "Clicks Communicator (clicksphone.com)" [ref=e264]:
394
+ - generic [ref=e265]:
395
+ - link "Clicks Communicator" [ref=e266] [cursor=pointer]:
396
+ - /url: https://www.clicksphone.com/en/communicator
397
+ - generic [ref=e267]:
398
+ - text: (
399
+ - link "clicksphone.com" [ref=e268] [cursor=pointer]:
400
+ - /url: from?site=clicksphone.com
401
+ - text: )
402
+ - row "368 points by microflash 22 hours ago | hide | 228 comments" [ref=e269]:
403
+ - cell [ref=e270]
404
+ - cell "368 points by microflash 22 hours ago | hide | 228 comments" [ref=e271]:
405
+ - generic [ref=e272]:
406
+ - text: 368 points by
407
+ - link "microflash" [ref=e273] [cursor=pointer]:
408
+ - /url: user?id=microflash
409
+ - generic "2026-01-02T17:22:04 1767374524" [ref=e274]:
410
+ - link "22 hours ago" [ref=e275] [cursor=pointer]:
411
+ - /url: item?id=46467057
412
+ - text: "|"
413
+ - link "hide" [ref=e276] [cursor=pointer]:
414
+ - /url: hide?id=46467057&goto=news
415
+ - text: "|"
416
+ - link "228 comments" [ref=e277] [cursor=pointer]:
417
+ - /url: item?id=46467057
418
+ - row [ref=e278]
419
+ - 'row "13. upvote Ask HN: Who is hiring? (January 2026)" [ref=e279]':
420
+ - cell "13." [ref=e280]
421
+ - cell "upvote" [ref=e281]:
422
+ - link "upvote" [ref=e283] [cursor=pointer]:
423
+ - /url: vote?id=46466074&how=up&goto=news
424
+ - generic "upvote" [ref=e284]
425
+ - 'cell "Ask HN: Who is hiring? (January 2026)" [ref=e285]':
426
+ - 'link "Ask HN: Who is hiring? (January 2026)" [ref=e287] [cursor=pointer]':
427
+ - /url: item?id=46466074
428
+ - row "309 points by whoishiring 23 hours ago | hide | 190 comments" [ref=e288]:
429
+ - cell [ref=e289]
430
+ - cell "309 points by whoishiring 23 hours ago | hide | 190 comments" [ref=e290]:
431
+ - generic [ref=e291]:
432
+ - text: 309 points by
433
+ - link "whoishiring" [ref=e292] [cursor=pointer]:
434
+ - /url: user?id=whoishiring
435
+ - generic "2026-01-02T16:00:42 1767369642" [ref=e293]:
436
+ - link "23 hours ago" [ref=e294] [cursor=pointer]:
437
+ - /url: item?id=46466074
438
+ - text: "|"
439
+ - link "hide" [ref=e295] [cursor=pointer]:
440
+ - /url: hide?id=46466074&goto=news
441
+ - text: "|"
442
+ - link "190 comments" [ref=e296] [cursor=pointer]:
443
+ - /url: item?id=46466074
444
+ - row [ref=e297]
445
+ - row "14. upvote How Smell Guides Our Inner World (quantamagazine.org)" [ref=e298]:
446
+ - cell "14." [ref=e299]
447
+ - cell "upvote" [ref=e300]:
448
+ - link "upvote" [ref=e302] [cursor=pointer]:
449
+ - /url: vote?id=46417500&how=up&goto=news
450
+ - generic "upvote" [ref=e303]
451
+ - cell "How Smell Guides Our Inner World (quantamagazine.org)" [ref=e304]:
452
+ - generic [ref=e305]:
453
+ - link "How Smell Guides Our Inner World" [ref=e306] [cursor=pointer]:
454
+ - /url: https://www.quantamagazine.org/how-smell-guides-our-inner-world-20250703/
455
+ - generic [ref=e307]:
456
+ - text: (
457
+ - link "quantamagazine.org" [ref=e308] [cursor=pointer]:
458
+ - /url: from?site=quantamagazine.org
459
+ - text: )
460
+ - row "24 points by anarbadalov 8 hours ago | hide | 3 comments" [ref=e309]:
461
+ - cell [ref=e310]
462
+ - cell "24 points by anarbadalov 8 hours ago | hide | 3 comments" [ref=e311]:
463
+ - generic [ref=e312]:
464
+ - text: 24 points by
465
+ - link "anarbadalov" [ref=e313] [cursor=pointer]:
466
+ - /url: user?id=anarbadalov
467
+ - generic "2025-12-29T04:35:32 1766982932" [ref=e314]:
468
+ - link "8 hours ago" [ref=e315] [cursor=pointer]:
469
+ - /url: item?id=46417500
470
+ - text: "|"
471
+ - link "hide" [ref=e316] [cursor=pointer]:
472
+ - /url: hide?id=46417500&goto=news
473
+ - text: "|"
474
+ - link "3 comments" [ref=e317] [cursor=pointer]:
475
+ - /url: item?id=46417500
476
+ - row [ref=e318]
477
+ - row "15. upvote Linux kernel security work (kroah.com)" [ref=e319]:
478
+ - cell "15." [ref=e320]
479
+ - cell "upvote" [ref=e321]:
480
+ - link "upvote" [ref=e323] [cursor=pointer]:
481
+ - /url: vote?id=46469623&how=up&goto=news
482
+ - generic "upvote" [ref=e324]
483
+ - cell "Linux kernel security work (kroah.com)" [ref=e325]:
484
+ - generic [ref=e326]:
485
+ - link "Linux kernel security work" [ref=e327] [cursor=pointer]:
486
+ - /url: http://www.kroah.com/log/blog/2026/01/02/linux-kernel-security-work/
487
+ - generic [ref=e328]:
488
+ - text: (
489
+ - link "kroah.com" [ref=e329] [cursor=pointer]:
490
+ - /url: from?site=kroah.com
491
+ - text: )
492
+ - row "132 points by chmaynard 18 hours ago | hide | 57 comments" [ref=e330]:
493
+ - cell [ref=e331]
494
+ - cell "132 points by chmaynard 18 hours ago | hide | 57 comments" [ref=e332]:
495
+ - generic [ref=e333]:
496
+ - text: 132 points by
497
+ - link "chmaynard" [ref=e334] [cursor=pointer]:
498
+ - /url: user?id=chmaynard
499
+ - generic "2026-01-02T21:31:34 1767389494" [ref=e335]:
500
+ - link "18 hours ago" [ref=e336] [cursor=pointer]:
501
+ - /url: item?id=46469623
502
+ - text: "|"
503
+ - link "hide" [ref=e337] [cursor=pointer]:
504
+ - /url: hide?id=46469623&goto=news
505
+ - text: "|"
506
+ - link "57 comments" [ref=e338] [cursor=pointer]:
507
+ - /url: item?id=46469623
508
+ - row [ref=e339]
509
+ - row "16. upvote UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e340]:
510
+ - cell "16." [ref=e341]
511
+ - cell "upvote" [ref=e342]:
512
+ - link "upvote" [ref=e344] [cursor=pointer]:
513
+ - /url: vote?id=46442293&how=up&goto=news
514
+ - generic "upvote" [ref=e345]
515
+ - cell "UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e346]:
516
+ - generic [ref=e347]:
517
+ - link "UK company sends factory with 1,000C furnace into space" [ref=e348] [cursor=pointer]:
518
+ - /url: https://www.bbc.co.uk/news/articles/c62vx0pgyrgo
519
+ - generic [ref=e349]:
520
+ - text: (
521
+ - link "bbc.co.uk" [ref=e350] [cursor=pointer]:
522
+ - /url: from?site=bbc.co.uk
523
+ - text: )
524
+ - row "84 points by vekerdyb 13 hours ago | hide | 41 comments" [ref=e351]:
525
+ - cell [ref=e352]
526
+ - cell "84 points by vekerdyb 13 hours ago | hide | 41 comments" [ref=e353]:
527
+ - generic [ref=e354]:
528
+ - text: 84 points by
529
+ - link "vekerdyb" [ref=e355] [cursor=pointer]:
530
+ - /url: user?id=vekerdyb
531
+ - generic "2025-12-31T08:04:30 1767168270" [ref=e356]:
532
+ - link "13 hours ago" [ref=e357] [cursor=pointer]:
533
+ - /url: item?id=46442293
534
+ - text: "|"
535
+ - link "hide" [ref=e358] [cursor=pointer]:
536
+ - /url: hide?id=46442293&goto=news
537
+ - text: "|"
538
+ - link "41 comments" [ref=e359] [cursor=pointer]:
539
+ - /url: item?id=46442293
540
+ - row [ref=e360]
541
+ - 'row "17. upvote Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e361]':
542
+ - cell "17." [ref=e362]
543
+ - cell "upvote" [ref=e363]:
544
+ - link "upvote" [ref=e365] [cursor=pointer]:
545
+ - /url: vote?id=46421045&how=up&goto=news
546
+ - generic "upvote" [ref=e366]
547
+ - 'cell "Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e367]':
548
+ - generic [ref=e368]:
549
+ - 'link "Show HN: The ASCII Side of the Moon" [ref=e369] [cursor=pointer]':
550
+ - /url: https://aleyan.com/projects/ascii-side-of-the-moon/?lat=32.72&lon=-117.16&date=2025-12-29T14%3A24Z
551
+ - generic [ref=e370]:
552
+ - text: (
553
+ - link "aleyan.com" [ref=e371] [cursor=pointer]:
554
+ - /url: from?site=aleyan.com
555
+ - text: )
556
+ - row "16 points by aleyan 4 hours ago | hide | 1 comment" [ref=e372]:
557
+ - cell [ref=e373]
558
+ - cell "16 points by aleyan 4 hours ago | hide | 1 comment" [ref=e374]:
559
+ - generic [ref=e375]:
560
+ - text: 16 points by
561
+ - link "aleyan" [ref=e376] [cursor=pointer]:
562
+ - /url: user?id=aleyan
563
+ - generic "2025-12-29T14:24:08 1767018248" [ref=e377]:
564
+ - link "4 hours ago" [ref=e378] [cursor=pointer]:
565
+ - /url: item?id=46421045
566
+ - text: "|"
567
+ - link "hide" [ref=e379] [cursor=pointer]:
568
+ - /url: hide?id=46421045&goto=news
569
+ - text: "|"
570
+ - link "1 comment" [ref=e380] [cursor=pointer]:
571
+ - /url: item?id=46421045
572
+ - row [ref=e381]
573
+ - row "18. upvote Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e382]:
574
+ - cell "18." [ref=e383]
575
+ - cell "upvote" [ref=e384]:
576
+ - link "upvote" [ref=e386] [cursor=pointer]:
577
+ - /url: vote?id=46468517&how=up&goto=news
578
+ - generic "upvote" [ref=e387]
579
+ - cell "Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e388]:
580
+ - generic [ref=e389]:
581
+ - link "Jank Lang Hit Alpha" [ref=e390] [cursor=pointer]:
582
+ - /url: https://github.com/jank-lang/jank
583
+ - generic [ref=e391]:
584
+ - text: (
585
+ - link "github.com/jank-lang" [ref=e392] [cursor=pointer]:
586
+ - /url: from?site=github.com/jank-lang
587
+ - text: )
588
+ - row "203 points by makemethrowaway 19 hours ago | hide | 27 comments" [ref=e393]:
589
+ - cell [ref=e394]
590
+ - cell "203 points by makemethrowaway 19 hours ago | hide | 27 comments" [ref=e395]:
591
+ - generic [ref=e396]:
592
+ - text: 203 points by
593
+ - link "makemethrowaway" [ref=e397] [cursor=pointer]:
594
+ - /url: user?id=makemethrowaway
595
+ - generic "2026-01-02T19:39:38 1767382778" [ref=e398]:
596
+ - link "19 hours ago" [ref=e399] [cursor=pointer]:
597
+ - /url: item?id=46468517
598
+ - text: "|"
599
+ - link "hide" [ref=e400] [cursor=pointer]:
600
+ - /url: hide?id=46468517&goto=news
601
+ - text: "|"
602
+ - link "27 comments" [ref=e401] [cursor=pointer]:
603
+ - /url: item?id=46468517
604
+ - row [ref=e402]
605
+ - row "19. upvote A Basic Just-In-Time Compiler (2015) (nullprogram.com)" [ref=e403]:
606
+ - cell "19." [ref=e404]
607
+ - cell "upvote" [ref=e405]:
608
+ - link "upvote" [ref=e407] [cursor=pointer]:
609
+ - /url: vote?id=46471712&how=up&goto=news
610
+ - generic "upvote" [ref=e408]
611
+ - cell "A Basic Just-In-Time Compiler (2015) (nullprogram.com)" [ref=e409]:
612
+ - generic [ref=e410]:
613
+ - link "A Basic Just-In-Time Compiler (2015)" [ref=e411] [cursor=pointer]:
614
+ - /url: https://nullprogram.com/blog/2015/03/19/
615
+ - generic [ref=e412]:
616
+ - text: (
617
+ - link "nullprogram.com" [ref=e413] [cursor=pointer]:
618
+ - /url: from?site=nullprogram.com
619
+ - text: )
620
+ - row "79 points by ibobev 14 hours ago | hide | 16 comments" [ref=e414]:
621
+ - cell [ref=e415]
622
+ - cell "79 points by ibobev 14 hours ago | hide | 16 comments" [ref=e416]:
623
+ - generic [ref=e417]:
624
+ - text: 79 points by
625
+ - link "ibobev" [ref=e418] [cursor=pointer]:
626
+ - /url: user?id=ibobev
627
+ - generic "2026-01-03T01:18:07 1767403087" [ref=e419]:
628
+ - link "14 hours ago" [ref=e420] [cursor=pointer]:
629
+ - /url: item?id=46471712
630
+ - text: "|"
631
+ - link "hide" [ref=e421] [cursor=pointer]:
632
+ - /url: hide?id=46471712&goto=news
633
+ - text: "|"
634
+ - link "16 comments" [ref=e422] [cursor=pointer]:
635
+ - /url: item?id=46471712
636
+ - row [ref=e423]
637
+ - 'row "20. upvote IQuest-Coder: A new open-source code model beats Claude Sonnet 4.5 and GPT 5.1 [pdf] (github.com/iquestlab)" [ref=e424]':
638
+ - cell "20." [ref=e425]
639
+ - cell "upvote" [ref=e426]:
640
+ - link "upvote" [ref=e428] [cursor=pointer]:
641
+ - /url: vote?id=46472667&how=up&goto=news
642
+ - generic "upvote" [ref=e429]
643
+ - 'cell "IQuest-Coder: A new open-source code model beats Claude Sonnet 4.5 and GPT 5.1 [pdf] (github.com/iquestlab)" [ref=e430]':
644
+ - generic [ref=e431]:
645
+ - 'link "IQuest-Coder: A new open-source code model beats Claude Sonnet 4.5 and GPT 5.1 [pdf]" [ref=e432] [cursor=pointer]':
646
+ - /url: https://github.com/IQuestLab/IQuest-Coder-V1/blob/main/papers/IQuest_Coder_Technical_Report.pdf
647
+ - generic [ref=e433]:
648
+ - text: (
649
+ - link "github.com/iquestlab" [ref=e434] [cursor=pointer]:
650
+ - /url: from?site=github.com/iquestlab
651
+ - text: )
652
+ - row "116 points by shenli3514 11 hours ago | hide | 35 comments" [ref=e435]:
653
+ - cell [ref=e436]
654
+ - cell "116 points by shenli3514 11 hours ago | hide | 35 comments" [ref=e437]:
655
+ - generic [ref=e438]:
656
+ - text: 116 points by
657
+ - link "shenli3514" [ref=e439] [cursor=pointer]:
658
+ - /url: user?id=shenli3514
659
+ - generic "2026-01-03T04:01:03 1767412863" [ref=e440]:
660
+ - link "11 hours ago" [ref=e441] [cursor=pointer]:
661
+ - /url: item?id=46472667
662
+ - text: "|"
663
+ - link "hide" [ref=e442] [cursor=pointer]:
664
+ - /url: hide?id=46472667&goto=news
665
+ - text: "|"
666
+ - link "35 comments" [ref=e443] [cursor=pointer]:
667
+ - /url: item?id=46472667
668
+ - row [ref=e444]
669
+ - 'row "21. upvote Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e445]':
670
+ - cell "21." [ref=e446]
671
+ - cell "upvote" [ref=e447]:
672
+ - link "upvote" [ref=e449] [cursor=pointer]:
673
+ - /url: vote?id=46472772&how=up&goto=news
674
+ - generic "upvote" [ref=e450]
675
+ - 'cell "Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e451]':
676
+ - generic [ref=e452]:
677
+ - 'link "Show HN: uvx ptn, scan a QR, get a terminal in your phone" [ref=e453] [cursor=pointer]':
678
+ - /url: https://github.com/lyehe/porterminal
679
+ - generic [ref=e454]:
680
+ - text: (
681
+ - link "github.com/lyehe" [ref=e455] [cursor=pointer]:
682
+ - /url: from?site=github.com/lyehe
683
+ - text: )
684
+ - row "52 points by yxl448 11 hours ago | hide | 17 comments" [ref=e456]:
685
+ - cell [ref=e457]
686
+ - cell "52 points by yxl448 11 hours ago | hide | 17 comments" [ref=e458]:
687
+ - generic [ref=e459]:
688
+ - text: 52 points by
689
+ - link "yxl448" [ref=e460] [cursor=pointer]:
690
+ - /url: user?id=yxl448
691
+ - generic "2026-01-03T04:22:29 1767414149" [ref=e461]:
692
+ - link "11 hours ago" [ref=e462] [cursor=pointer]:
693
+ - /url: item?id=46472772
694
+ - text: "|"
695
+ - link "hide" [ref=e463] [cursor=pointer]:
696
+ - /url: hide?id=46472772&goto=news
697
+ - text: "|"
698
+ - link "17 comments" [ref=e464] [cursor=pointer]:
699
+ - /url: item?id=46472772
700
+ - row [ref=e465]
701
+ - 'row "22. upvote Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e466]':
702
+ - cell "22." [ref=e467]
703
+ - cell "upvote" [ref=e468]:
704
+ - link "upvote" [ref=e470] [cursor=pointer]:
705
+ - /url: vote?id=46467677&how=up&goto=news
706
+ - generic "upvote" [ref=e471]
707
+ - 'cell "Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e472]':
708
+ - generic [ref=e473]:
709
+ - 'link "Fighting Fire with Fire: Scalable Oral Exams" [ref=e474] [cursor=pointer]':
710
+ - /url: https://www.behind-the-enemy-lines.com/2025/12/fighting-fire-with-fire-scalable-oral.html
711
+ - generic [ref=e475]:
712
+ - text: (
713
+ - link "behind-the-enemy-lines.com" [ref=e476] [cursor=pointer]:
714
+ - /url: from?site=behind-the-enemy-lines.com
715
+ - text: )
716
+ - row "182 points by sethbannon 21 hours ago | hide | 243 comments" [ref=e477]:
717
+ - cell [ref=e478]
718
+ - cell "182 points by sethbannon 21 hours ago | hide | 243 comments" [ref=e479]:
719
+ - generic [ref=e480]:
720
+ - text: 182 points by
721
+ - link "sethbannon" [ref=e481] [cursor=pointer]:
722
+ - /url: user?id=sethbannon
723
+ - generic "2026-01-02T18:18:47 1767377927" [ref=e482]:
724
+ - link "21 hours ago" [ref=e483] [cursor=pointer]:
725
+ - /url: item?id=46467677
726
+ - text: "|"
727
+ - link "hide" [ref=e484] [cursor=pointer]:
728
+ - /url: hide?id=46467677&goto=news
729
+ - text: "|"
730
+ - link "243 comments" [ref=e485] [cursor=pointer]:
731
+ - /url: item?id=46467677
732
+ - row [ref=e486]
733
+ - 'row "23. upvote Ask HN: Who wants to be hired? (January 2026)" [ref=e487]':
734
+ - cell "23." [ref=e488]
735
+ - cell "upvote" [ref=e489]:
736
+ - link "upvote" [ref=e491] [cursor=pointer]:
737
+ - /url: vote?id=46466073&how=up&goto=news
738
+ - generic "upvote" [ref=e492]
739
+ - 'cell "Ask HN: Who wants to be hired? (January 2026)" [ref=e493]':
740
+ - 'link "Ask HN: Who wants to be hired? (January 2026)" [ref=e495] [cursor=pointer]':
741
+ - /url: item?id=46466073
742
+ - row "128 points by whoishiring 23 hours ago | hide | 238 comments" [ref=e496]:
743
+ - cell [ref=e497]
744
+ - cell "128 points by whoishiring 23 hours ago | hide | 238 comments" [ref=e498]:
745
+ - generic [ref=e499]:
746
+ - text: 128 points by
747
+ - link "whoishiring" [ref=e500] [cursor=pointer]:
748
+ - /url: user?id=whoishiring
749
+ - generic "2026-01-02T16:00:42 1767369642" [ref=e501]:
750
+ - link "23 hours ago" [ref=e502] [cursor=pointer]:
751
+ - /url: item?id=46466073
752
+ - text: "|"
753
+ - link "hide" [ref=e503] [cursor=pointer]:
754
+ - /url: hide?id=46466073&goto=news
755
+ - text: "|"
756
+ - link "238 comments" [ref=e504] [cursor=pointer]:
757
+ - /url: item?id=46466073
758
+ - row [ref=e505]
759
+ - row "24. upvote Adventure 751 (1980) (bluerenga.blog)" [ref=e506]:
760
+ - cell "24." [ref=e507]
761
+ - cell "upvote" [ref=e508]:
762
+ - link "upvote" [ref=e510] [cursor=pointer]:
763
+ - /url: vote?id=46472230&how=up&goto=news
764
+ - generic "upvote" [ref=e511]
765
+ - cell "Adventure 751 (1980) (bluerenga.blog)" [ref=e512]:
766
+ - generic [ref=e513]:
767
+ - link "Adventure 751 (1980)" [ref=e514] [cursor=pointer]:
768
+ - /url: https://bluerenga.blog/2026/01/01/adventure-751-1980/
769
+ - generic [ref=e515]:
770
+ - text: (
771
+ - link "bluerenga.blog" [ref=e516] [cursor=pointer]:
772
+ - /url: from?site=bluerenga.blog
773
+ - text: )
774
+ - row "40 points by quuxplusone 13 hours ago | hide | 3 comments" [ref=e517]:
775
+ - cell [ref=e518]
776
+ - cell "40 points by quuxplusone 13 hours ago | hide | 3 comments" [ref=e519]:
777
+ - generic [ref=e520]:
778
+ - text: 40 points by
779
+ - link "quuxplusone" [ref=e521] [cursor=pointer]:
780
+ - /url: user?id=quuxplusone
781
+ - generic "2026-01-03T02:38:06 1767407886" [ref=e522]:
782
+ - link "13 hours ago" [ref=e523] [cursor=pointer]:
783
+ - /url: item?id=46472230
784
+ - text: "|"
785
+ - link "hide" [ref=e524] [cursor=pointer]:
786
+ - /url: hide?id=46472230&goto=news
787
+ - text: "|"
788
+ - link "3 comments" [ref=e525] [cursor=pointer]:
789
+ - /url: item?id=46472230
790
+ - row [ref=e526]
791
+ - row "25. upvote Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e527]:
792
+ - cell "25." [ref=e528]
793
+ - cell "upvote" [ref=e529]:
794
+ - link "upvote" [ref=e531] [cursor=pointer]:
795
+ - /url: vote?id=46467651&how=up&goto=news
796
+ - generic "upvote" [ref=e532]
797
+ - cell "Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e533]:
798
+ - generic [ref=e534]:
799
+ - link "Accounting for Computer Scientists (2011)" [ref=e535] [cursor=pointer]:
800
+ - /url: https://martin.kleppmann.com/2011/03/07/accounting-for-computer-scientists.html
801
+ - generic [ref=e536]:
802
+ - text: (
803
+ - link "kleppmann.com" [ref=e537] [cursor=pointer]:
804
+ - /url: from?site=kleppmann.com
805
+ - text: )
806
+ - row "134 points by tosh 20 hours ago | hide | 52 comments" [ref=e538]:
807
+ - cell [ref=e539]
808
+ - cell "134 points by tosh 20 hours ago | hide | 52 comments" [ref=e540]:
809
+ - generic [ref=e541]:
810
+ - text: 134 points by
811
+ - link "tosh" [ref=e542] [cursor=pointer]:
812
+ - /url: user?id=tosh
813
+ - generic "2026-01-02T18:16:07 1767377767" [ref=e543]:
814
+ - link "20 hours ago" [ref=e544] [cursor=pointer]:
815
+ - /url: item?id=46467651
816
+ - text: "|"
817
+ - link "hide" [ref=e545] [cursor=pointer]:
818
+ - /url: hide?id=46467651&goto=news
819
+ - text: "|"
820
+ - link "52 comments" [ref=e546] [cursor=pointer]:
821
+ - /url: item?id=46467651
822
+ - row [ref=e547]
823
+ - row "26. upvote Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e548]:
824
+ - cell "26." [ref=e549]
825
+ - cell "upvote" [ref=e550]:
826
+ - link "upvote" [ref=e552] [cursor=pointer]:
827
+ - /url: vote?id=46468283&how=up&goto=news
828
+ - generic "upvote" [ref=e553]
829
+ - cell "Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e554]:
830
+ - generic [ref=e555]:
831
+ - link "Unix v4 (1973) – Live Terminal" [ref=e556] [cursor=pointer]:
832
+ - /url: https://unixv4.dev/
833
+ - generic [ref=e557]:
834
+ - text: (
835
+ - link "unixv4.dev" [ref=e558] [cursor=pointer]:
836
+ - /url: from?site=unixv4.dev
837
+ - text: )
838
+ - row "156 points by pjmlp 20 hours ago | hide | 75 comments" [ref=e559]:
839
+ - cell [ref=e560]
840
+ - cell "156 points by pjmlp 20 hours ago | hide | 75 comments" [ref=e561]:
841
+ - generic [ref=e562]:
842
+ - text: 156 points by
843
+ - link "pjmlp" [ref=e563] [cursor=pointer]:
844
+ - /url: user?id=pjmlp
845
+ - generic "2026-01-02T19:18:36 1767381516" [ref=e564]:
846
+ - link "20 hours ago" [ref=e565] [cursor=pointer]:
847
+ - /url: item?id=46468283
848
+ - text: "|"
849
+ - link "hide" [ref=e566] [cursor=pointer]:
850
+ - /url: hide?id=46468283&goto=news
851
+ - text: "|"
852
+ - link "75 comments" [ref=e567] [cursor=pointer]:
853
+ - /url: item?id=46468283
854
+ - row [ref=e568]
855
+ - row "27. upvote The rsync algorithm (1996) [pdf] (cmu.edu)" [ref=e569]:
856
+ - cell "27." [ref=e570]
857
+ - cell "upvote" [ref=e571]:
858
+ - link "upvote" [ref=e573] [cursor=pointer]:
859
+ - /url: vote?id=46466734&how=up&goto=news
860
+ - generic "upvote" [ref=e574]
861
+ - cell "The rsync algorithm (1996) [pdf] (cmu.edu)" [ref=e575]:
862
+ - generic [ref=e576]:
863
+ - link "The rsync algorithm (1996) [pdf]" [ref=e577] [cursor=pointer]:
864
+ - /url: https://www.andrew.cmu.edu/course/15-749/READINGS/required/cas/tridgell96.pdf
865
+ - generic [ref=e578]:
866
+ - text: (
867
+ - link "cmu.edu" [ref=e579] [cursor=pointer]:
868
+ - /url: from?site=cmu.edu
869
+ - text: )
870
+ - row "170 points by vortex_ape 22 hours ago | hide | 25 comments" [ref=e580]:
871
+ - cell [ref=e581]
872
+ - cell "170 points by vortex_ape 22 hours ago | hide | 25 comments" [ref=e582]:
873
+ - generic [ref=e583]:
874
+ - text: 170 points by
875
+ - link "vortex_ape" [ref=e584] [cursor=pointer]:
876
+ - /url: user?id=vortex_ape
877
+ - generic "2026-01-02T16:56:19 1767372979" [ref=e585]:
878
+ - link "22 hours ago" [ref=e586] [cursor=pointer]:
879
+ - /url: item?id=46466734
880
+ - text: "|"
881
+ - link "hide" [ref=e587] [cursor=pointer]:
882
+ - /url: hide?id=46466734&goto=news
883
+ - text: "|"
884
+ - link "25 comments" [ref=e588] [cursor=pointer]:
885
+ - /url: item?id=46466734
886
+ - row [ref=e589]
887
+ - 'row "28. upvote The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e590]':
888
+ - cell "28." [ref=e591]
889
+ - cell "upvote" [ref=e592]:
890
+ - link "upvote" [ref=e594] [cursor=pointer]:
891
+ - /url: vote?id=46442229&how=up&goto=news
892
+ - generic "upvote" [ref=e595]
893
+ - 'cell "The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e596]':
894
+ - generic [ref=e597]:
895
+ - 'link "The Cost of a Closure in C: The Rest" [ref=e598] [cursor=pointer]':
896
+ - /url: https://thephd.dev/the-cost-of-a-closure-in-c-c2y-followup
897
+ - generic [ref=e599]:
898
+ - text: (
899
+ - link "thephd.dev" [ref=e600] [cursor=pointer]:
900
+ - /url: from?site=thephd.dev
901
+ - text: )
902
+ - row "55 points by ingve 12 hours ago | hide | 23 comments" [ref=e601]:
903
+ - cell [ref=e602]
904
+ - cell "55 points by ingve 12 hours ago | hide | 23 comments" [ref=e603]:
905
+ - generic [ref=e604]:
906
+ - text: 55 points by
907
+ - link "ingve" [ref=e605] [cursor=pointer]:
908
+ - /url: user?id=ingve
909
+ - generic "2025-12-31T07:44:25 1767167065" [ref=e606]:
910
+ - link "12 hours ago" [ref=e607] [cursor=pointer]:
911
+ - /url: item?id=46442229
912
+ - text: "|"
913
+ - link "hide" [ref=e608] [cursor=pointer]:
914
+ - /url: hide?id=46442229&goto=news
915
+ - text: "|"
916
+ - link "23 comments" [ref=e609] [cursor=pointer]:
917
+ - /url: item?id=46442229
918
+ - row [ref=e610]
919
+ - row "29. upvote Einstein Probe detects an X-ray flare from nearby star (phys.org)" [ref=e611]:
920
+ - cell "29." [ref=e612]
921
+ - cell "upvote" [ref=e613]:
922
+ - link "upvote" [ref=e615] [cursor=pointer]:
923
+ - /url: vote?id=46471784&how=up&goto=news
924
+ - generic "upvote" [ref=e616]
925
+ - cell "Einstein Probe detects an X-ray flare from nearby star (phys.org)" [ref=e617]:
926
+ - generic [ref=e618]:
927
+ - link "Einstein Probe detects an X-ray flare from nearby star" [ref=e619] [cursor=pointer]:
928
+ - /url: https://phys.org/news/2025-12-einstein-probe-ray-flare-nearby.html
929
+ - generic [ref=e620]:
930
+ - text: (
931
+ - link "phys.org" [ref=e621] [cursor=pointer]:
932
+ - /url: from?site=phys.org
933
+ - text: )
934
+ - row "42 points by wglb 14 hours ago | hide | 9 comments" [ref=e622]:
935
+ - cell [ref=e623]
936
+ - cell "42 points by wglb 14 hours ago | hide | 9 comments" [ref=e624]:
937
+ - generic [ref=e625]:
938
+ - text: 42 points by
939
+ - link "wglb" [ref=e626] [cursor=pointer]:
940
+ - /url: user?id=wglb
941
+ - generic "2026-01-03T01:29:09 1767403749" [ref=e627]:
942
+ - link "14 hours ago" [ref=e628] [cursor=pointer]:
943
+ - /url: item?id=46471784
944
+ - text: "|"
945
+ - link "hide" [ref=e629] [cursor=pointer]:
946
+ - /url: hide?id=46471784&goto=news
947
+ - text: "|"
948
+ - link "9 comments" [ref=e630] [cursor=pointer]:
949
+ - /url: item?id=46471784
950
+ - row [ref=e631]
951
+ - row "30. upvote Punkt. Unveils MC03 Smartphone (punkt.ch)" [ref=e632]:
952
+ - cell "30." [ref=e633]
953
+ - cell "upvote" [ref=e634]:
954
+ - link "upvote" [ref=e636] [cursor=pointer]:
955
+ - /url: vote?id=46466364&how=up&goto=news
956
+ - generic "upvote" [ref=e637]
957
+ - cell "Punkt. Unveils MC03 Smartphone (punkt.ch)" [ref=e638]:
958
+ - generic [ref=e639]:
959
+ - link "Punkt. Unveils MC03 Smartphone" [ref=e640] [cursor=pointer]:
960
+ - /url: https://www.punkt.ch/blogs/news/punkt-unveils-mc03
961
+ - generic [ref=e641]:
962
+ - text: (
963
+ - link "punkt.ch" [ref=e642] [cursor=pointer]:
964
+ - /url: from?site=punkt.ch
965
+ - text: )
966
+ - row "156 points by ChrisArchitect 23 hours ago | hide | 143 comments" [ref=e643]:
967
+ - cell [ref=e644]
968
+ - cell "156 points by ChrisArchitect 23 hours ago | hide | 143 comments" [ref=e645]:
969
+ - generic [ref=e646]:
970
+ - text: 156 points by
971
+ - link "ChrisArchitect" [ref=e647] [cursor=pointer]:
972
+ - /url: user?id=ChrisArchitect
973
+ - generic "2026-01-02T16:23:34 1767371014" [ref=e648]:
974
+ - link "23 hours ago" [ref=e649] [cursor=pointer]:
975
+ - /url: item?id=46466364
976
+ - text: "|"
977
+ - link "hide" [ref=e650] [cursor=pointer]:
978
+ - /url: hide?id=46466364&goto=news
979
+ - text: "|"
980
+ - link "143 comments" [ref=e651] [cursor=pointer]:
981
+ - /url: item?id=46466364
982
+ - row [ref=e652]
983
+ - row [ref=e653]
984
+ - row "More" [ref=e654]:
985
+ - cell [ref=e655]
986
+ - cell "More" [ref=e656]:
987
+ - link "More" [ref=e657] [cursor=pointer]:
988
+ - /url: "?p=2"
989
+ - row "Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:" [ref=e658]:
990
+ - cell "Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:" [ref=e659]:
991
+ - img
992
+ - table [ref=e660]:
993
+ - rowgroup [ref=e661]:
994
+ - row [ref=e662]:
995
+ - cell [ref=e663]
996
+ - generic [ref=e664]:
997
+ - generic [ref=e665]:
998
+ - link "Guidelines" [ref=e666] [cursor=pointer]:
999
+ - /url: newsguidelines.html
1000
+ - text: "|"
1001
+ - link "FAQ" [ref=e667] [cursor=pointer]:
1002
+ - /url: newsfaq.html
1003
+ - text: "|"
1004
+ - link "Lists" [ref=e668] [cursor=pointer]:
1005
+ - /url: lists
1006
+ - text: "|"
1007
+ - link "API" [ref=e669] [cursor=pointer]:
1008
+ - /url: https://github.com/HackerNews/API
1009
+ - text: "|"
1010
+ - link "Security" [ref=e670] [cursor=pointer]:
1011
+ - /url: security.html
1012
+ - text: "|"
1013
+ - link "Legal" [ref=e671] [cursor=pointer]:
1014
+ - /url: https://www.ycombinator.com/legal/
1015
+ - text: "|"
1016
+ - link "Apply to YC" [ref=e672] [cursor=pointer]:
1017
+ - /url: https://www.ycombinator.com/apply/
1018
+ - text: "|"
1019
+ - link "Contact" [ref=e673] [cursor=pointer]:
1020
+ - /url: mailto:hn@ycombinator.com
1021
+ - generic [ref=e674]:
1022
+ - text: "Search:"
1023
+ - textbox [ref=e675]