hybriel · review
Reading is open to everyone. To open a ticket, log in with ident (top right).
review #130 hl:web document(): a page slot marker mid-line is taken as indent → the shell's content repeats (~50×), hydration failshybriel Caramboleyo review #128 A plain declaration inside a loop body is refused on the second pass — forces `let`hybriel Caramboleyo review #129 hl:web appends its own routes after the app's — an app's catch-all route shadows /__hl/* and /components/*.hlhybriel Caramboleyo review #62 Question: lowercase imports named like HTML tagshybriel Caramboleyo review #50 Question: should --graph get a flag to drop the syntax trees?hybriel Caramboleyo review #126 Native runtime never frees fetched bodies or decoded records — apps grow to many GBhybriel Caramboleyo review #127 8efba065 (#126 GC by bytes): big server-rendered pages 2.5–4× slower and get slower on every loadhybriel Caramboleyo review #120 hl:web: no offline fallback page — a kept page is cached with the user's datahybriel Caramboleyo review #119 hl:web: a page cannot know whether it is online (no connection-state member, no after-load hook)hybriel Caramboleyo review #117 The dev watcher's reload misses some changes, so pages break or stay old until a restarthybriel Caramboleyo review #112 hl:fs readFile() silently truncates a file at 10 MiB, no error or flaghybriel Caramboleyo review #48 Question: does a lambda parameter copy its argument?hybriel Caramboleyo review #111 Markdown as its own plugin (hl:markdown): read, render and write Markdownhybriel Caramboleyo review #52 Question: how does concurrent interleave?hybriel Caramboleyo review #124 hl:web offline: a param page of a kept component that was never loaded as a document is "Unavailable offline"hybriel Caramboleyo review #123 hl:web offline: a kept page's state is stored per URL, so a page with several URLs shows stale data offlinehybriel Caramboleyo review #125 hl:web offline: kept state, kept documents and the queue belong to no user and cannot be forgottenhybriel Caramboleyo review #121 Since 64527baa: session-derived members re-derived in the browser (double rows, DB refusals) — two app findingshybriel Caramboleyo review #122 After a session face, hl:web rebuilds the page WITHOUT its route parameters — values depending on route + session flip (tickets admin loses settings on Save)hybriel Caramboleyo review #115 A component's own helper function that calls an hl:mpackdb-backed import compiles to no client case, yet is still called unconditionally client-sidehybriel Caramboleyo review #116 hybriel#115's bug also breaks the plain server-side interpreter, not just the JS-compiled client bundlehybriel Caramboleyo review #113 hl:mpackdb loses rows: update() then reopening the table in a fresh process reads back fewer rows than were put()hybriel Caramboleyo review #118 A for-loop over a literal list inside a View crashes the page (500, error points into view.hl)hybriel Caramboleyo review #36 Arguments starting with -- after the script are refused; no way to set the exit statushybriel Caramboleyo review #110 hl:mpackdb: a second open of a table (other realm) compacts the file under the first handlehybriel Caramboleyo review #109 hl:http1 has no WebSocket client (a program cannot subscribe to a websocket)hybriel Caramboleyo review #108 hl:web: embed a component served by another apphybriel Caramboleyo review #107 Firefox: a closed socket answers the pending page request with null and pulls the user backhybriel Caramboleyo review #6 JSON.parse cannot fail softlyhybriel Caramboleyo review #92 A face that raises an error never answers the page's emit; the page waits foreverhybriel Caramboleyo review #99 Browser callbacks (XMLHttpRequest onprogress/onload) cannot update component state; new Promise in a handler breaks ithybriel Caramboleyo review #98 Writes made in an async callback (e.g. XHR onprogress/onload) are never paintedhybriel Caramboleyo review #94 hl:web: files in an emit travel over HTTP, with progresshybriel Caramboleyo review #105 hl:web: page components cannot read request headers (Accept-Language)hybriel Caramboleyo review #106 A let inside a while loop is shared by closures made in the loophybriel Caramboleyo review #104 Element built by an if in the browser puts a child before the bound texthybriel Caramboleyo review #103 Nested if turning false in one handler: insertBefore NotFoundErrorhybriel Caramboleyo review #101 Hyphenated attribute names (aria-*, data-*) cannot be written in a Viewhybriel Caramboleyo review #100 Bound attributes (title, tabindex) on for-loop rows stay stale when the list is reassignedhybriel Caramboleyo review #102 hl:web: an input's bound value is written locally but not on the live HTTPS sitehybriel Caramboleyo review #97 No way to write a service worker in Hybrielhybriel Caramboleyo review #96 hl:web head has no <link> tags (rel=manifest)hybriel Caramboleyo review #95 hl:web lost the offline / PWA support of the old frameworkhybriel Caramboleyo review #91 hl:proc run() has no stdin optionhybriel Caramboleyo review #90 No base64 decoder (HTTP Basic auth header cannot be decoded)hybriel Caramboleyo review #89 hl:http1 gives req.body = null for a chunked request bodyhybriel Caramboleyo review #85 Declared types are not checked in four placeshybriel Caramboleyo review #86 Nested for loop is not re-rendered when the outer list is reassignedhybriel Caramboleyo review #84 `let a = &holder.x` copies instead of aliasinghybriel Caramboleyo review #87 emit from a composed component's handler does not reach the host's handler; host cannot read a child memberhybriel Caramboleyo review #83 hl:web client.js and app.css stay cached after a deployhybriel Caramboleyo review #82 hl:web never reopens a closed sockethybriel Caramboleyo review #78 Unbounded recursion crashes the process with no located errorhybriel Caramboleyo review #59 A file importing its own class name dies with an unlocated errorhybriel Caramboleyo review #81 A page component cannot read a * route parthybriel Caramboleyo review #44 '\n' is not a newline escape in strings; no cookie Domain setting in webex sessionshybriel Caramboleyo review #58 An empty list stored in hl:mpackdb comes back as an empty hybridhybriel Caramboleyo review #46 split()/indexOf() do not find a tab in a line from hl:proc; '\' at the end of a string swallows the quotehybriel Caramboleyo review #47 Non-UTF-8 bytes in an hl:proc line break the WebSocket ('Could not decode a text frame as UTF-8')hybriel Caramboleyo review #60 C backend: % on numbers is emitted as integer %hybriel Caramboleyo review #80 hl:proc: no blocking run for server-rendered pageshybriel Caramboleyo review #61 Browser gates leave headless Chromes running when a session dieshybriel Caramboleyo review #43 webex: a login/logout flip in the shell re-creates the slot page, resetting its state to the server-rendered onehybriel Caramboleyo review #57 Docs: no root README, stale walkthrough, stale exported plugin docshybriel Caramboleyo review #45 Rename hl:webex back to hl:webhybriel Caramboleyo review #79 join() on a list with a non-text entry crashes the interpreterhybriel Caramboleyo review #35 String escapes: \\uXXXX is decoded but \\\\ is nothybriel Caramboleyo review #23 put() on an @id table keeps an id the record already carrieshybriel Caramboleyo review #42 hl:proc: no stdin write and no raw-byte outputhybriel Caramboleyo review #41 webex: an `if` block anywhere inside a View makes it recreate the View's DOM on every re-render, losing input focus (this is the mechanism behind already-reported #32)hybriel Caramboleyo review #39 webex: var() tokens from an inherited or imported styles file can't be usedhybriel Caramboleyo review #37 hl:proc spawn has no cwd/env options; no call for the script's own directoryhybriel Caramboleyo review #34 SECURITY: webex inline seed script is not escaped - stored XSS in every webex apphybriel Caramboleyo review #33 webex: boolean attributes can't be conditionalhybriel Caramboleyo review #32 hl:webex re-creates View elements (incl. script src) when an if block in the same View flipshybriel Caramboleyo review #29 mpackdb update() without id on an @id table loses the keyhybriel Caramboleyo review #28 A parameter reads an entry of the calling object literalhybriel Caramboleyo review #27 Session cookie has no Secure flag and no setting for ithybriel Caramboleyo review #26 A non-JSON file in the sessions dir crashes the server at boothybriel Caramboleyo review #24 hl:webex ignores HL_HOST: always binds 0.0.0.0hybriel Caramboleyo review #22 `from` cannot be used as a name, unclear errorhybriel Caramboleyo review #21 Opening an hl:mpackdb table rewrites its fileshybriel Caramboleyo review #20 Server faces are dispatched by event name across all fileshybriel Caramboleyo review #19 hl:webex refuses an app whose routes are all function routeshybriel Caramboleyo review #18 Intl missing from the JS compiler's BROWSER_GLOBALShybriel Caramboleyo review #17 if (!member) in a View silently renders nothinghybriel Caramboleyo review #16 SECURITY: client can forge a face's session argumenthybriel Caramboleyo review #15 JSON.parse refuses all \u surrogate escapes, even valid pairshybriel Caramboleyo review #13 hl:smtp new Mailer() without sender aborts at loadhybriel Caramboleyo review #12 styles = {} boots but every /__hl/app.css is 500 NotCallablehybriel Caramboleyo review #10 webex session cookie name hard-coded hlsidhybriel Caramboleyo review #9 Non-literal manifest static reads null in the manifest's own function routeshybriel Caramboleyo review #8 Hash has() not callablehybriel Caramboleyo review #7 List concat() missing, unlocated NotCallablehybriel Caramboleyo review #3 COMPONENTS.md describes archived hl:web v1; webex request fields undocumentedhybriel Caramboleyo review #2 No ordering operators on stringshybriel Caramboleyo review #1 List sort() and String localeCompare() fail with unlocated NotCallablehybriel Caramboleyo review #56 An imported name that is a JavaScript reserved word breaks the browser modulehybriel Caramboleyo review #55 A route naming an unimported component by path crashes the apphybriel Caramboleyo review #74 hl:web: page components get no hosthybriel Caramboleyo review #40 Object-literal field shadows an outer variable; no signal handlers; undocumented parent-death signalhybriel Caramboleyo review #31 hl:webex cannot bind custom DOM eventshybriel Caramboleyo review #30 on Error in an imported statics file does not catch a plugin error from its own static functionhybriel Caramboleyo review #25 No client peer address: not in req, not in faceshybriel Caramboleyo review #14 No encodeURIComponent; hlTypeName answers Hybrid for both objects and listshybriel Caramboleyo review #11 webex function routes get no session; page components cannot read the query stringhybriel Caramboleyo