<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0ppij.git/zellij-server/src/logging_pipe.rs, branch main</title>
<subtitle>a sl0p.foo repository</subtitle>
<id>https://git.sl0p.foo/sl0ppij.git/atom/zellij-server/src/logging_pipe.rs?h=main</id>
<link rel='self' href='https://git.sl0p.foo/sl0ppij.git/atom/zellij-server/src/logging_pipe.rs?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/'/>
<updated>2025-10-21T12:36:30Z</updated>
<entry>
<title>Migrate from wasmtime to wasmi (#4449)</title>
<updated>2025-10-21T12:36:30Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2025-10-21T12:36:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=889bd06f447f9d50ee46b8efc7d9970d3693cb96'/>
<id>urn:sha1:889bd06f447f9d50ee46b8efc7d9970d3693cb96</id>
<content type='text'>
* initial implementation

* fix stdio and host folder mounting

* some memory usage optimizations

* fix plugin tests

* remove unused plugin cache

* fix docker-compose for e2e tests when running locally

* rustfmt

* initial pinned executor implementation

* EXPERIMENT: add jemalloc

* initial dynamic pinned threadpool

* cleanups and experiments

* keep state on execution threads

* reintroduce memory cache

* add wasmi engine to executor threads

* load plugins for new clients on the relevant executor thread

* only show loading indication of loading for more than 0.4 secs

* fix anonymous plugin loading without client id

* refactor lots of stuff

* update snapshots

* tests for pinned executor

* remove jemalloc

* fix stderr from plugins

* cleanups

* rustfmt

* cleanups

* fix endless loading for additinal attachments

* more cleanups

* remove singlepass feature

* fix displaying plugin permission message

* render optimizations

* always render for tests

* rustfmt

* optimize release build for wasmi

* fixes for multiple client plugin loading

* fix frame rendering for multiple clients

* rustfmt

* fix loading background plugins and e2e event ordering change

* rustfmt

* account for races in the pin_floating_panes e2e test

* docs(changelog): add PR</content>
</entry>
<entry>
<title>build: Don't re-export foreign crates in utils (#4087)</title>
<updated>2025-03-23T10:03:42Z</updated>
<author>
<name>har7an</name>
<email>99636919+har7an@users.noreply.github.com</email>
</author>
<published>2025-03-23T10:03:42Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=6be8c495bcbdc2aa4fd4d6528b213ca8b6189b34'/>
<id>urn:sha1:6be8c495bcbdc2aa4fd4d6528b213ca8b6189b34</id>
<content type='text'>
* build(utils): Don't use reexported dependency

for internal code, but use the dependency directly.

* build(client): Don't use re-exports from `utils`

but turn `zellij-utils` dependencies into shared workspace dependencies
instead and specify those in `Cargo.toml` explicitly. This gives a much
better overview of what component in zellij uses which crates. The
previous approach hides a lot of this information since it looks like
crates are used in a single place where this isn't actually true.

* deps(tile): Don't use re-exports from zellij-utils.

* build(zellij): Don't use re-exports from zellij-utils.

* build(server): Don't use re-exports from zellij-utils.

* build(utils): Don't re-export foreign crates.

* docs: Update Changelog with PR #4087.

* style: Apply rustfmt.

* style: Apply rustfmt.

* build(e2e): Don't use re-export from zellij-utils.

* test: Restore e2e tests.

* style: Apply more formatting.</content>
</entry>
<entry>
<title>build: Don't use default features (#4086)</title>
<updated>2025-03-22T13:40:37Z</updated>
<author>
<name>har7an</name>
<email>99636919+har7an@users.noreply.github.com</email>
</author>
<published>2025-03-22T13:40:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=a2ae82259c0352a6193ce052c49afc798551bf94'/>
<id>urn:sha1:a2ae82259c0352a6193ce052c49afc798551bf94</id>
<content type='text'>
* chore: Cut down dependency features

and reduce the impact of future changes to crate `default-feature`
changes. Also reduce a few transient dependencies which were previously
pulled in by crate features we aren't using.

* deps(utils): Remove `once_cell` dependency.

* deps: Remove more dependency features.

* deps: Remove remaining default features.

* docs: Update Changelog with PR #4086.

* style: Apply rustfmt.</content>
</entry>
<entry>
<title>dependencies: switch from Wasmer to Wasmtime (#3349)</title>
<updated>2024-06-28T14:47:43Z</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2024-06-28T14:47:43Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=7d7848cddcb303a8bdce6dd1431841345e9f6267'/>
<id>urn:sha1:7d7848cddcb303a8bdce6dd1431841345e9f6267</id>
<content type='text'>
* Remove ForeignFunctionEnv wrapper around PluginEnv

This will enable PluginEnv to be the Store context when migrating to
Wasmtime.

* Pass PluginEnv by value to load_plugin_instance

This will allow removing the Clone impl from PluginEnv when migrating to
Wasmtime as required by the missing Clone impl on Wasmtime's WasiCtx.

* Avoid passing a Store around when an Engine is enough

* Pass PluginEnv to the wasi read/write functions

Wasmtime requires storing the read/write end of the pipe outside of the
WasiCtx. Passing PluginEnv to these functions allows storing them in the
PluginEnv.

* Migrate to Wasmtime

* Switch from wasi-common to wasmtime-wasi

* Reduce verbosity of wasmtime_wasi logs

* Increase startup delay

To wait for all plugins to be compiled.

* Disable some wasmtime features

* Update to Wasmtime 21.0.1</content>
</entry>
<entry>
<title>feat(plugins): Plugin workers and strider (#2449)</title>
<updated>2023-05-16T10:47:18Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2023-05-16T10:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=5fe4d60c220c872c1e77a7ddf24fec6686c28e95'/>
<id>urn:sha1:5fe4d60c220c872c1e77a7ddf24fec6686c28e95</id>
<content type='text'>
* mvp of strider fuzzy find

* improve search ui

* various refactoringz

* moar refactoring

* even more refactoring

* tests and more refactoring

* refactor: remove unused stuff

* style(fmt): rustfmt

* debug ci

* debug ci

* correct path for plugin system tests

* fix plugin system ci tests

* remove debugging statements from test

* fix plugin worker persistence

* add test for plugin worker persistence

* style(fmt): rustfmt

* final cleanups

* remove outdated comments</content>
</entry>
<entry>
<title>refactor(plugins): change the data flow (#1934)</title>
<updated>2022-11-15T11:21:36Z</updated>
<author>
<name>Aram Drevekenin</name>
<email>aram@poor.dev</email>
</author>
<published>2022-11-15T11:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=3d2a6d6a5aa47cace356fe39184f2ac018898552'/>
<id>urn:sha1:3d2a6d6a5aa47cace356fe39184f2ac018898552</id>
<content type='text'>
* refactor(plugins): do not block render loop

* refactor(plugins): cleanup

* style(fmt): rustfmt

* fix(plugins): various rendering pipeline fixes</content>
</entry>
<entry>
<title>errors: Remove `log::error` in server (#1881)</title>
<updated>2022-11-08T10:56:23Z</updated>
<author>
<name>har7an</name>
<email>99636919+har7an@users.noreply.github.com</email>
</author>
<published>2022-11-08T10:56:23Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=453142775c96752730d7caf85532e616e2aaa719'/>
<id>urn:sha1:453142775c96752730d7caf85532e616e2aaa719</id>
<content type='text'>
* server/wasm_vm: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/tab: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/route: Replace `log::error!`

and propagate the error to the caller instead.

* server/pty: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

Also add per-instruction error context to make it clear what we tried to
accomplish when an error occured.

* server/panes/tiled_panes: Merge dependencies

and sort them into a better order.

* server/panes/tiled_panes: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/os_input_output: Merge depndencies

and sort them into a better order.

* server/logging_pipe: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/os_io: Remove uses of `log::error`

* changelog: Add PR #1881

* server/os_io: Gracefully handle failing resize

for terminals IDs that don't exist, instead of propagating the error to
the user.

* server/lib: Remove leftover log message

* server/pty: Log error cause

rather than providing a hard-coded error reason which is plain wrong in
this context.

* server/screen: Remove calls to `log::error!`

and change `get_active_tab(_mut)?` to return a `Result` instead of an
`Option`. This already makes many places in the code obsolete where
previously "failed to get active tab..." was logged manually.

Rather than logging, use the `anyhow::Error`s we have, along with all
their context information, and log these instead.</content>
</entry>
<entry>
<title>docs: fix typos (#1481)</title>
<updated>2022-06-10T14:37:55Z</updated>
<author>
<name>Kian-Meng Ang</name>
<email>kianmeng.ang@gmail.com</email>
</author>
<published>2022-06-10T14:37:55Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=16b53aa52f73e5ee7383889dc7a422d27be22ef0'/>
<id>urn:sha1:16b53aa52f73e5ee7383889dc7a422d27be22ef0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(style): various internal refactorings</title>
<updated>2021-12-07T10:24:42Z</updated>
<author>
<name>Marcin Puc</name>
<email>5671049+tranzystorek-io@users.noreply.github.com</email>
</author>
<published>2021-12-07T10:24:42Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=56e85f87d6c365816cca71c496aa7e49709e0b11'/>
<id>urn:sha1:56e85f87d6c365816cca71c496aa7e49709e0b11</id>
<content type='text'>
</content>
</entry>
<entry>
<title>style(clippy): various fixes (#704)</title>
<updated>2021-09-09T08:24:03Z</updated>
<author>
<name>Paulo Coelho</name>
<email>9609090+prscoelho@users.noreply.github.com</email>
</author>
<published>2021-09-09T08:24:03Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppij.git/commit/?id=6d0c5a56f54eb3f47991cc2743587103cffc123c'/>
<id>urn:sha1:6d0c5a56f54eb3f47991cc2743587103cffc123c</id>
<content type='text'>
* test: fix clippy unused_io_amount

* chore(clippy): various clippy fixes

needless_borrow, let_and_return, vec_init_then_push, unit_arg,
useless_format, field_reassign_with_default, redundant_clone</content>
</entry>
</feed>
