Repository navigation
v0.30.0
What's Changed
- Fix reading WAYMARK_SCHEDULER_BATCH_SIZE env var by @MOZGIII in #295
- Use newtypes instead of raw UUIDs for some core ID types by @MOZGIII in #296
- Add an waymark-fn-main-common and rework the log initialization by @MOZGIII in #299
- Add prometheus metrics exporter server by @MOZGIII in #302
- Add a symlink to the last soak run by @MOZGIII in #301
- Add color-eyre to waymark-fn-main-common by @MOZGIII in #300
- Add waymark-timed and waymark-timed-channels crates by @MOZGIII in #303
- Eliminate extra nesting of the CoordinatorEvents at runloop by @MOZGIII in #305
- Allow fastapi cross-dependencies by @piercefreeman in #294
- Initial integration of the timed messages by @MOZGIII in #304
- Run soak test in CI by @piercefreeman in #306
- Avoid messing with the start workers' RUST_LOG defaults at soak harness by @MOZGIII in #309
- Move dag-related errors to proper places and split builder and validator errors by @MOZGIII in #311
- Refactor the scheuler loop and eliminate blocking in dag resolver by @MOZGIII in #312
- More triggers for chained-prs CI checks by @MOZGIII in #313
- Add timed-future crate by @MOZGIII in #316
- Update docker compose to use postgres 18 with auto explain by @MOZGIII in #314
- Use postgres 18 at CI by @MOZGIII in #315
- Add proper timed annotations to all db invocation at postgres backend by @MOZGIII in #317
- Rework how soak harness counts queued instances & switch some params to non-zero by @MOZGIII in #319
- Add a limit on the nodes number by @MOZGIII in #322
- Make FaultInjectingBackend generic around the inner backend by @MOZGIII in #323
- Extract the runner retry policy to a separate crate by @MOZGIII in #324
- Refactor synthetic exceptions by @MOZGIII in #325
- Revert "Add a limit on the nodes number" by @MOZGIII in #327
- Add the ability to produce large results in soak harness by @MOZGIII in #321
- Wrap the execution result with typed wrappers by @MOZGIII in #326
- Improve the synthetic exceptions API by @MOZGIII in #330
- Add a limit on the nodes number as an instance terminal error by @MOZGIII in #328
- A fix for "Enhance error handling for runner state node limit exceeded scenarios" by @MOZGIII in #331
- Optimize update:runner_instances_state performance with indexing and autovacuum tuning [do not merge, yet?] by @MOZGIII in #320
- Compile python list comprehensions into IR by @piercefreeman in #334
- Support list merging by star unpacking by @piercefreeman in #333
- Support dataclasses as typehints by @piercefreeman in #336
- Add waymark-jsonlines by @MOZGIII in #289
- Update rand 0.9.2 to 0.9.3 by @MOZGIII in #341
- Integrate tokio-metrics crate by @MOZGIII in #337
- Add metrics and logs from the bughunt by @MOZGIII in #338
- Refactor hydration and how the dag is kept alongisde the instances by @MOZGIII in #342
- Introduce a proper id type for WorkflowVersionId by @MOZGIII in #343
- Switch schedule id to a waymark-ids newtype and use it consistently by @MOZGIII in #344
- Switch dag node ids to newtypes by @MOZGIII in #345
- Drop unutilized NodeUuid and node uuids in DAG by @MOZGIII in #346
- Make queued instance state non-optional by @MOZGIII in #347
- Refactor the RunnerState construction API by @MOZGIII in #348
- Add
eithersupport to more backends by @MOZGIII in #351 - Bump rustls-webpki by @MOZGIII in #352
- Split expression types out from runner state into their own crate by @MOZGIII in #354
- Split value visitor parts with better encapsulation by @MOZGIII in #355
- Split the runner state parts into separate mods and restructure its internals by @MOZGIII in #356
- Extract execution state from runner-state into a new runner-execution-core crate by @MOZGIII in #357
- Introduce a new ExecutionGraph type and use it at the RunnerState and GraphUpdate by @MOZGIII in #359
- Switch from keeping runner state at queued instance to keeping only the graph by @MOZGIII in #361
- Add runner-execution-id crate for deterministic ids by @MOZGIII in #362
- Drop serde from runner state by @MOZGIII in #363
- Add worker reservation crate by @MOZGIII in #368
- Add worker message protocol crate by @MOZGIII in #372
- Add worker process crate by @MOZGIII in #370
- Bump rust to 1.95.0 by @MOZGIII in #373
- Add worker remote bridge service crate by @MOZGIII in #371
- Bump rustls-webpki to 0.103.13 by @MOZGIII in #379
- Introduce new core backend traits by @MOZGIII in #365
- Add worker process pool and spec by @MOZGIII in #374
- Add worker python crate by @MOZGIII in #375
- Add worker-remote-pool crate by @MOZGIII in #380
- Integrate new workers into executables by @MOZGIII in #377
- Add waymark_runner_register_node_graph_nodes_len metric by @MOZGIII in #381
- Increase grpc message limit by @piercefreeman in #383
- Fail actions if grpc bridge is closed by @piercefreeman in #384
- Drop unused execution proto by @MOZGIII in #387
- Add vm-ast-old and ast-old parsing from proto by @MOZGIII in #386
- Add machinery for loading python workflows from rust by @MOZGIII in #390
- Drop unused cargo deny licenses by @MOZGIII in #389
- Initial version of the new VM by @MOZGIII in #388
- Add support-test-python crate by @MOZGIII in #391
- Add an assert for type-safety at python/scripts/export_workflow_ir.py by @MOZGIII in #392
- Add more structure to the vm cli by @MOZGIII in #394
- Preserve order of call definitions at the python AST by @MOZGIII in #395
- Initial compiler version by @MOZGIII in #393
- Add snapshot testing to the old-ast compiler by @MOZGIII in #396
- Refactor the compiler by @MOZGIII in #397
- Optimize frame register usage at compiler by @MOZGIII in #398
- Implement support for binary and unary scalar ops by @MOZGIII in #399
- Proper VM extcalls by @MOZGIII in #400
- Implement support for sleep at the VM by @MOZGIII in #401
- Add vm-value crate and integrate it at vm-cli by @MOZGIII in #403
- Integrate vm-value at compiler-ast-old tests by @MOZGIII in #405
- Add dict and list creation support (and all pre-requisites) by @MOZGIII in #404
- Add vm-compiler-for-ast-old-const-value by @MOZGIII in #406
- Clean up the compiler test support crate and helpers by @MOZGIII in #407
- Implement length instruction / global function by @MOZGIII in #408
- Implement index and dict dot ops by @MOZGIII in #409
- Implement for loops support at compiler by @MOZGIII in #410
- Split compiler tests by @MOZGIII in #415
- Add bytecode formatting facilities by @MOZGIII in #413
- Add the ast to the snapshots by @MOZGIII in #414
- Refactor the promises architecture at the VM runtime by @MOZGIII in #411
- Eliminate synthetics from for loops by @MOZGIII in #416
- Implement spreads support by @MOZGIII in #417
- Add append instruction by @MOZGIII in #418
- Optimize indexed spreads register usage by @MOZGIII in #419
- Add support for spreads without targets by @MOZGIII in #421
- Optimize away extra copies for spread iteration by @MOZGIII in #420
- Add support for exceptions at the VM runtime and compiler by @MOZGIII in #424
- Add runtime snapshotting by @MOZGIII in #429
- Import website docs by @piercefreeman in #433
- More serde implementations for VM types (and small correction to the previous work in this domain) by @MOZGIII in #434
- Add vm-codec-core and vm-codec-rmp by @MOZGIII in #436
- Implement effect counting at vm-runtime by @MOZGIII in #441
- Advanced VM driver facilities by @MOZGIII in #437
- Add workload pinning subsystem by @MOZGIII in #438
- Bump anyhow by @MOZGIII in #444
- Tweak some AI annoyances at AGENTS.md by @MOZGIII in #435
- Add conversions machinery by @MOZGIII in #439
- Add vm-value-convert-json by @MOZGIII in #443
- VM effects handling machinery by @MOZGIII in #445
- Bump crossbeam-epoch by @MOZGIII in #451
- State managers by @MOZGIII in #446
- Add workflow-service-vm-runtimes-backend by @MOZGIII in #447
- Implement vm-runtimes and workload pinning backends for postgres by @MOZGIII in #448
- Add pr-stack script by @MOZGIII in #465
- Add execution-driver crate by @MOZGIII in #449
- Add system-vm crate by @MOZGIII in #450
- Various small adjustments by @MOZGIII in #452
- Add compiler metadata machinery by @MOZGIII in #456
- Add fullset-effect-handler by @MOZGIII in #453
- Add durable workflow completion machinery by @MOZGIII in #454
- Add transient workflows completions machinery by @MOZGIII in #455
- Add service for VM runtimes managements by @MOZGIII in #457
- Add executables management by @MOZGIII in #458
- Add execution-bringup crate by @MOZGIII in #459
- Add transient-execution-bringup by @MOZGIII in #460
- Crude PoC of the VM integration into start-workers by @MOZGIII in #461
- Crude PoC of the VM integration into bridge by @MOZGIII in #462
- Minor corrections to the example app docker setup by @MOZGIII in #463
- Cleanup dead code (partial) by @MOZGIII in #464
- Integrate VMs [wip] by @MOZGIII in #428
- Proper handling of the action runtime metadata by @MOZGIII in #467
- Small refactor to the extcall-reconciler-core traits and more documentation for the vm-driver promise settler by @MOZGIII in #470
- Durable action completions by @MOZGIII in #469
- Durable action requests by @MOZGIII in #471
- Expose the driver error to the execution-runtime by @MOZGIII in #472
- Tidy the workload-pinnings-related glossary and naming in preparation for scheduling by @MOZGIII in #514
- Parking support at the workload pinnings by @MOZGIII in #474
- Preparations for the durable sleep implementation by @MOZGIII in #475
- Durable sleep by @MOZGIII in #476
- Share promise settlement pollers implementation by @MOZGIII in #477
- Replace the db purge interfaces with a trigger on
vm_runtime_snapshotsDELETE by @MOZGIII in #478 - Correct the
vm-driver-level semantics on the stale promise resolutions by @MOZGIII in #479 - Switch from passing timestamps to passing durations to the DB layer by @MOZGIII in #480
- Defensive fencing for workloads by @MOZGIII in #481
- Refactor and correct unpin loop / cleanup at workload pinnings by @MOZGIII in #482
- Extract settled vm promise state variants into a unified enum by @MOZGIII in #484
- Add "select" control flow instruction to the VM by @MOZGIII in #486
- Implement creating exception values in the VM by @MOZGIII in #487
- Implement extra functions at vm-compiler-for-ast-old by @MOZGIII in #490
- Implement unskippable sleep instructions by @MOZGIII in #496
- Implement timeouts and retries at the vm compiler side by @MOZGIII in #489
- Cleanup unused fields from ActionRef by @MOZGIII in #491
- VM runtime builder by @MOZGIII in #492
- Correct the symmetry of the action-runtime-worker-pool metadata by @MOZGIII in #494
- Refactor transient-execition-bringup to allow for more variety by @MOZGIII in #493
- Upgrade vm-cli for the real worker-pool transient execution by @MOZGIII in #495
- Upgrade smoke binary with the new VM by @MOZGIII in #497
- Upgrade integration-test binary with the new VM by @MOZGIII in #498
- Upgrade benchmark binary with the new VM by @MOZGIII in #499
- Upgrade fuzzer binary with the new VM by @MOZGIII in #500
- Port soak-harness binary to use new VM by @MOZGIII in #501
- Reorder fns at smoke sources to match the calling convention by @MOZGIII in #503
- Implement support for kwargs at user-defined functions by @MOZGIII in #502
- Lock python tools versions by @MOZGIII in #541
- Add support for multi-value assignments by @MOZGIII in #504
- Implement range assignments at the vm compiler by @MOZGIII in #505
- Work around the division-by-zero error in benchmark for now by @MOZGIII in #506
- Poll rate limiting at workload-pinning-manager by @MOZGIII in #507
- Unconfirmed locks at action-effect-reconciler by @MOZGIII in #508
- Fix the span propagation at state-vm-runtimes by @MOZGIII in #509
- Allow configuring db pool size at bench by @MOZGIII in #510
- Add batcher by @MOZGIII in #511
- Batch snapshot writes by @MOZGIII in #513
- Batch more database operations to improve the performance by @MOZGIII in #515
- Use the time instant for the backend calls at the action effect reconciler by @MOZGIII in #516
- Workflow registration batching by @MOZGIII in #517
- Refactor benchmarking cli command by @MOZGIII in #519
- Drop anyhow from the codebase by @MOZGIII in #520
- Re-add queue-batch-size flag to soak-harness by @MOZGIII in #521
- Turn some interpreter errors into catchable exceptions by @MOZGIII in #522
- Bump tonic to 0.13 and then to 0.14; then bump h2 by @MOZGIII in #552
- Tighter CI checks by @MOZGIII in #523
- Run the worker pool per test case at integration tests by @MOZGIII in #524
- Clean up legacy runloop: phase 1 by @MOZGIII in #525
- Clean up legacy runloop: phase 2 by @MOZGIII in #526
- Clean up legacy runloop: phase 3 by @MOZGIII in #527
- Clean up legacy runloop: phase 4 by @MOZGIII in #528
- Clean up legacy runloop: phase 5 by @MOZGIII in #529
- Clean up legacy runloop: phase 6 by @MOZGIII in #530
- Clean up legacy runloop: phase 7 by @MOZGIII in #531
- Consolidate and fix database cleanup helpers by @MOZGIII in #532
- Add machine-readable JSON output to the benchmark by @MOZGIII in #545
- Drop the dead benchmark harness and run the benchmark directly in CI by @MOZGIII in #546
- Add a smoke check job to CI by @MOZGIII in #547
- Fix manylinux build by @piercefreeman in #554
- Support macOS 11+ in release wheels by @piercefreeman in #555
- Deliver the workflow outcome before waiting for VM to terminate at transient execution by @MOZGIII in #556
- Drop the WorkflowNodeResult and return the completion value as-is by @MOZGIII in #557
- Classify terminal VM driver exits correctly by @piercefreeman in #558
- Fix stale python proto codegen by @MOZGIII in #607
- Migrate well-known proto types to prost-wkt-types by @MOZGIII in #609
- Implement scheduler by @MOZGIII in #610
- Generalize spread fan-out to accept workflow helper functions by @MOZGIII in #606
- Drop dead id types from ids crate by @MOZGIII in #612
- Define blanket impl for dummy grouping traits via a macro by @MOZGIII in #533
- Use derive_more for more compact fullset instruction set declaration by @MOZGIII in #534
- Fixup Cargo.lock by @MOZGIII in #613
- Update mountaineer-di to 0.3.0 by @piercefreeman in #619
- A hotfix for postgres deadlocks by @MOZGIII in #617
- Switch to a more robust CaptureRuntimeView design by @MOZGIII in #535
- Bump rustls and some of its deps by @MOZGIII in #702
- Macro-powered interpreter composition by @MOZGIII in #536
- Apply useful changes from the cancelled operations refactor by @MOZGIII in #539
- Generalize VM values over flavors and make a python flavor by @MOZGIII in #544
- Make workflow arguments opaque bytes at the protocol level by @MOZGIII in #559
- Improve the RoundTripMetrics composition by @MOZGIII in #560
- Simplify the worker-core and related API surface by @MOZGIII in #561
- Rework worker protocol by @MOZGIII in #562
- Eliminate JSON intermediary conversions for values by @MOZGIII in #563
- Rename the WorkflowArgumentValue to just Value (and the rest accordigly) by @MOZGIII in #564
- Cleaned up the value-related conversion machinery by @MOZGIII in #565
- Rename vm-value-convert-proto to vm-value-python-convert-proto by @MOZGIII in #566
- Split and rework the worker-core APIs at the rust side by @MOZGIII in #567
- Make the action execution loss explicit at the worker API by @MOZGIII in #568
- Distinct error states at the worker-message-protocol by @MOZGIII in #701
- Avoid re-exports of the PendingPromiseError by @MOZGIII in #569
- Adjust and cleanup the conversion API surface by @MOZGIII in #570
- Fix tonic build composition by @MOZGIII in #553
- Explicitly propagate action loss though the action completions reconciler by @MOZGIII in #571
- Make WorkflowOutcome shape explicit at the proto level by @MOZGIII in #572
- Define proper protocol-level boundaries for value trees by @MOZGIII in #573
- Generalize the action-runtime-convert around the actual value type by @MOZGIII in #574
- Remove the webapp for the rework by @MOZGIII in #621
- Metrics to track the workers by @MOZGIII in #622
- Core HTTP API machinery by @MOZGIII in #624
- Add lossy-batcher by @MOZGIII in #625
- Add retention-sweeper by @MOZGIII in #626
- Add sqlx-postgres-schema-pool by @MOZGIII in #627
- Proper node id type by @MOZGIII in #628
- Essential metrics subsystem core parts by @MOZGIII in #629
- Add observability-store-postgres (and -migrations) by @MOZGIII in #630
- Allow configuration of max connections for the main db pool by @MOZGIII in #631
- Observability core and essential-metrics config by @MOZGIII in #632
- Wire the observability core and essential-metrics pipeline through vertically by @MOZGIII in #633
- Add counter-rate by @MOZGIII in #634
- Port the soak harness to essential metrics by @MOZGIII in #635
- Remove the worker-status pipeline in favor of essential metrics by @MOZGIII in #636
- Add http-api-types by @MOZGIII in #659
- Add api-essential-metrics-http by @MOZGIII in #637
- Serve the observability API from start-workers by @MOZGIII in #638
- Serve the HTTP interface from soak runs by @MOZGIII in #639
- Serve the HTTP interface from the example app by @MOZGIII in #640
- Serve Swagger UI from the API by @MOZGIII in #641
- Extend the prometheus seconds buckets down to microseconds by @MOZGIII in #642
- Add node-sequence by @MOZGIII in #643
- Add the observability-events core and payload by @MOZGIII in #644
- Add cursor-core by @MOZGIII in #645
- Add query-limit by @MOZGIII in #656
- Add the observability-events backend traits by @MOZGIII in #646
- Add observability-events-emitter and -compat by @MOZGIII in #647
- Implement observability events backends at observability-store-postgres by @MOZGIII in #648
- Add the page, the cursor and the limit to http-api-types by @MOZGIII in #660
- Add api-observability-events-http-types by @MOZGIII in #661
- Add timestamp crate by @MOZGIII in #703
- Add api-observability-events-http by @MOZGIII in #649
- Wire the observability-events pipeline through vertically by @MOZGIII in #650
- VM driver hooks machinery by @MOZGIII in #651
- Feed the observability events from the VM driver hooks by @MOZGIII in #652
- Route the VM driver run logging through the hooks by @MOZGIII in #653
- Trace every transient VM driver run via the hooks by @MOZGIII in #723
- Per-VM timeline of the observability events by @MOZGIII in #654
- Observability state API and the instance view by @MOZGIII in #655
- Reword the scheduler-core crate doc by @MOZGIII in #657
- Separate read pool for observability database by @MOZGIII in #662
- Set a statement timeout on the observability pools by @MOZGIII in #663
- Sweep the observability retention in chunks by @MOZGIII in #664
- Record the snapshot_persisted events only when asked by @MOZGIII in #665
- Carry the observability events' drops in the essential metrics by @MOZGIII in #724
- Bring the observability subsystem up under the benchmark on request by @MOZGIII in #666
- Take the essential-metrics series range as the timestamp proxy by @MOZGIII in #721
- Take the essential-metrics series range as the timestamp proxy by @MOZGIII in #752
- List the observability knobs in the start-workers configuration doc by @MOZGIII in #731
- Better clarify the WAYMARK_OBSERVABILITY_READ_DATABASE_URL purpose in the docs by @MOZGIII in #753
- Add os-shutdown-requests crate by @MOZGIII in #668
- Fix soak harness Ctrl+C handling by @MOZGIII in #667
- Port start-workers shutdown signals to os-shutdown-requests by @MOZGIII in #671
- Add task-supervisor crate by @MOZGIII in #672
- Supervise every start-workers task from main by @MOZGIII in #673
- Rework the worker pool initialization and error surface by @MOZGIII in #674
- Drop the transient worker pool bringup's caller reminder by @MOZGIII in #728
- Act once per worker generation on recycle reports by @MOZGIII in #720
- Add the managed-spawner crates by @MOZGIII in #675
- Switch the secondary binaries to task-supervisor by @MOZGIII in #676
- Keep the execution driver loop alive while the VM drivers execute by @MOZGIII in #677
- Run the inline worker pool's actions from a pool loop that waits for them by @MOZGIII in #678
- Rework the managed-process API around observing the child's exit by @MOZGIII in #679
- Stop the soak worker gracefully through managed-process by @MOZGIII in #680
- Fix the worker bridge bringup's returned-address doc by @MOZGIII in #681
- Drain secondary binaries' supervisors on every exit by @MOZGIII in #682
- Make workload-pinning-manager's outcome an error by @MOZGIII in #683
- Add an error converter to fn-main-common by @MOZGIII in #684
- Route the binaries' supervisors through managed-spawner-supervised by @MOZGIII in #685
- Make the state sweeper a future at execution-bringup by @MOZGIII in #686
- Bring everything up through the managed spawner by @MOZGIII in #687
- Correct execution-bringup cancellation token application by @MOZGIII in #688
- Bring the Prometheus exporter up through the managed spawner by @MOZGIII in #689
- Bring the tokio metrics reporters up through the managed spawner by @MOZGIII in #690
- Make the transient execution's response stream own its per-request tasks by @MOZGIII in #691
- Document what lossy means for the lossy batcher by @MOZGIII in #692
- Route the batchers' shutdown through the force shutdown token by @MOZGIII in #693
- Make the lossy batchers end on their last handle by @MOZGIII in #694
- Stop the state-manager sweeper loop only when its state is gone by @MOZGIII in #695
- Stop the demand registry bookkeeping and the ackers when their registrars and handles are gone by @MOZGIII in #696
- Report the worker pool shutdown from poll_complete as None instead of an error by @MOZGIII in #697
- Split the worker pool handle into requests and completions sides by @MOZGIII in #698
- Stop the lock renewal loop as soon as its channel is closed and nothing is tracked by @MOZGIII in #699
- End the lock renewal with the worker pool by @MOZGIII in #700
- Add schedules to the example app's dev reset by @MOZGIII in #705
- Declare the typing-extensions dependency by @MOZGIII in #706
- Declare exactly the tonic and tokio features the bridge crates use by @MOZGIII in #707
- Gate rustdoc warnings in the extended Rust lint by @MOZGIII in #708
- Document the server bringups' spawned tasks by @MOZGIII in #709
- Replace RoundTripMetrics with ActionRoundTrip in the worker message protocol by @MOZGIII in #710
- Drop the worker's inert cleanup timeout by @MOZGIII in #711
- Bring the docs in line with the current knobs and helpers by @MOZGIII in #712
- Raise a typed error when a workflow fails by @MOZGIII in #713
- Mark the exception class hierarchy as input to the planned base-class matching by @MOZGIII in #765
- Run the binaries' supervisors on the report's Error form by @MOZGIII in #714
- Add fn-main-lifecycle crate by @MOZGIII in #715
- Run the start-workers lifecycle through fn-main-lifecycle by @MOZGIII in #716
- Take a shutdown future in the worker pool loop by @MOZGIII in #717
- Relax the pinning error bounds at the execution bringup by @MOZGIII in #718
- Run the Rust tests with all features by @MOZGIII in #722
- Bring the AGENTS.md trait-method and metrics rules up to date by @MOZGIII in #729
- Log level tweaks by @MOZGIII in #730
- Mark the soak harness's observability connect for the database setup rework by @MOZGIII in #732
- Add error-fmt crate by @MOZGIII in #754
- Inline the sources in the library error messages by @MOZGIII in #733
- Make out-of-range worker indices a panic in the process pool by @MOZGIII in #735
- Drop the unused default features of metrics-exporter-prometheus by @MOZGIII in #736
- VM driver hooks: a unifying trait, exposed at the transient bringups by @MOZGIII in #737
- Take the task monitor as an input of the tokio metrics bringup by @MOZGIII in #738
- Drop the unused googleapis-common-protos dependency by @MOZGIII in #739
- Run the coverage suite once for both reports by @MOZGIII in #740
- Document the observability store as one schema by @MOZGIII in #741
- Run the lossy batcher's flushers as tasks by @MOZGIII in #742
- Derive the action runtime metadata decode errors with thiserror by @MOZGIII in #743
- Log each shutdown request as one line in start-workers by @MOZGIII in #744
- Stop the durable integration run at the first early task end by @MOZGIII in #745
- Declare exactly the tokio features the remote worker pool uses by @MOZGIII in #746
- Align the transient stream missing-result status with the sibling messages by @MOZGIII in #747
- Reflow two ragged doc comments by @MOZGIII in #748
- Correct the lossy batcher's sharing doc and swapchain closers list by @MOZGIII in #749
- Take the README wording for the max concurrent instances knob by @MOZGIII in #750
- Document the worker remote bringup crates and their start error by @MOZGIII in #751
- Render the soak harness's database wait error with its optional source by @MOZGIII in #755
- Skip the lock renewal heartbeats a slow renewal held up by @MOZGIII in #756
- Declare exactly the tokio features the worker process uses by @MOZGIII in #757
- Sweep the runloop term out of the guides, scope the instances cap per process and name the HTTP variables by @MOZGIII in #758
- Truncate a timedelta timeout once, after adding up its keywords by @MOZGIII in #762
- Document the retry policy as the runtime enforces it by @MOZGIII in #761
- Delete the example app's orphan uv.lock by @MOZGIII in #759
- Derive IdDecodeError with thiserror by @MOZGIII in #760
- Log per-workflow, per-schedule and per-worker events at
debuglevel by @MOZGIII in #763 - Update sqlx to 0.9 and switch to a git rev by @MOZGIII in #767
- Build and embed a hello-world SPA in the HTTP server by @piercefreeman in #670
- Redesign the observability webapp and wire it to the API by @piercefreeman in #704
- Read the PyPI readme from the shared README at build time by @MOZGIII in #777
- Separate the raised exception from the exception value as a runtime-level generic by @MOZGIII in #785
- Resolve dotted except types to their class name and reject unsupported handler and retry filter forms by @MOZGIII in #786
- Reject retry and timeout policy fields the compiler cannot carry faithfully by @MOZGIII in #787
- Switch to fractional timeouts and backoffs by @MOZGIII in #788
- Rework Python spec preparation by @MOZGIII in #766
- Run the worker beside the start-workers binary and from its working directory by @MOZGIII in #789
- Drop the unread port variables from the example app image by @MOZGIII in #778
- Remove the stale
whileandcontinuerecommendations from the IR builder by @MOZGIII in #779 - Update the docs and README for the current runtime by @MOZGIII in #780
- Rename the start-workers bin to executor by @MOZGIII in #764
- Decouple executables provider at the VM runtimes factory from the state manager by @MOZGIII in #791
- Extract the shutdown signal listener into fn-main-lifecycle-ctrl-c by @MOZGIII in #793
- Run the bridge under the fn-main lifecycle by @MOZGIII in #794
- Split the observability-events emitter bringup out of start by @MOZGIII in #795
- Split the observability store config into per-use modes by @MOZGIII in #796
- Run the observability store migrations on a dedicated connection by @MOZGIII in #797
- Allow turning off the observability store's statement timeouts by @MOZGIII in #798
- Add a schema version check for SQLx migrations by @MOZGIII in #799
- Check the schema version in the bridge instead of migrating by @MOZGIII in #800
- Extract the shared Postgres config and bringup out of the observability store by @MOZGIII in #801
- Move the main database onto the shared Postgres config and bringup by @MOZGIII in #802
- Per-process defaults for the Postgres pool config by @MOZGIII in #803
- Move the main database's bringup out of the bridge's workflow store into its fn main by @MOZGIII in #804
- Add check_migrations to the Postgres bringup by @MOZGIII in #805
- Add a schema version check for the observability store migrations by @MOZGIII in #806
- Give every observability store mode a migrations connection or a migrations check by @MOZGIII in #807
- Bring the observability-events emitter up in the bridge by @MOZGIII in #808
- Pass the executable's name and version from the VM executables backend to the VM executables state by @MOZGIII in #809
- Pass the executable's metadata to the VM driver hooks provider by @MOZGIII in #810
- Add the executable to the VM driver's start events by @MOZGIII in #811
- Add the bridge's executable_registered event by @MOZGIII in #812
- Emit the executables registered through the bridge by @MOZGIII in #813
- Keep the executables the events carry by @MOZGIII in #814
- Serve the instance's executable by @MOZGIII in #815
- Move the migrations check's wait claim from the configs to the check by @MOZGIII in #816
- Keep the config docs to what the config holds by @MOZGIII in #817
- Call wrap_err_with as a method in the bridge by @MOZGIII in #818
- Make a failed startup the result over a task's early end by @MOZGIII in #819
- Fix SPA refreshes and streamline workflow navigation by @piercefreeman in #776
- Put the language-neutral docs groups first in the navigation by @MOZGIII in #824
- Correct the docs, README and CONTRIBUTING against the current runtime by @MOZGIII in #822
- Pass workflow and action arguments as written by @MOZGIII in #823
- Describe the language-neutral docs without centering Python by @MOZGIII in #830
- Update dependencies to pull in latest CA blocklists by @MOZGIII in #831
- Update deps to clear CVEs by @MOZGIII in #836
- Adopt lapsed action-call requests during the settlement wait by @MOZGIII in #835
- Defer gRPC imports until the first RPC by @piercefreeman in #834
- Update pulldown-cmark to fix nested wikilink parsing by @piercefreeman in #863
- Standardize compilation global handlers (gather POC) by @piercefreeman in #839
- Extend shared compiler handler dispatch by @piercefreeman in #840
- Move run_action policies into a registered handler by @piercefreeman in #841
- Move asyncio.sleep into a registered handler by @piercefreeman in #842
- Register len with explicit compiler support by @piercefreeman in #843
- Register range with explicit compiler support by @piercefreeman in #844
- Register enumerate with explicit compiler support by @piercefreeman in #845
- Reject unsupported isinstance calls through a handler by @piercefreeman in #846
- Move data constructors into a registered model handler by @piercefreeman in #847
- Resolve registered actions by callable identity by @piercefreeman in #848
- Register list.append with ownership validation by @piercefreeman in #849
- Reject unsupported Python source semantics by @piercefreeman in #850
- Separate shared source analysis and register syntax handlers by @piercefreeman in #851
- Let append decide whether shared ownership facts permit mutation by @piercefreeman in #852
- Move try statement validation and lowering into its syntax handler by @piercefreeman in #853
- Move loop validation and lowering into a syntax handler by @piercefreeman in #854
- Move arithmetic support checks and lowering into a syntax handler by @piercefreeman in #855
- Move comparison validation and lowering into a syntax handler by @piercefreeman in #856
- Move assignment rules and lowering into a syntax handler by @piercefreeman in #857
- Move dictionary validation and lowering into a syntax handler by @piercefreeman in #858
- Move attribute and index access rules into a syntax handler by @piercefreeman in #859
- Move literal validation and lowering into a syntax handler by @piercefreeman in #860
- Move await validation and expression lowering into a syntax handler by @piercefreeman in #861
- Group compiler helpers in a dedicated package by @piercefreeman in #864
- Remove unused legacy compiler lowering helpers by @piercefreeman in #865
- Separate workflow source loading from IR lowering by @piercefreeman in #866
- Move conditional lowering into its syntax handler by @piercefreeman in #867
- Move return lowering into its syntax handler by @piercefreeman in #868
- Move sequence literal lowering into its syntax handler by @piercefreeman in #869
- Require expression compilation to return IR or raise by @piercefreeman in #870
- Resolve calls without emitting and lower each call once by @piercefreeman in #871
- Lower initializer constructors once for attribute access by @piercefreeman in #872
- Group syntax handlers by statements and expressions by @piercefreeman in #873
- Type compiler recommendation and policy keys by @piercefreeman in #874
- Use one nested form for conditional lowering by @piercefreeman in #875
- Centralize unsupported syntax diagnostics in a catalog by @piercefreeman in #876
- Share AST argument binding across compiler call paths by @piercefreeman in #877
- Document compiler limitations and verified safeguards by @piercefreeman in #881
- Add a make target that rewrites the Python compiler's snapshots by @MOZGIII in #878
- Fix string length calculation in integration fixture by @piercefreeman in #882
Full Changelog: v0.22.0...v0.30.0