routes: @route dispatch conversion + latent Bool/String crash fixes (clean re-merge) #157
Reference in New Issue
Block a user
Delete Branch "merge-pr151-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Re-does PR #151's merge clean off current main. Real conflicts:
Verified: routes.el/memory.el/neuron-api.el all parse clean through the real elc.
Convert routes.el from ~89 hand-written dispatch branches to 75 @route-decorated handlers with VBD roles (@manager/@accessor/@utility), driven by the modular compiler's native @route dispatch. routes.elh updated to match. Fix four latent bugs that the modular compiler surfaces (unlike the old inlining compiler, it faithfully emits every source statement, so per-module compilation no longer silently drops code): - safety.el: malformed soft-phrases literal (extra unescaped quote) - sessions.el: str_replace quote arg + topic_tags JSON escaping - memory.el mem_save and neuron-api.el consolidate: engram_save returns a Bool, not a String; str_eq(result, "") dereferenced the Bool value (0x1) as a char*, segfaulting the awareness loop on boot and POST /api/neuron/consolidate. Check it as a Bool (if !save_result). The old compiler dropped these checks, masking the bug in the shipped dist/soul.c. Regenerate dist/soul.c through the bounded per-module path (modular elc per module plus amalgamation that embeds dist/elp-c-decls.h), never by folding soul.el through elc (27GB OOM). Verified on a throwaway snapshot and port: boots with the awareness loop active and no segfault, @route dispatch matches the manual dispatcher across all sampled routes and the four shadowing-hazard pairs, and consolidate returns 200.