59 Commits
Author SHA1 Message Date
root 0d43f46803 Integrate verified documentation examples and request-scoped file APIs 2026-10-14 16:14:38 +00:00
udoandClaude Fable 5.1 ca8edb6bd1 Delete the queued task API, the task pool, and the job API
Tasks are fire-and-forget only: function TASK:NAME(props : dval) and
task_execute(target, timeout_seconds, props). The durable queue, the
TASK_WORKERS pool with its leases, cancellation, admission health and recovery,
task, task_status, task_await, task_cancel, the background form of shell_exec,
job_status, job_result, job_await, job_cancel, http_request_async, the job
directory and its --job-worker helper, their pages, fixtures, guide sections,
settings documentation and parity rows are gone. A bare TASK handler is a
compile error.

shell_exec(command, {on_done: "/unit.capy:NAME"}) keeps the one job use that
mattered: the command runs in the detached task runner, and TASK:NAME of the
unit receives command, exit_code, stdout, stderr, timed_out and
output_truncated when it finishes. Unit path resolution is shared by tasks and
services. The tasks guide is "Tasks and commands" with a stable slug change.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14 01:14:19 +00:00
udoandClaude Fable 5.1 5837f200cb Convert array literals into as dval parameters
An array type is constructible into dval like scalars and strings, so
port_spawn(["cat"]) resolves and lowers through the dval constructor; a
non-literal array still fails there with the existing message. The service
fixtures and the port_spawn page use the literal form again, and the services
guide names the oversized-message refusal beside the other two reasons a send
returns false.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14 00:37:46 +00:00
udoandClaude Fable 5.1 decfa661a3 Add named CLI entry points and align service docs with the runtime
function CLI:NAME() compiles like the other named handlers and exports
__bearer_cli_NAME; bearer-cli /unit.capy:NAME runs it, with --get pairs in
request.query. The static gate, the doc checker, the handler form list, the
CLI handler page, the language reference, and the skill file know the form, and
a fixture with a default and a named entry point is in phase 1.

The services handler page and guide now describe the mailbox bound as the
kernel datagram queue, say that an unknown signal is dropped and logged, and
that a send to a listening service is one datagram.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 22:56:16 +00:00
udoandClaude Fable 5.1 2f881f2eae Add unit-scope variables
A top-level var is one mutable Wasm global, initialized in declaration order by
an exported __wasm_call_ctors that the worker already runs once per workspace
after relocation and before INIT. Functions and closures read and assign unit
variables directly; managed values retain and release like locals; a local or
parameter shadows them; an initializer sees only the variables above it and has
no request. Names cannot be request, props, none, or collide with a function,
struct, or alias. The capability scan is seeded with unit variable types, the
LSP reports them as variable symbols, and the services design note now keeps
service state in unit variables with the synthetic request bound for builtins.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 21:12:27 +00:00
udoandClaude Fable 5.1 0e71019530 Add the SERVICE handler family and a service workspace that lives across events
SERVICE:NAME handlers compile like TASK:NAME props handlers and export
__bearer_service_NAME. The Wasm core gains bearer_wasm_invoke_service_event,
which runs one handler with decoded event props against the shared request
value without writing a response back. The worker keeps one workspace per
service process (wasm_worker_service_open/event) and the backend exposes
wasm_backend_service_open, wasm_backend_service_event, and
wasm_backend_service_close for the service loop. Core ABI 39; artifact golden
refreshed for the embedded ABI version.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 18:32:02 +00:00
rootandClaude Fable 5.1 208394c086 Type literal operands from the other side and capture through alias calls
The capability scan typed `level + 1` from its integer literal, so a u64
map entry lost its boxing import; a literal operand now takes the other
operand type when that side is not a literal itself. A lambda that calls
an import alias or a module member lowers to unit_call or call, which
capture request, so the lambda now carries that capture. Golden refreshed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 15:17:37 +00:00
rootandClaude Fable 5.1 88be6723b2 Bind request implicitly in handlers and add capture parameters
Handlers take (props : dval, request : dval) for COMPONENT and TASK and
(request : dval) otherwise; every parameter is optional and keeps its name,
and request is bound in every handler body. name : capture type fills an
omitted argument from the caller variable of that name. Exported (dval) dval
functions carry an implicit request capture. Request builtins capture
request; redirect writes request.out. The runtime builds one request value
per request, passes request and props handles to handlers, applies
request.out once after the top-level handler, and drops the pending-props
slot, handler frames, per-handler refresh, and current_request(). Core ABI
38, unit ABI 39. Legacy request type checks and the removed-API migration
table are gone from the compiler. Documentation, generated routes, tests,
and the project home follow; the home page loses the demo and starter.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 14:05:04 +00:00
udo 75c30b2ab7 Treat none as empty and interpolate dvals as strings. 2026-10-05 17:42:38 +00:00
root 41d7b9533c Pass component properties and export values by reference. 2026-10-02 20:20:11 +00:00
root f883236081 Share dval nodes and make clone explicit. 2026-10-02 10:59:31 +00:00
root 97d7178771 Replace serialized dval payloads with live core DValue pointers. 2026-10-01 21:57:36 +00:00
root 0c90a39e16 Share one request dval across handlers. 2026-09-30 23:36:52 +00:00
root 63b52f54a1 Remove split-target unit_call forms. 2026-09-30 14:38:17 +00:00
root 9399a1b7ee Generate shared DValue allocation code. 2026-09-04 20:18:45 +00:00
root 1d0ce4665b Make Capy artifact paths reproducible. 2026-09-03 17:28:30 +00:00
root 65538d4c4b Add embedded Capy struct reflection. 2026-09-01 17:40:03 +00:00
root 256bf88ebb Align Capy API contracts and noise generation. 2026-09-01 15:23:41 +00:00
root 3338030dbd Format binary64 values in Capy. 2026-08-31 12:57:33 +00:00
root 9da9f25d74 Format Capy integers in WebAssembly. 2026-08-28 21:28:46 +00:00
root 106087add4 Add numeric types and simplify runtime APIs. 2026-08-26 11:31:52 +00:00
root 8ffa25f51b Unify Capy type constructors. 2026-08-25 21:03:36 +00:00
root 234406a8e7 Reject strings as Capy conditions. 2026-08-25 07:49:39 +00:00
root e8274a4e30 Remove redundant Capy API functions. 2026-08-25 03:11:31 +00:00
udo 1d7cb4eb05 Return component render success status. 2026-08-24 00:16:26 +00:00
udo 6be9de17a4 Coerce Capy conditions through boolean constructors. 2026-08-23 16:44:37 +00:00
udo 7c5647b151 Use interpolation syntax to control escaping. 2026-08-23 15:36:42 +00:00
udo 9a50888fe7 Write response state through mutable request values. 2026-08-23 15:20:55 +00:00
udo f2f25fb7a5 Replace redundant runtime accessors with keyed dispatch. 2026-08-23 14:01:55 +00:00
udo 6d89411304 Remove retired unit and duplicate DValue APIs. 2026-08-23 10:31:57 +00:00
root a8c7e2533e Fix managed parameter rebinding and compiler timeout cleanup. 2026-08-22 21:08:01 +00:00
root 39f742fffb Remove support for C++ units. 2026-08-22 17:23:13 +00:00
root 13f8e2f7db Require explicit yields in Capy blocks. 2026-08-04 18:12:19 +00:00
root 54619748f4 Escape markup interpolations for their context. 2026-08-04 00:36:01 +00:00
root d84a5c75f4 Redesign Capy aggregates and request inputs. 2026-08-03 02:50:06 +00:00
root 9b31e8e00b Infer integer literal types from context. 2026-08-02 19:06:36 +00:00
root 67c2a3c3dd Teach Capy with a tutorial guide. 2026-08-02 16:54:36 +00:00
root 9062686220 Add safe accessors for Capy DValues. 2026-08-02 16:07:22 +00:00
root eb0798e965 Add concise syntax for Capy DValues. 2026-08-02 05:06:59 +00:00
root 0e2449c7f4 Add transport bounds and disable TCP listeners by default. 2026-08-01 23:42:20 +00:00
root 3517b2034a Replace constant declarations with top-level type aliases. 2026-08-01 13:14:30 +00:00
udo 0e0ffd2e17 Document the complete Capy language guide. 2026-07-31 14:59:18 +00:00
udo 8e5641a73a Share Capy formatting functions. 2026-07-31 13:48:57 +00:00
udo 5c4d753ea4 Add Capy constructors, vectors, and variadic parameters. 2026-07-31 11:59:00 +00:00
udo 43e3559244 Add Capy coercions and unify language documentation. 2026-07-31 00:03:12 +00:00
udo dccd853089 Use colon syntax for named Capy handlers. 2026-07-30 21:28:10 +00:00
root 4eb968fb41 Add task workers and optional Datastar support. 2026-07-30 19:41:58 +00:00
udo 7a09deb647 Add module capabilities and cache parsed Capy sources. 2026-07-30 06:02:59 +00:00
udo d5a4436615 Return values from Capy variable declarations. 2026-07-26 11:05:47 +00:00
udo 9b80d6a82b Simplify typed host bindings and symbolic operations. 2026-07-26 00:39:58 +00:00