95 Commits

Author SHA1 Message Date
udo
914cf17f23 Skip canonicalization for recent source entries 2026-07-17 22:06:17 +00:00
udo
9beec0dd03 Memoize read-only source graph stats 2026-07-17 22:00:37 +00:00
udo
2dd23766e0 Recover after transient dependency compile failures 2026-07-17 19:59:39 +00:00
udo
c28b446541 Profile complete Wasm request timing 2026-07-17 19:11:05 +00:00
root
3e423f49dd Expose MySQL connection state 2026-07-17 18:05:04 +00:00
udo
88c637f5a4 Preserve MySQL connection failures across queries 2026-07-17 13:52:08 +00:00
udo
dbb8ae2c4b Support nested Markdown heading levels 2026-07-17 05:27:00 +00:00
udo
8dbff881a1 Profile request thread runtime on demand 2026-07-17 03:05:37 +00:00
root
5a5450caa8 Keep hostcall CPU profiling off hot paths 2026-07-17 02:35:03 +00:00
root
c15fdc3346 Make hostcall CPU profiling configurable 2026-07-17 02:22:56 +00:00
udo
03ffeeb0da Parse common UTC timestamps in process 2026-07-17 00:15:43 +00:00
root
e9644c717f Avoid rebuilding byte-identical source graphs 2026-07-16 23:27:51 +00:00
udo
caffb3f404 Keep FastCGI available during restarts 2026-07-16 22:00:08 +00:00
udo
83c05111a9 Profile FastCGI transport phases 2026-07-16 20:49:13 +00:00
udo
6a02c07bcb Reuse reset MySQL connections per worker 2026-07-16 17:00:28 +00:00
udo
62adc7a6a9 Reject empty time parse input 2026-07-16 14:29:28 +00:00
udo
dafffb4ab6 label expected compile timing probe 2026-07-14 23:38:20 +00:00
udo
6b18587581 scope nested component props without deep copies 2026-07-14 22:41:55 +00:00
udo
8c3f8c5e01 fix persisted unit failure identity 2026-07-14 21:44:31 +00:00
udo
d7f4749f9f test: label expected source read failures 2026-07-14 06:23:50 +00:00
udo
c1949e7430 Label unreadable source probes distinctly 2026-07-14 02:48:24 +00:00
udo
7fabccd90a Add CSRF hidden field helper 2026-07-13 23:52:49 +00:00
udo
096138d6a1 Fix wasm compile source race 2026-07-13 22:47:48 +00:00
udo
92baaa6299 fix: prevent stale mutation execution 2026-07-13 20:17:48 +00:00
udo
4414972079 feat: add native scrypt password hashing 2026-07-13 19:35:38 +00:00
udo
a288b539c6 Reject unreadable UCE source units 2026-07-13 15:28:35 +00:00
udo
cd2fa163e6 keep CLI units current during rebuilds 2026-07-13 14:20:29 +00:00
udo
97ecc6edd6 keep web requests off rebuild path 2026-07-13 12:25:42 +00:00
udo
5195ebeb25 avoid request stalls during proactive rebuilds 2026-07-13 12:12:14 +00:00
udo
c1039f5094 Parse standard absolute URL paths 2026-07-13 09:31:45 +00:00
udo
ada01e34f4 Cache loaded source signatures safely 2026-07-13 08:07:37 +00:00
udo
02ed75fc85 Invalidate units when loaded sources change 2026-07-13 07:42:52 +00:00
udo
d857930ceb Expose MySQL affected row counts 2026-07-13 07:10:03 +00:00
root
7281302287 Keep MySQL connect available to wasm units 2026-07-13 06:24:59 +00:00
root
b1dfe6c807 Reuse MySQL connections within requests 2026-07-13 00:08:07 +00:00
udo
0ff42f357f Document request-scoped MySQL cleanup 2026-07-08 18:44:07 +00:00
udo
6f446c4aef hide internal csrf session key helper 2026-07-06 10:08:44 +00:00
udo
b8c2efe976 add native csrf helpers 2026-07-06 09:58:25 +00:00
udo
a6cb1c0390 fix wasm session and mysql placeholder state 2026-07-06 07:54:01 +00:00
root
991a0f62b4 harden runtime config and docs 2026-06-27 20:58:07 +00:00
root
b8b56cf3dd cleanup, docs 2026-06-16 23:02:45 +00:00
root
ea08d5f28b cleanup, docs 2026-06-16 12:21:31 +00:00
root
dff1959341 cleanup, error pages 2026-06-16 08:46:54 +00:00
root
f2a3503ac3 configurable trans-membrance hostcall blocklist 2026-06-16 01:13:06 +00:00
root
99cd92fb4a docs 2026-06-15 21:42:50 +00:00
root
5ee257565c smolstuf 2026-06-15 15:40:24 +00:00
root
1a5c6547b9 post-W7 cleanup 2026-06-15 12:00:46 +00:00
root
04745f39a8 W7 done done 2026-06-15 10:53:36 +00:00
root
f5637bb587 W7 done done 2026-06-15 10:28:23 +00:00
root
4f84ac544d feat: request_perf() worker-side timing hostcall; restore demo System Info
Units run in the wasm sandbox, so my_pid/parent_pid/context.server->request_count
read as sandbox stubs — the demo System Info counters were broken, and there was
no authoritative server-side request timing available to unit code (client-side
measurement cannot see queue/dispatch latency).

Add a request_perf() unit API backed by a new uce_host_request_perf hostcall.
The native worker answers it live, returning a DValue:
  worker_pid, parent_pid, request_count,
  accept_us  = (time_start - time_init)*1e6   (entry -> dispatch wait),
  running_us = (now - time_start)*1e6         (since dispatch, live),
  total_us   = (now - time_init)*1e6          (since the request entered UCE),
  workspace_birth_us.
time_init is captured at request entry (handle_request, with a handle_complete
fallback); a RequestPerfSnapshot {pids, request_count, time_init, time_start} is
threaded from wasm_backend_serve through wasm_worker_serve onto the workspace,
and the hostcall computes the live deltas at call time. Wired like uce_host_units
(sized DValue hostcall): core_hostcalls.syms + sys.cpp/sys.h request_perf().

site/demo/index.uce System Info now uses request_perf() and shows the real worker
PID, an incrementing per-worker request count, and the timing counters.

Implemented via the pi agent (gpt-5.3-codex-spark); a review of the live numbers
caught accept_us mistakenly computed as (now - time_init) (== total_us), fixed to
the dispatch wait (time_start - time_init). Independently verified on the host:
System Info shows non-zero PIDs, incrementing count, accept_us ~50us << total_us
~2.4ms with accept+running==total; run_cli_tests --include-wasm-kill => 87 passed,
0 failed, 0 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 08:18:04 +00:00