ITADN
obeli-sk/obelisk

版本发布 8

obelisk-v0.37.5v0.37.5
? · 2026-04-12

### Fixed - *(webhook-js)* Allow parsing request body via `text`, `json`, `form_data` - ([56f4a2c](https://github.com/obeli-sk/obelisk/commit/56f4a2ceff140682afd62cc065bcc070daa8d9ee))

obelisk-v0.37.1v0.37.1
? · 2026-04-08

### Fixed - *(cli)* Output WASM WITs using their `Resolve` in `generate wit-deps` - ([9a8cb04](https://github.com/obeli-sk/obelisk/commit/9a8cb043a53f7039b604d71ea84c74868d624ce0)) - Disallow JS and WASM components sharing the same `IfcFqn` - ([c8b595b](https://github.com/obeli-sk/obelisk/commit/c8b595b9579b4578bf05825145e07b1609a82b9f)) ### Changed - Print WIT indended with 4 spaces - ([edad80a](https://github.com/obeli-sk/obelisk/commit/edad80a628b98ec201fa1af97868080692566148))

obelisk-v0.35.4v0.35.4
? · 2026-02-11

### Added - *(cli)* Add `--overwrite` option to `obelisk generate wit-support` - ([24dfe10](https://github.com/obeli-sk/obelisk/commit/24dfe1099281c2cefd16191ded95edca65da9404)) ### Fixed - Replace deprecated 'obelisk client' with 'obelisk' in README - ([d109392](https://github.com/obeli-sk/obelisk/commit/d109392e640efd45126324484efcf78e7e5798ed)) - Install system CAs in docker images - ([f78ce87](https://github.com/obeli-sk/obelisk/commit/f78ce87d5c657e3bc29b4a983dd701d24e8bea44)) - Use consistent ns_package@version.wit naming for all generated WIT files - ([cdc1e47](https://github.com/obeli-sk/obelisk/commit/cdc1e47e2a88c71a6e1705861f5c84df52838574)) ### Changed - Write Obelisk header in `generate wit-deps` files - ([3fe7b7a](https://github.com/obeli-sk/obelisk/commit/3fe7b7aa255bab9cc2ef5c05c24058f32c4bb0be)) - Indent WIT by 4 spaces - ([65a0908](https://github.com/obeli-sk/obelisk/commit/65a090838a9e59895a8ce86d91ceb0fbea2f0a2a)) - Replace `found_response: bool` in `JoinNextTry` history event with `JoinNextTryOutcome` enum (`found`, `pending`, `all_processed`). Old serialized data is deserialized via backwards-compatible serde support. The gRPC `JoinNextTry` message now has an `Outcome` enum field alongside the deprecated `found_response` bool. ([#247](https://github.com/obeli-sk/obelisk/pull/247))

obelisk-v0.35.0v0.35.0
? · 2026-02-08

This release introduces **workflow replay** for debugging and recovery, **execution pausing/unpausing**, and **persistent logs storage**. Component management has been streamlined with `component add` and GitHub release path support (`gh://`). The database schema has changed - delete the old SQLite database with `obelisk server run --clean-sqlite-directory`. ### Highlights - **Workflow Replay**: Re-execute workflows from their event history for compatibility testing between workflow versions - **Pause/Unpause Executions**: Temporarily halt and resume workflow executions via API or WebUI - **Persistent Logs**: Store execution logs and output streams in the database, access via API or WebUI - **Component Management**: New `component add` command with `--locked` support and GitHub release paths (`gh://`) - **OpenAPI Schema**: Auto-generated OpenAPI documentation for the Web API - **Permanent Error Handling**: Activities returning a variant containing `permanent` skip retries - **snake_case JSON Serialization**: JSON representation of WIT values now uses `snake_case` instead of `kebab-case` ### Added - Implement workflow replay ([e4d9a92](https://github.com/obeli-sk/obelisk/commit/e4d9a92281cda744bba0687df5eb09ce0feaa615)) - Implement pausing/unpausing of executions ([3f4df76](https://github.com/obeli-sk/obelisk/commit/3f4df76742689cd6d717b2dd92cc5c9795b37147)) - Implement persistence layer for logs and streams ([3257336](https://github.com/obeli-sk/obelisk/commit/32573361c7cdcded8e0a95c559d9c58d6cf745d2)) - Add `component add` command with `--locked` option ([19b990e](https://github.com/obeli-sk/obelisk/commit/19b990ea9f9d72137ac4f58be6308a815a098b06), [d1dac13](https://github.com/obeli-sk/obelisk/commit/d1dac13f3ecba0d695bf3f733f79ec251f47b6ce)) - Allow specifying component location as GitHub release path (`gh://`) ([d704f31](https://github.com/obeli-sk/obelisk/commit/d704f315ec687d4cba86f6c5098b74e570dd181b)) - Add OpenAPI schema generation for web API ([5aae330](https://github.com/obeli-sk/obelisk/commit/5aae3301b26436dfe4639ddcacba4539fbb990b2)) - Skip retrying activity if it returns variant containing `permanent` ([ba08f0a](https://github.com/obeli-sk/obelisk/commit/ba08f0ae2e5f0c62f66cde8d6ef9df58097f37b5)) - Add `join-next-try` to WIT ([0e33fb7](https://github.com/obeli-sk/obelisk/commit/0e33fb75644a62e36f84f3002b6415eedd074b4c)) - Add `submit-json` and `get-result-json` to `workflow_support` ([9a9a66e](https://github.com/obeli-sk/obelisk/commit/9a9a66eac6be61d7ebf25681b3b160be23459383)) - Add `obelisk-version` field to config for version compatibility checking ([3df7516](https://github.com/obeli-sk/obelisk/commit/3df75160e477527f3f8d8dd963f861b7ed03ef20)) - Allow using URLs as a TOML config source ([ad5284b](https://github.com/obeli-sk/obelisk/commit/ad5284b6c98cc628638c6897a9c216f6e0ddb586)) - [**breaking**] Allow inspecting remote components ([84b6468](https://github.com/obeli-sk/obelisk/commit/84b6468caf78e30443a2c00cfab96c106899d384)) - Implement `/v1/executions/{id}/logs` ([ab068cf](https://github.com/obeli-sk/obelisk/commit/ab068cfde3a29b5ea7c3e15d61ef633c4545cbd3)) - Allow filtering executions by digest, deployment ID ([1c305b6](https://github.com/obeli-sk/obelisk/commit/1c305b62613e38551251ed535cc92256a58388ff)) - Add `GET /v1/deployment-id` and deployment state listing ([b0c7935](https://github.com/obeli-sk/obelisk/commit/b0c79355db749ab2942e11bff21869614bd2aa16), [b2c163d](https://github.com/obeli-sk/obelisk/commit/b2c163d33bf42755e8585e8575b4e75dbf2099b5)) - Add `/v1/functions` and `/v1/functions/wit?ffqn={ffqn}` endpoints ([b7b9a13](https://github.com/obeli-sk/obelisk/commit/b7b9a13768b4a69259b49d4ac04670494fc872ac), [73c47fd](https://github.com/obeli-sk/obelisk/commit/73c47fd7f389301b80b877c1ee67c8095d7ce8f8)) - Fail on type checking errors by default for `run`, `verify` ([fd7ac55](https://github.com/obeli-sk/obelisk/commit/fd7ac55c348071fc979d735a0c38b9f640583a05)) ### Fixed - Fix off-by-one errors in `random-u64` and `random_string` ([b1d8953](https://github.com/obeli-sk/obelisk/commit/b1d89539cb89d05d3d6200eece7af42d128d0119), [fd24910](https://github.com/obeli-sk/obelisk/commit/fd249108e60839262a14bd85e5c75356e0f16911)) - Return to pending if paused execution receives a response and unpauses ([bfcec56](https://github.com/obeli-sk/obelisk/commit/bfcec5600d016e776bf11852532cf6e73e5ff3e7)) - Close join sets on fatal errors ([0058fb2](https://github.com/obeli-sk/obelisk/commit/0058fb2fdac6843a19165440cf626fe178cc5022)) - Flush db cache before join set close ([48054ab](https://github.com/obeli-sk/obelisk/commit/48054abc5beabb6b3e9292b522173bc3a5a7ed52)) - Make server WIT types 4.0.0 compatible ([c3b0906](https://github.com/obeli-sk/obelisk/commit/c3b090685c78f5fc111dbc520ffa5fd681f487e9)) ### Changed - [**breaking**] Use `snake_case` for JSON serialization ([31e523e](https://github.com/obeli-sk/obelisk/commit/31e523e2e2629e9356e67de1014f8a99512d7547)) - [**breaking**] Use single `location` field with optional `oci://` prefix ([b744628](https://github.com/obeli-sk/obelisk/commit/b7446286e22ea88d2ebb96aabfda8a9102522461)) - [**breaking**] Make locking `by_component_digest` the default ([d2a3da6](https://github.com/obeli-sk/obelisk/commit/d2a3da6148cec48ec59432bd7c415c191e613a33)) - [**breaking**] Rename `log.stdout` to `log.console` ([ff07143](https://github.com/obeli-sk/obelisk/commit/ff07143cc3927d23976f80846e55cd51884ebb74)) - [**breaking**] Add "UNSPECIFIED" variant and prefixes to gRPC enums ([d26301f](https://github.com/obeli-sk/obelisk/commit/d26301f7afd3b296a96126b6225a5eeda0e306fd)) - [**breaking**] Database schema changes - delete old database required ### Removed - [**breaking**] Remove `convert_core_module` from TOML config ([f28fa9e](https://github.com/obeli-sk/obelisk/commit/f28fa9e7b4fcec2940cae71772140036f27d0748))

obelisk-v0.34.0v0.34.0
? · 2026-01-11

This release changes serialization format in the database. Error reporting has been improved. The most notable change is the ability to generate exported WIT packages of activities and workflows directly from the TOML configuration: ```sh obelisk generate wit-deps some.toml dstpath ``` ### Added - *(cli)* Generate all importable WITs from a TOML - ([8958cb9](https://github.com/obeli-sk/obelisk/commit/8958cb933ba68f210820ab7de226c1387a6dad87)) - *(toml)* Make `out` logging enabled by default - ([0afe30b](https://github.com/obeli-sk/obelisk/commit/0afe30bf73525536324f65a4b3d650eae897e3e6)) - *(toml)* Allow ignoring component's digest when requesting sources - ([5d5d6ee](https://github.com/obeli-sk/obelisk/commit/5d5d6eed63a34742b862bcde8838ca899e61dcf7)) - Allow running without exposing API server - ([3311497](https://github.com/obeli-sk/obelisk/commit/33114972a54e9a47e4519c9d897de360cf40467a)) - Add Litestream sample config - ([020a2dd](https://github.com/obeli-sk/obelisk/commit/020a2dd73cc0f72a00f5d5a495442e0429f8f75d)) - Print content digest in `inspect` - ([cf84e45](https://github.com/obeli-sk/obelisk/commit/cf84e454437503a4d717d884ce4e5edf70d71d72)) ### Changed - *(cli)* [**breaking**] Rename `generate extensions` to `generate wit-extensions` - ([7151ef9](https://github.com/obeli-sk/obelisk/commit/7151ef964cc71389250e88592f79ddaaacb751bd)) - *(db)* [**breaking**] Serialize all enum variants as `snake_case` - ([c1adb34](https://github.com/obeli-sk/obelisk/commit/c1adb34de89f12789595110648268b655b3ac8e9)) - *(cli)* Move `server generate-config` to `generate config` - ([869f7e5](https://github.com/obeli-sk/obelisk/commit/869f7e54af4c600f49e134178125653e3871267d)) ### Removed - Stop transforming core modules on `push` - ([f2058ad](https://github.com/obeli-sk/obelisk/commit/f2058ad2779019cf99acbedbd84d3221ea6b9b25)) - *(cli)* Enable `config-schema` only in debug builds - ([2799995](https://github.com/obeli-sk/obelisk/commit/27999953f0e4eacf8d175c91ed678f4d114eb61b))

obelisk-v0.28.1v0.28.1
? · 2025-11-26

### Fixed - Fixed a bug in lock extension. Non-blocking event cache is now flushed before the lock is extened.

obelisk-v0.26.0v0.26.0
? · 2025-10-22

This release contains database schema changes. ### ⛰️ Features - *(toml)* Allow disabling the timers watcher - ([bb651fe](https://github.com/obeli-sk/obelisk/commit/bb651fe6794e5c72853b9992dd9f4addce816db4)) - *(toml)* Allow debugging of WASM components - ([9f0beb9](https://github.com/obeli-sk/obelisk/commit/9f0beb9c55f8edaeb53a9dec03a1c7d12f079f60)) ### 🐛 Bug Fixes - *(grpc)* Fix panic when `get`ting an unfinished execution - ([5e9b080](https://github.com/obeli-sk/obelisk/commit/5e9b080b9e95a779ec0e358b3160f3aafd0f55c6)) ### 🚜 Refactor - *(sqlite)* Print metrics on configurable duration - ([266aa00](https://github.com/obeli-sk/obelisk/commit/266aa00e6893f4632cdd29249955fcc62021c0a5)) - *(sqlite)* [**breaking**] Readd column `last_lock_version` - ([d049ec4](https://github.com/obeli-sk/obelisk/commit/d049ec487d1ca563edca5b49f26dde682788a27d)) - *(sqlite)* Allow handling of `Locked` events in `append` - ([bb70f83](https://github.com/obeli-sk/obelisk/commit/bb70f83211dd1f8722f2a62c56b9b60850670722)) - *(sqlite)* Make `wait_for_finished_result` use channels instead of poll - ([fa90fe5](https://github.com/obeli-sk/obelisk/commit/fa90fe50e7cafaa4a4ecb7dd7241b49ac33d732c)) - *(sqlite)* Prototype using append-only `t_state` - ([cb3c2c1](https://github.com/obeli-sk/obelisk/commit/cb3c2c184fabd45943e524c0505cf57ac156e3e5)) - *(sqlite)* Shutdown right when the flag is read - ([b0d3ea7](https://github.com/obeli-sk/obelisk/commit/b0d3ea76c15171663d408b662b7e4756bc1eeaf3)) - *(sqlite)* Ignore metric recording errors - ([aedf3d8](https://github.com/obeli-sk/obelisk/commit/aedf3d86e463c3b34157ba7a2c7d75d3899d0335)) - *(sqlite)* Avoid sending `ThreadCommand::Shutdown` on full channel - ([6e895b1](https://github.com/obeli-sk/obelisk/commit/6e895b1ec572a626f546e63a062735825186bb22)) - *(sqlite)* Replace panic in init thread with `InitializationError` - ([ffbbc1c](https://github.com/obeli-sk/obelisk/commit/ffbbc1cb2cb1de790e0d741c2eb20b07d6babe05)) - *(sqlite)* [**breaking**] Revert to using single row per execution in `t_state` - ([29941ff](https://github.com/obeli-sk/obelisk/commit/29941ff3e29256ff38e0340d408ea6f4fe55c5a6)) - *(sqlite)* Change indexes - ([a7ad76d](https://github.com/obeli-sk/obelisk/commit/a7ad76dbe40ab0f8d394ebd8f498059ddc1d9876)) - *(sqlite)* [**breaking**] Make `t_metadata` append only - ([c5c33f7](https://github.com/obeli-sk/obelisk/commit/c5c33f73550119006c004fff9c4b0288fbdc4ede)) - *(sqlite,toml)* Improve metrics configuration - ([b787782](https://github.com/obeli-sk/obelisk/commit/b7877820dd4b9d49a32514f39738092de58b92e0)) - Clean up `ffqn_to_pending_subscription` - ([836d5a4](https://github.com/obeli-sk/obelisk/commit/836d5a4a3d88e98c825f3c4b1c405ab619dfdbe5)) - Remove return type from `DbPoolCloseable::close` - ([4434cbb](https://github.com/obeli-sk/obelisk/commit/4434cbb176002298046050b4bdc860e9db411420)) - Remove `Sleep` generics from `SqlitePool` - ([1b3fc36](https://github.com/obeli-sk/obelisk/commit/1b3fc36480332d82095d9aeacc3b6392c4c44a4b)) - Replace `DbError` with generic, read and write variants - ([976f7a1](https://github.com/obeli-sk/obelisk/commit/976f7a1e1caa16308fb9fe0f8d7b181ebed11098)) - Disconnect `DbPoolCloseable` from `DbPool` - ([1f0678f](https://github.com/obeli-sk/obelisk/commit/1f0678fe1617e87f06ba6747d3aa88d60d2c701e)) - Use `watch` channel for shutdown - ([4a3a240](https://github.com/obeli-sk/obelisk/commit/4a3a240781922934df345c43fdd6b5b27c883a03)) - Remove `DbPool::is_closing` - ([5fc53fb](https://github.com/obeli-sk/obelisk/commit/5fc53fb24eff33fce741a561ba0db71b1b6ff22e)) - Use `DbExecutor` in `executor` - ([eca31f9](https://github.com/obeli-sk/obelisk/commit/eca31f9ff429237cc7b2907a2b973cdb89bda2dd)) - Extract `poll_status` - ([6077a44](https://github.com/obeli-sk/obelisk/commit/6077a44788e5ebb4a31cf85f89ada174cf1b5289)) - Extract `Engines::new` - ([4bebf1d](https://github.com/obeli-sk/obelisk/commit/4bebf1d555934b3ec95c58a7b2beb00bcabd5c4e)) - Move `lock_one` to `DbExecutor` - ([548c0ab](https://github.com/obeli-sk/obelisk/commit/548c0ab1bc2c7231d725ccfd5b71353f736f239d)) - Extract `DbCloseable` - ([d808e99](https://github.com/obeli-sk/obelisk/commit/d808e9940332bf04800db98bfcfea0dc64fb94c0)) - Introduce `DbExecutor` - ([90772d9](https://github.com/obeli-sk/obelisk/commit/90772d9233f03a104bfad911295f8aa4d3a77e95)) - Rename `Lock.version` to `next_version` - ([cdfef49](https://github.com/obeli-sk/obelisk/commit/cdfef499f94c68e5e0ae8b031728e656505d334a)) - Send response notification only after tx succeeds - ([19ba75d](https://github.com/obeli-sk/obelisk/commit/19ba75d47c0013182df63d65b2385378e475f3ba)) - Clean up `response_subscribers` on timeout and select error - ([954ea50](https://github.com/obeli-sk/obelisk/commit/954ea50148e1591fae1e630e1578ed77296a86f8)) - Replace `ResponseSubscribers` alias with actual type - ([0db1632](https://github.com/obeli-sk/obelisk/commit/0db163201de38b6d4983304a8b26da7f48958dca)) - Move `backtrace` to `NonBlockingCache::StartAsync` - ([6c5d92d](https://github.com/obeli-sk/obelisk/commit/6c5d92d54f1a16c00fa48cd97872815cd64b72a8)) - Avoid `append_backtrace_batch` on empty batch - ([b0f0b92](https://github.com/obeli-sk/obelisk/commit/b0f0b92fcd706e4908dfa5851c9745b4effd85d9)) - Extract common engine configuration - ([0cfd092](https://github.com/obeli-sk/obelisk/commit/0cfd0928dadedda8cd8980d253df54fd0c3a2ea6))

obelisk-v0.25.3v0.25.3
? · 2025-10-03

### 🐛 Bug Fixes - *(cli)* Avoid printing plaintext when JSON output is selected - ([4bd4cb9](https://github.com/obeli-sk/obelisk/commit/4bd4cb958af05e1db2df139c4bda1e7ca2a3186f)) ### 📚 Documentation - Merge licensing info into readme - ([19c300a](https://github.com/obeli-sk/obelisk/commit/19c300a0d19d0fd904902f682589815aab4a0d27))