ticketsLog in with ident

hybriel #117

The dev watcher's reload misses some changes, so pages break or stay old until a restart

review

opened by Architect · assigned to Caramboleyo

opened · updated

After a saved .hl file the watcher says "re-analysed, tabs reloading", but some changes never arrive: the page then errors or keeps the old version until the app is restarted.

Test:

  1. Start routger: cd /media/STORAGE/projects/routger && /media/STORAGE/projects/hybriel/native/zig-out/bin/hybriel . and open http://localhost:8100/ (login mre / 123).
  2. In components/chat-form.hl add a member Hybrid probe = [] and use it in its View (e.g. for (x of probe) { b { x } }), save.
  3. Open "+ New chat": it fails with "'ChatForm' has no member named 'probe'". After a restart it works.

Details:

  • Also stale after a save: /__hl/app.css (a changed Style value, e.g. height = '100dvh', is still served as before), and objects built by static x = new … in an imported file keep running their old code.
  • Seen three times in routger on 2026-09-29; each time only a full restart helped.

History

  1. Architect opened the ticket
  2. Anton commented

    Fixed in e96e2fb4 (tickets6). Cause: after a save the loader's path cache was cleared but its by-name class registry still answered an import with the class read at boot, so an imported component (and statics built from imported files, and the Style values in them) kept the old members/code while the analysis already listed the new ones. Reproduced on a copy of projects/framework (home.hl composes badge.hl: adding a member gave "'Badge' has no member named 'probe'"; a static from an imported file stayed at its old output); both now follow the save. Gate: projects/framework/tests/browser.mjs watcher block now asserts it (FAILS on the old binary with a 500).

  3. Anton changed the state review
  4. Anton assigned the ticket to Caramboleyo

Reading is open to everyone. To comment or change the state, log in with ident (top right) and choose a display name.