Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(server): remove unnecessary mut #2735

Merged
merged 1 commit into from
Aug 28, 2023

Conversation

orhun
Copy link
Contributor

@orhun orhun commented Aug 28, 2023

Hey!

I got the following compiler warnings while building Zellij 0.38.0 for Arch Linux:

warning: variable does not need to be mutable
   --> zellij-server/src/plugins/wasm_bridge.rs:412:25
    |
412 |         for (plugin_id, mut current_size) in self.cached_resizes_for_pending_plugins.iter_mut() {
    |                         ----^^^^^^^^^^^^
    |                         |
    |                         help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` on by default

warning: variable does not need to be mutable
    --> zellij-server/src/screen.rs:1735:29
     |
1735 |                 if let Some(mut already_running_layout) = floating_panes_layout
     |                             ----^^^^^^^^^^^^^^^^^^^^^^
     |                             |
     |                             help: remove this `mut`

warning: `zellij-server` (lib) generated 2 warnings (run `cargo fix --lib -p zellij-server` to apply 2 suggestions)
   Compiling zellij v0.38.0 (/build/zellij/src/zellij-0.38.0)
    Finished release [optimized] target(s) in 7m 22s

This PR simply fixes these 🐻

@orhun orhun temporarily deployed to cachix August 28, 2023 09:48 — with GitHub Actions Inactive
Copy link
Member

@jaeheonji jaeheonji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@jaeheonji jaeheonji merged commit b656876 into zellij-org:main Aug 28, 2023
7 checks passed
renovate bot added a commit to scottames/dots that referenced this pull request Sep 1, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[GoogleContainerTools/skaffold](https://togithub.com/GoogleContainerTools/skaffold)
| minor | `v2.6.3` -> `v2.7.0` |
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v4.42.0` -> `v4.43.0` |
| [nektos/act](https://togithub.com/nektos/act) | patch | `v0.2.49` ->
`v0.2.50` |
| [sigstore/cosign](https://togithub.com/sigstore/cosign) | minor |
`v2.1.1` -> `v2.2.0` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.154.0` -> `v0.155.0` |
| [zellij-org/zellij](https://togithub.com/zellij-org/zellij) | minor |
`v0.37.2` -> `v0.38.1` |

---

### Release Notes

<details>
<summary>GoogleContainerTools/skaffold
(GoogleContainerTools/skaffold)</summary>

###
[`v2.7.0`](https://togithub.com/GoogleContainerTools/skaffold/blob/HEAD/CHANGELOG.md#v270-Release---08302023)

[Compare
Source](https://togithub.com/GoogleContainerTools/skaffold/compare/v2.6.3...v2.7.0)

**Linux amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.7.0/skaffold-linux-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Linux arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.7.0/skaffold-linux-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.7.0/skaffold-darwin-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.7.0/skaffold-darwin-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Windows**

https://storage.googleapis.com/skaffold/releases/v2.7.0/skaffold-windows-amd64.exe

**Docker image**
`gcr.io/k8s-skaffold/skaffold:v2.7.0`

Highlights:

- feat: crd status check
[#&#8203;9016](https://togithub.com/GoogleContainerTools/skaffold/pull/9016)

New Features and Additions:

- feat: enable skaffold render to track telemetry
[#&#8203;9020](https://togithub.com/GoogleContainerTools/skaffold/pull/9020)
- feat: support url as kustomize file path
[#&#8203;9023](https://togithub.com/GoogleContainerTools/skaffold/pull/9023)
- feat: configure verify and exec commands to emit metrics
[#&#8203;9013](https://togithub.com/GoogleContainerTools/skaffold/pull/9013)
- feat: support overrides in helm renderer
[#&#8203;8966](https://togithub.com/GoogleContainerTools/skaffold/pull/8966)
- feat: Add Sprig template functions
[#&#8203;9005](https://togithub.com/GoogleContainerTools/skaffold/pull/9005)
- feat: remove condition that checks if an image was built from Skaffold
[#&#8203;8935](https://togithub.com/GoogleContainerTools/skaffold/pull/8935)

Fixes:

- fix: status check lists all events
[#&#8203;9015](https://togithub.com/GoogleContainerTools/skaffold/pull/9015)
- fix: Use moby/patternmatcher for dockerignore
[#&#8203;9029](https://togithub.com/GoogleContainerTools/skaffold/pull/9029)
- fix: Ignore unset variables from minikube docker-env
[#&#8203;9018](https://togithub.com/GoogleContainerTools/skaffold/pull/9018)
- fix:
[#&#8203;9006](https://togithub.com/GoogleContainerTools/skaffold/issues/9006)
- Filter port forwarding resources for docker deploy
[#&#8203;9008](https://togithub.com/GoogleContainerTools/skaffold/pull/9008)
- fix: documentation for Helm Template Value
[#&#8203;8991](https://togithub.com/GoogleContainerTools/skaffold/pull/8991)
- fix: status check connecting to the wrong k8s context
[#&#8203;8981](https://togithub.com/GoogleContainerTools/skaffold/pull/8981)
- fix: remote kustomize manifest being watched
[#&#8203;8979](https://togithub.com/GoogleContainerTools/skaffold/pull/8979)
- fix: Add integration tests for helm namespace
[#&#8203;8965](https://togithub.com/GoogleContainerTools/skaffold/pull/8965)
- fix: edit original file if the given skaffold path is a symlink
[#&#8203;8955](https://togithub.com/GoogleContainerTools/skaffold/pull/8955)
- fix: verify hangs if event-logs-file does not exist
([#&#8203;7613](https://togithub.com/GoogleContainerTools/skaffold/issues/7613))
[#&#8203;8961](https://togithub.com/GoogleContainerTools/skaffold/pull/8961)
- fix: Fix typo in Cloud Run log tailing
[#&#8203;8944](https://togithub.com/GoogleContainerTools/skaffold/pull/8944)

Updates and Refactors:

- chore: remove latest tagging from release process
[#&#8203;8986](https://togithub.com/GoogleContainerTools/skaffold/pull/8986)
- chore: update the way the LTS images are built
[#&#8203;8953](https://togithub.com/GoogleContainerTools/skaffold/pull/8953)
- chore: configure minikube to a static version in github ci
[#&#8203;8951](https://togithub.com/GoogleContainerTools/skaffold/pull/8951)
- chore: disable edge image scanning
[#&#8203;8942](https://togithub.com/GoogleContainerTools/skaffold/pull/8942)
- chore: save public image tag
[#&#8203;8930](https://togithub.com/GoogleContainerTools/skaffold/pull/8930)
- chore: upgrade go 1.19.10 -> 1.20.7
[#&#8203;8992](https://togithub.com/GoogleContainerTools/skaffold/pull/8992)
- chore: upgrade go to 1.21.0
[#&#8203;8999](https://togithub.com/GoogleContainerTools/skaffold/pull/8999)
- chore: bump flask from 2.3.2 to 2.3.3 in /integration/examples
[#&#8203;9041](https://togithub.com/GoogleContainerTools/skaffold/pull/9041)
- chore: bump flask from 2.3.2 to 2.3.3 in /examples
[#&#8203;9042](https://togithub.com/GoogleContainerTools/skaffold/pull/9042)
- chore: bump github/codeql-action from 2.20.1 to 2.20.2
[#&#8203;8928](https://togithub.com/GoogleContainerTools/skaffold/pull/8928)
- chore: bump github/codeql-action from 2.20.2 to 2.20.3
[#&#8203;8937](https://togithub.com/GoogleContainerTools/skaffold/pull/8937)
- chore: bump github/codeql-action from 2.20.3 to 2.20.4
[#&#8203;8950](https://togithub.com/GoogleContainerTools/skaffold/pull/8950)
- chore: bump github/codeql-action from 2.20.4 to 2.21.0
[#&#8203;8964](https://togithub.com/GoogleContainerTools/skaffold/pull/8964)
- chore: bump github/codeql-action from 2.21.0 to 2.21.1
[#&#8203;8975](https://togithub.com/GoogleContainerTools/skaffold/pull/8975)
- chore: bump github/codeql-action from 2.21.1 to 2.21.2
[#&#8203;8980](https://togithub.com/GoogleContainerTools/skaffold/pull/8980)
- chore: bump github/codeql-action from 2.21.2 to 2.21.3
[#&#8203;9000](https://togithub.com/GoogleContainerTools/skaffold/pull/9000)
- chore: bump github/codeql-action from 2.21.3 to 2.21.4
[#&#8203;9022](https://togithub.com/GoogleContainerTools/skaffold/pull/9022)
- chore: bump github/codeql-action from 2.21.4 to 2.21.5
[#&#8203;9053](https://togithub.com/GoogleContainerTools/skaffold/pull/9053)
- chore: bump github.com/sigstore/rekor from 1.1.1 to 1.2.0
[#&#8203;8829](https://togithub.com/GoogleContainerTools/skaffold/pull/8829)
- chore: bump google.golang.org/grpc from 1.48.0 to 1.53.0 in
/examples/grpc-e2e-tests/cloud-spanner-bootstrap
[#&#8203;8932](https://togithub.com/GoogleContainerTools/skaffold/pull/8932)
- chore: bump google.golang.org/grpc from 1.50.0 to 1.53.0 in
/examples/grpc-e2e-tests/service
[#&#8203;8933](https://togithub.com/GoogleContainerTools/skaffold/pull/8933)
- chore: bump google.golang.org/grpc from 1.50.0 to 1.53.0 in
/integration/examples/grpc-e2e-tests/service
[#&#8203;8934](https://togithub.com/GoogleContainerTools/skaffold/pull/8934)
- chore: bump google.golang.org/grpc from 1.48.0 to 1.53.0 in
/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap
[#&#8203;8931](https://togithub.com/GoogleContainerTools/skaffold/pull/8931)
- chore: bump puma from 4.3.12 to 5.6.7 in /examples/ruby/backend
[#&#8203;9036](https://togithub.com/GoogleContainerTools/skaffold/pull/9036)
- chore: bump puma from 4.3.12 to 5.6.7 in
/integration/examples/ruby/backend
[#&#8203;9037](https://togithub.com/GoogleContainerTools/skaffold/pull/9037)
- chore: bump ossf/scorecard-action from 2.1.3 to 2.2.0
[#&#8203;8915](https://togithub.com/GoogleContainerTools/skaffold/pull/8915)

Docs, Test, and Release Updates:

- fix: verify flaky tests
[#&#8203;9050](https://togithub.com/GoogleContainerTools/skaffold/pull/9050)
- docs: Update documentation
[#&#8203;9017](https://togithub.com/GoogleContainerTools/skaffold/pull/9017)
- docs: add example to use cloudrun deployer + local build
[#&#8203;8983](https://togithub.com/GoogleContainerTools/skaffold/pull/8983)
- docs: add anchors to yaml paths
[#&#8203;8541](https://togithub.com/GoogleContainerTools/skaffold/pull/8541)
- docs: schema version mapping
[#&#8203;8973](https://togithub.com/GoogleContainerTools/skaffold/pull/8973)
- docs: remove duplicate page meta links
[#&#8203;8824](https://togithub.com/GoogleContainerTools/skaffold/pull/8824)
- docs: document cmd template function
[#&#8203;8929](https://togithub.com/GoogleContainerTools/skaffold/pull/8929)

Huge thanks goes out to all of our contributors for this release:

-   Brian Topping
-   dependabot\[bot]
-   ericzzzzzzz
-   Frank Farzan
-   Jack Wilsdon
-   James C Scott III
-   Maxim De Clercq
-   Michael Plump
-   Renzo Rojas

</details>

<details>
<summary>aquaproj/aqua-registry (aquaproj/aqua-registry)</summary>

###
[`v4.43.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.43.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.42.0...v4.43.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.43.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.43.0)
| aquaproj/aqua-registry@v4.42.0...v4.43.0

#### 🎉 Reached 1,200 packages 🎉

Thank you, all contributors!

#### 🎉 New Packages


[#&#8203;14992](https://togithub.com/aquaproj/aqua-registry/issues/14992)
[osteele/gojekyll](https://togithub.com/osteele/gojekyll): A fast Go
implementation of the Jekyll blogging engine
[@&#8203;ponkio-o](https://togithub.com/ponkio-o)

[#&#8203;14971](https://togithub.com/aquaproj/aqua-registry/issues/14971)
[sass/dart-sass](https://togithub.com/sass/dart-sass): The reference
implementation of Sass, written in Dart
[@&#8203;ponkio-o](https://togithub.com/ponkio-o)

</details>

<details>
<summary>nektos/act (nektos/act)</summary>

### [`v0.2.50`](https://togithub.com/nektos/act/releases/tag/v0.2.50)

[Compare
Source](https://togithub.com/nektos/act/compare/v0.2.49...v0.2.50)

#### Changelog

##### New Features

- [`a42f3cf`](https://togithub.com/nektos/act/commit/a42f3cf) feat: Add
new Action Cache
([#&#8203;1913](https://togithub.com/nektos/act/issues/1913))
- [`8314095`](https://togithub.com/nektos/act/commit/8314095) feat: cmd
support for windows
([#&#8203;1941](https://togithub.com/nektos/act/issues/1941))
- [`6468dd7`](https://togithub.com/nektos/act/commit/6468dd7) feat: Add
CopyTarStream to Container Interface
([#&#8203;1912](https://togithub.com/nektos/act/issues/1912))

##### Bug fixes

- [`7286b43`](https://togithub.com/nektos/act/commit/7286b43) fix: fail
if no stages were found
([#&#8203;1970](https://togithub.com/nektos/act/issues/1970))

##### Other

- [`80b0955`](https://togithub.com/nektos/act/commit/80b0955) chore:
bump VERSION to 0.2.50
- [`0c12273`](https://togithub.com/nektos/act/commit/0c12273)
build(deps): bump github.com/moby/buildkit from 0.12.1 to 0.12.2
([#&#8203;1986](https://togithub.com/nektos/act/issues/1986))
- [`323bee9`](https://togithub.com/nektos/act/commit/323bee9)
build(deps): bump github.com/moby/patternmatcher from 0.5.0 to 0.6.0
([#&#8203;1985](https://togithub.com/nektos/act/issues/1985))
- [`f64c267`](https://togithub.com/nektos/act/commit/f64c267)
build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0
([#&#8203;1978](https://togithub.com/nektos/act/issues/1978))
- [`7ba9f30`](https://togithub.com/nektos/act/commit/7ba9f30) Mention
act user guide in act
([#&#8203;1973](https://togithub.com/nektos/act/issues/1973))
- [`2a0a0a1`](https://togithub.com/nektos/act/commit/2a0a0a1)
build(deps): bump megalinter/megalinter from 7.2.1 to 7.3.0
([#&#8203;1965](https://togithub.com/nektos/act/issues/1965))
- [`f55ae1a`](https://togithub.com/nektos/act/commit/f55ae1a) ci: change
winget job runner to `ubuntu-latest`
([#&#8203;1959](https://togithub.com/nektos/act/issues/1959))
- [`9f06ca7`](https://togithub.com/nektos/act/commit/9f06ca7) change
podman socket path
([#&#8203;1961](https://togithub.com/nektos/act/issues/1961))
- [`a00fd96`](https://togithub.com/nektos/act/commit/a00fd96) Fix
"Unknown server OS" for Docker container `--device` option
([#&#8203;1957](https://togithub.com/nektos/act/issues/1957))
- [`8a9e4f9`](https://togithub.com/nektos/act/commit/8a9e4f9) refactor:
remove unnecessary nil check in RunContext
([#&#8203;1955](https://togithub.com/nektos/act/issues/1955))
- [`f0ca0ab`](https://togithub.com/nektos/act/commit/f0ca0ab) refactor:
docker build BuildContext field
([#&#8203;1914](https://togithub.com/nektos/act/issues/1914))
- [`73d5f78`](https://togithub.com/nektos/act/commit/73d5f78) Shorten
or/and in expressions
([#&#8203;1939](https://togithub.com/nektos/act/issues/1939))
- [`0b4c67a`](https://togithub.com/nektos/act/commit/0b4c67a) prefer
pwsh on windows if found
([#&#8203;1942](https://togithub.com/nektos/act/issues/1942))
- [`3939f48`](https://togithub.com/nektos/act/commit/3939f48)
build(deps): bump megalinter/megalinter from 7.1.0 to 7.2.1
([#&#8203;1931](https://togithub.com/nektos/act/issues/1931))
- [`74b74e8`](https://togithub.com/nektos/act/commit/74b74e8)
build(deps): bump golang.org/x/term from 0.10.0 to 0.11.0
([#&#8203;1948](https://togithub.com/nektos/act/issues/1948))
- [`c812715`](https://togithub.com/nektos/act/commit/c812715)
build(deps): bump github.com/moby/buildkit from 0.12.0 to 0.12.1
([#&#8203;1947](https://togithub.com/nektos/act/issues/1947))

</details>

<details>
<summary>sigstore/cosign (sigstore/cosign)</summary>

###
[`v2.2.0`](https://togithub.com/sigstore/cosign/blob/HEAD/CHANGELOG.md#v220)

[Compare
Source](https://togithub.com/sigstore/cosign/compare/v2.1.1...v2.2.0)

#### Enhancements

- switch to uploading DSSE types to rekor instead of intoto
([#&#8203;3113](https://togithub.com/sigstore/cosign/issues/3113))
- add 'cosign sign' command-line parameters for mTLS
([#&#8203;3052](https://togithub.com/sigstore/cosign/issues/3052))
- improve error messages around bundle != payload hash
([#&#8203;3146](https://togithub.com/sigstore/cosign/issues/3146))
- make VerifyImageAttestation function public
([#&#8203;3156](https://togithub.com/sigstore/cosign/issues/3156))
- Switch to cryptoutils function for SANS
([#&#8203;3185](https://togithub.com/sigstore/cosign/issues/3185))
- Handle HTTP\_1\_1\_REQUIRED errors in github provider
([#&#8203;3172](https://togithub.com/sigstore/cosign/issues/3172))

#### Bug Fixes

- Fix nondeterminsitic timestamps
([#&#8203;3121](https://togithub.com/sigstore/cosign/issues/3121))

#### Documentation

- doc: Add example of sign-blob with key in env var
([#&#8203;3152](https://togithub.com/sigstore/cosign/issues/3152))
- add deprecation notice for cosign-releases GCS bucket
([#&#8203;3148](https://togithub.com/sigstore/cosign/issues/3148))
- update doc links
([#&#8203;3186](https://togithub.com/sigstore/cosign/issues/3186))

#### Others

- Upgrade to go1.21
([#&#8203;3188](https://togithub.com/sigstore/cosign/issues/3188))
- Updates ci tests
([#&#8203;3142](https://togithub.com/sigstore/cosign/issues/3142))
- test using latest release of scaffolding
([#&#8203;3187](https://togithub.com/sigstore/cosign/issues/3187))
- ci: free up disk space for the gh runner
([#&#8203;3169](https://togithub.com/sigstore/cosign/issues/3169))
- update go-github to v53
([#&#8203;3116](https://togithub.com/sigstore/cosign/issues/3116))
- call e2e test for cosign attach
([#&#8203;3112](https://togithub.com/sigstore/cosign/issues/3112))
- bump build cross to use go1.20.6 and cosign image to 2.1.1
([#&#8203;3108](https://togithub.com/sigstore/cosign/issues/3108))

#### Contributors

-   Bob Callaway
-   Carlos Tadeu Panato Junior
-   Dmitry Savintsev
-   Hayden B
-   Hector Fernandez
-   Jason Hall
-   Jon Johnson
-   Jubril Oyetunji
-   Paulo Gomes
-   Priya Wadhwa
-   张志强

</details>

<details>
<summary>weaveworks/eksctl (weaveworks/eksctl)</summary>

###
[`v0.155.0`](https://togithub.com/eksctl-io/eksctl/releases/tag/v0.155.0):
eksctl 0.155.0 (permalink)

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.154.0...0.155.0)

### Release v0.155.0

#### 🚀 Features

- Add support for us-iso-west-1 region
([#&#8203;6997](https://togithub.com/weaveworks/eksctl/issues/6997))

#### 🎯 Improvements

- Add validations for managed nodegroup labels
([#&#8203;6947](https://togithub.com/weaveworks/eksctl/issues/6947))
- Switch default volume type back to gp3 for ISO regions
([#&#8203;6969](https://togithub.com/weaveworks/eksctl/issues/6969))

#### 🐛 Bug Fixes

- Fix merge release workflow when there is nothing to merge
([#&#8203;6993](https://togithub.com/weaveworks/eksctl/issues/6993))

#### 🧰 Maintenance

- Update Ginkgo
([#&#8203;6996](https://togithub.com/weaveworks/eksctl/issues/6996))
- Replace deprecated Ginkgo CLI options
([#&#8203;6994](https://togithub.com/weaveworks/eksctl/issues/6994))
- Improve unit tests' runtime
([#&#8203;6992](https://togithub.com/weaveworks/eksctl/issues/6992))
- Bump dependencies
([#&#8203;6998](https://togithub.com/weaveworks/eksctl/issues/6998))

</details>

<details>
<summary>zellij-org/zellij (zellij-org/zellij)</summary>

###
[`v0.38.1`](https://togithub.com/zellij-org/zellij/releases/tag/v0.38.1)

[Compare
Source](https://togithub.com/zellij-org/zellij/compare/v0.38.0...v0.38.1)

This is a patch release, fixing some minor issues encountered after the
latest major release

#### What's Changed

- refactor(server): remove unnecessary mut by
[@&#8203;orhun](https://togithub.com/orhun) in
[zellij-org/zellij#2735
- fix(status-bar): add break tab hints by
[@&#8203;imsnif](https://togithub.com/imsnif) in
[zellij-org/zellij#2748
- fix(reconnect): do not clear terminal state when entering alternate
screen by [@&#8203;imsnif](https://togithub.com/imsnif) in
[zellij-org/zellij#2750
- fix(grid): memory leak with unfocused tabs by
[@&#8203;tlinford](https://togithub.com/tlinford) in
[zellij-org/zellij#2745
- fix(input): block input thread for newtiledpane and newfloatingpane as
well by [@&#8203;imsnif](https://togithub.com/imsnif) in
[zellij-org/zellij#2757

**Full Changelog**:
zellij-org/zellij@v0.38.0...v0.38.1

###
[`v0.38.0`](https://togithub.com/zellij-org/zellij/releases/tag/v0.38.0)

[Compare
Source](https://togithub.com/zellij-org/zellij/compare/v0.37.2...v0.38.0)

This release includes lots of improvements for the Zellij UI/UX as well
as some exciting new plugin features and infrastructure.
It also provides some performance and resourcee utilization
improvements.

This release is a breaking change for plugins. Please see the [upgrade
guide for
plugins](https://zellij.dev/documentation/plugin-upgrade-0.38.0)

#### UI/UX

##### > Session Manager


![262799415-6d93e314-8096-49a3-9a51-36f794b3a2c0](https://togithub.com/zellij-org/zellij/assets/795598/616b5808-bf2f-425e-a5b5-69f1bb8dfbb1)

<details>
<summary>Read more...</summary>

Zellij now includes a built-in session-manager. It is implemented as a
plugin and so all of its API is available to plugin authors as well.
The session-manager can switch between sessions, focus a specific tab or
pane in the current or in another session, create new sessions and
fuzzy-find sessions/tabs/panes by their names.

By default, the session-manager can be started from the `SESSION` mode,
the default key-binding sequence being `Ctrl o` + `w`.

If you have a custom keybindings configuration, please see the "Updating
a custom keybindings configuration" section below.

</details>

##### > Move panes between tabs
Panes can now be moved between tabs. One can `Break` a pane to a new
tab, meaning that a new tab would be created "around" this pane.
<details>
<summary>Read more...</summary>
These new keybindings can be found in `Tab` mode. By default, they are:
* `Ctrl t` + `b` - Break pane into new tab
* `Ctrl t` + `[` or `]` - Move pane between tabs

If you have a custom keybindings configuration, please see the "Updating
a custom keybindings configuration" section below.

</details>

##### > Support shortcuts for opening commands in floating panes
<details>
<summary>Read more...</summary>
The `Run` keybinding now supports `floating true` and `name <name>`.
This would allow you to bind a key shortcut (eg. `Ctrl f`), to open a
specific command (eg. `cargo test`) in a floating pane.
</details>

##### > All session names should now be non-offensive
Thanks @&#8203;tlinford for your work on this!

##### > Updating a custom keybindings configuration
<details>
<summary>Read more...</summary>
Do you have a custom keybindings configuration in your `config.kdl`
file? Does the `keybinds` section have a `clear-defaults=true`
attribute? If so, you have to take a small extra step to get the new
keybindings for the `session-manager` and the `Break pane` keybindings:

You'll need to either:

1. Remove the `clear-defaults=true` part in order to get these
keybindings "merged" with your custom keybindings.
2. Manually add the following sections to your configuration:
[session-manager](https://togithub.com/zellij-org/zellij/blob/main/zellij-utils/assets/config/default.kdl#L116-L122),
[break-tab](https://togithub.com/zellij-org/zellij/blob/main/zellij-utils/assets/config/default.kdl#L57-L59)

</details>

#### Plugins
##### > Plugins are now configurable
<details>
<summary>Read more...</summary>

One can now start plugins with a custom key/value configuration, either
from layouts:

```kdl
    pane {
        plugin location="file:/path/to/my/plugin.wasm" {
            some_key "some_value"
            another_key 1
        }
    }
```

Or from the cli:

zellij action launch-or-focus-plugin --configuration
"some_key=some_value,another_key=1"

</details>

##### > Plugin permission system (thanks and great work
@&#8203;jaeheonji!)

![img-2023-08-12-164545](https://togithub.com/zellij-org/zellij/assets/795598/12dcfb6b-ba1e-40ca-b500-6ad6b7463b7f)

<details>
<summary>Read more...</summary>
Zellij now includes a permission system for plugins. Plugins can request
permissions with the `request_permission` API call. This will display a
help screen asking the user to approve permissions to this plugin.
Permissions are cached in a `permissions.kdl` file in the user's cache
folder and can be cleared by deleting or editing the file.
</details>

##### > `move_to_focused_tab` attribute added to the
`LaunchOrFocusPlugin` keybinding
<details>
<summary>Read more...</summary>

The `LaunchOrFocusPlugin` keybind (and `launch-or-focus-plugin` cli
command) now include a `move_to_focused_tab` attribute. If true, when
focusing the plugin it will always start in the user's focused tab. This
is useful for UI pop-up windows (such as the `session-manager`) to not
move the user's focus from the tab they're in.

</details>

##### > Plugins are now forwards compatible thanks to protocol buffers
<details>
<summary>Read more...</summary>

Zellij plugins have always communicated with the host system (Zellij
itself) by serializing/deserializing complex structures over
STDIN/STDOUT. This caused problems both for other SDK writers who had to
reverse engineer the serialization and for plugin upgrading. Starting
this version, Zellij uses [Ptorocol Buffers](https://protobuf.dev) in
order to communicate across the wasm boundary.

This means that plugins now should not break in future versions unless
there's an API behavior change, which we as maintainers make an effort
to do only very rarely.

</details>

##### Bug Fixes
1. Plugged a memory leak (more info: #&#8203;2675)
2. Fixed occasional pane resizing glitches
3. Pane frame is now colored when in a mirrored multiplayer session

Special thanks to [@&#8203;har7an](https://togithub.com/har7an) for his
tremendous efforts bringing the CI into shape before the release!

##### New Contributors

- [@&#8203;Nacho114](https://togithub.com/Nacho114) made their first
contribution in
[zellij-org/zellij#2652

#### Do you like Zellij?

Me too! So much so that I spend 100% of my time developing and
maintaining it and have no other income. Zellij will always be free and
open-source. If the tool gives you value and you are able, please
consider a recurring monthly donation of 5-10$ to help me pay my bills.
There are Zellij stickers in it for you!
https://github.com/sponsors/imsnif

**Full Changelog**:
zellij-org/zellij@v0.37.2...v0.38.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" in timezone
America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
alekspickle pushed a commit to alekspickle/zellij that referenced this pull request Sep 17, 2023
imsnif added a commit that referenced this pull request Oct 12, 2023
* add necessary actions in server and utils

* update

* move all logic relevant to local default config directories to utils::home

* add debug statements for pane geom

* add tests; print resulting kdl

* fix dumping custom layouts from setup; start fixing algorithm for simplest layout possible

* fix: fixed persistence code and tests to support flexible layouts

* fix(tab-bar,compact-bar): tab switching with mouse sometimes not working (#2587)

* tab-bar: fix clicks sometimes not registering

Caching the click position wasn't working across multiple plugin
instances.

Also a couple of refactors:
  - move the code with the tab switching logic inside update
  - avoid rendering when calling switch_tab_to, since it will happen
    anyway afterwards

* same fix for compact-bar

* docs(changelog): plugins tab switching with mouse fix

* feat(ui): new status bar mode (#2619)

* supermode prototype

* fix integration tests

* fix tests

* style(fmt): rustfmt

* docs(changelog): status-bar supermode

* fix(rendering): occasional glitches while resizing (#2621)

* docs(changelog): resize glitches fix

* chore(version): bump development version

* Fix colored pane frames in mirrored sessions (#2625)

* server/panes/tiled: Fix colored frames

in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.

* CHANGELOG: Add PR #2625

* server/tab/unit: Fix unit tests for server.

* fix(sessions): use custom lists of adjectives and nouns for generating session names (#2122)

* Create custom lists of adjectives and nouns for generating session names

* move word lists to const slices

* add logic to retry name generation

* refactor

 - reuse the name generator
 - iterator instead of for loop

---------

Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): generate session names with custom words list

* feat(plugins): make plugins configurable (#2646)

* work

* make every plugin entry point configurable

* make integration tests pass

* make e2e tests pass

* add test for plugin configuration

* add test snapshot

* add plugin config parsing test

* cleanups

* style(fmt): rustfmt

* style(comment): remove commented code

* docs(changelog): configurable plugins

* fix(terminal): properly handle resizes in alternate screen (#2654)

* docs(changelog): focus glitches

* feat(plugins): utility functions to find active pane and tab (#2652)

* docs(changelog): plugin api utility functions

* feat(ui): break pane to new tab and move panes between tabs (#2664)

* prototype

* some tests

* break out floating pane

* break out plugin panes

* add keybind and fix some minor issues

* remove cli

* move pane to left/right tab

* update ui

* adjust ui

* style(fmt): rustfmt

* style(comment): remove commented code

* update snapshots

* docs(changelog): break pane to new tab

* fix(performance): plug memory leak (#2675)

* docs(changelog): plug memory leak

* feat(plugins): use protocol buffers for serializing across the wasm boundary (#2686)

* work

* almost done with command protobuffers

* done translating command data structures

* mid transferring of every command to protobuff command

* transferred plugin_command.rs, now moving on to shim.rs

* plugin command working with protobufs

* protobuffers in update

* protobuf event tests

* various TODOs and comments

* fix zellij-tile

* clean up prost deps

* remove version mismatch error

* fix panic

* some cleanups

* clean up event protobuffers

* clean up command protobuffers

* clean up various protobufs

* refactor protobufs

* update comments

* some transformation fixes

* use protobufs for workers

* style(fmt): rustfmt

* style(fmt): rustfmt

* chore(build): add protoc

* chore(build): authenticate protoc

* docs(changelog): protobuffers

* feat: add plugin permission system (#2624)

* WIP: add exaple of permission ui

* feat: add request permission ui

* feat: add caching permission in memory

* feat: add permission check

* feat: add file caching

* fix: changes request

* feat(ui): new status bar mode (#2619)

* supermode prototype

* fix integration tests

* fix tests

* style(fmt): rustfmt

* docs(changelog): status-bar supermode

* fix(rendering): occasional glitches while resizing (#2621)

* docs(changelog): resize glitches fix

* chore(version): bump development version

* Fix colored pane frames in mirrored sessions (#2625)

* server/panes/tiled: Fix colored frames

in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.

* CHANGELOG: Add PR #2625

* server/tab/unit: Fix unit tests for server.

* fix(sessions): use custom lists of adjectives and nouns for generating session names (#2122)

* Create custom lists of adjectives and nouns for generating session names

* move word lists to const slices

* add logic to retry name generation

* refactor

 - reuse the name generator
 - iterator instead of for loop

---------

Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): generate session names with custom words list

* feat(plugins): make plugins configurable (#2646)

* work

* make every plugin entry point configurable

* make integration tests pass

* make e2e tests pass

* add test for plugin configuration

* add test snapshot

* add plugin config parsing test

* cleanups

* style(fmt): rustfmt

* style(comment): remove commented code

* docs(changelog): configurable plugins

* style(fmt): rustfmt

* touch up ui

* fix: don't save permission data in memory

* feat: load cached permission

* test: add example test (WIP)

* fix: issue event are always denied

* test: update snapshot

* apply formatting

* refactor: update default cache function

* test: add more new test

* apply formatting

* Revert "apply formatting"

This reverts commit a4e9370.

* apply format

* fix: update cache path

* apply format

* fix: cache path

* fix: update log level

* test for github workflow

* Revert "test for github workflow"

This reverts commit 01eff3b.

* refactor: permission cache

* fix(test): permission grant/deny race condition

* style(fmt): rustfmt

* style(fmt): rustfmt

* configure permissions

* permission denied test

* snapshot

* add ui for small plugins

* style(fmt): rustfmt

* some cleanups

---------

Co-authored-by: Aram Drevekenin <[email protected]>
Co-authored-by: har7an <[email protected]>
Co-authored-by: Kyle Sutherland-Cash <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): permission system

* feat(sessions): add a session manager to switch between sessions, tabs and panes and create new ones (#2721)

* write/read session metadata to disk for all sessions

* switch session client side

* fix tests

* various adjustments

* fix full screen focus bug in tiled panes

* fix tests

* fix permission sorting issue

* cleanups

* add session manager

* fix tests

* various cleanups

* style(fmt): rustfmt

* clear screen before switching sessions

* I hate you clippy

* truncate controls line to width

* version session cache

* attempt to fix plugin tests

* style(fmt): rustfmt

* another attempt to fix the tests in the ci

* docs(changelog): session manager

* fix(ux): various ui/ux fixes (#2722)

* force plugin render on permission request response

* clear warnings

* Revert "feat(ui): new status bar mode (#2619)"

This reverts commit 27763d2.

* adjust status bar help

* fix colors in session manager and shortcut in status-bar

* adjust keybindings

* docs(changelog): update ux fixes

* feat(plugins): optionally move plugin to focused tab (#2725)

* feat(plugins): move_to_focused_tab attribute for LaunchOrFocusPlugin

* style(fmt): rustfmt

* docs(changelog): move plugin to focused tab

* fix(keybinds): add 'floating' and 'name' to the Run command keybinding (#2726)

* fix(keybinds): add 'floating' and 'name' to the Run command keybinding

* style(fmt): rustfmt

* docs(changelog): keybind run floating pane

* fix(plugins): make sure configuration is also part of the plugin keys (#2727)

* fix(plugins): make sure configuration is also part of the plugin keys

* no thanks clippy

* docs(changelog): fix plugin configuration uniqueness

* fix(plugins): remove protobuf duplications (#2729)

* fix(plugins): remove protobuf duplications

* style(fmt): rustfmt

* Update CHANGELOG.md

* fix(plugins): various ui fixes (#2731)

* Update CHANGELOG.md

* fix(panes): refocus pane properly on tab change (#2734)

* fix(panes): stacked panes focus bug

* style(fmt): rustfmt

* docs(changelog): stacked pane focus glitch

* xtask/pipeline: Fix publish task (#2711)

* xtask/pipeline: Fix publish task

which was previously stuck in an infinite loop after successfully
publishing a crate. The error originated in the code only checking for
error conditions but not breaking out of the inner infinite loop in case
of success.

* xtask: Improve publish failure UX

by offering the user more actions to choose from when an error occured.

* utils/assets: Add generated prost files to assets

to make sure they're available at build time and are picked up by all
components. It seems we hit some strange bug with the build script
where, when running `cargo publish --dry-run` the build script **is
not** run before regularly compiling zellij-utils. This shouldn't happen
according to the docs, but I cannot explain what's causing it. So we're
using this as a workaround for now to make a smooth release.

* xtask: Prevent accidental git commit deletion

when dry-running a publish.

* utils: Add comments to protobuf-related code

to explain why these changes were performed. The comments all include a
link to an issue comment explaining the situation in greater detail.

* xtask: Build protobuf definitions

when building any part of the project, similar to how we build the
plugins when required. This should ensure that all crates built through
`cargo xtask` (which is the officially supported build method) will
receive up-to-date protobuf definitions.

* chore(release): v0.38.0

* chore(version): bump development version

* refactor(server): remove unnecessary mut (#2735)

* docs(changelog): refactor server

* chore(repo): update build instructions

* fix(status-bar): add break tab hints (#2748)

* fix(status-bar): add break tab hints

* fix(tests): update snapshot to new hints

* Update CHANGELOG.md

* fix(reconnect): do not clear terminal state when entering alternate screen (#2750)

* debug

* refactor(reconnect): articular reconnection logic

* docs(changelog): fix glitches on windows terminal

* fix(grid): memory leak with unfocused tabs (#2745)

* use hashset instead of vec for changed lines

avoid output buffer growring indefinitely if tab does not get rendered

* tidy up

- improve hashset -> vec conversion
- remove now unnecessary dedup

* use copied instead of cloned on iter

* docs(changelog): grid memory leak fix

* fix(input): block input thread for newtiledpane and newfloatingpane as well (#2757)

* docs(changelog): input action new pane fix

* chore(version): adjust version for release

* chore(release): v0.38.1

* chore(version): bump development version

* fix(terminal): wrap lines when adding characters in alternate screen (#2789)

* docs(changelog): line wrap bug

* chore(version): bump version for patch release

* chore(release): v0.38.2

* chore(version): bump development version

* fix(utils): validate session name (#2607)

* fix(utils): validate session name

* cargo fmt

* refactor: assign constant values to variables

* refactor: move operations unrealted to the condition

---------

Co-authored-by: Jae-Heon Ji <[email protected]>

* docs(changelog): fix validate session name

* merge conflict fix

* feat(panes): in place run (#2795)

* prototype

* fix tests

* add to all the things except plugins

* add in-place to plugin commands

* fix launch-or-focus should_float and in place behavior

* various cleanups

* style(fmt): rustfmt

* docs

* bring in commands to dumped layout

* tidy up data structures

* bring in plugins to dumped layout

* fix tests

* style(fmt): rustfmt

* chore: rename file (#2803)

Signed-off-by: AlixBernard <[email protected]>

* bring in floating panes

* bring in stacked panes

* style(fmt): rustfmt

* bring in new_tab_template

* bring in swap layouts

* bring in edit panes, command panes and cwds

* consolidate CWD common prefixes when possible

* filter out default shell

* style(fmt): rustfmt

* handle scrollback editor panes properly

* handle in place panes properly

* bring in pane names

* style(fmt): rustfmt

* style(fmt): rustfmt

* dump layout action to terminal

* log session layout to HD periodically

* resurrect dead sessions by attaching to them

* delete dead sessions

* style(fmt): rustfmt

* start command panes as suspended by default

* style(fmt): rustfmt

* respect tab/pane focus

* improve dump performance

* hide_floating_panes in layout and resurrection

* show resurrectable sessions in zellij ls and include timestamps

* style(fmt): rustfmt

* allow disabling session serialization in config

* style(fmt): rustfmt

* fix e2e tests

* add e2e test

* style(fmt): rustfmt

* style(fmt): rustfmt

* serialize and restore pane viewport

* fix e2e tests and add new one

* style(fmt): rustfmt

* cleanups

* cleanups

* more cleanups

* refactor: move stuff around

* fix e2e tests

* style(fmt): rustfmt

* style(fmt): handle compilation warnings

* add tests for new layout properties

* fix current session name indication

* style(fmt): rustfmt

* adjust default config

* some cleanups

* go away clippy

---------

Signed-off-by: AlixBernard <[email protected]>
Co-authored-by: alekspickle <[email protected]>
Co-authored-by: Example Name <[email protected]>
Co-authored-by: Oleks Gnatovskyi <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: har7an <[email protected]>
Co-authored-by: Kyle Sutherland-Cash <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: Nacho114 <[email protected]>
Co-authored-by: Jae-Heon Ji <[email protected]>
Co-authored-by: Orhun Parmaksız <[email protected]>
Co-authored-by: deepsghimire <[email protected]>
Co-authored-by: Jae-Heon Ji <[email protected]>
Co-authored-by: AlixBernard <[email protected]>
Kangaxx-0 pushed a commit to Kangaxx-0/zellij that referenced this pull request Oct 12, 2023
* add necessary actions in server and utils

* update

* move all logic relevant to local default config directories to utils::home

* add debug statements for pane geom

* add tests; print resulting kdl

* fix dumping custom layouts from setup; start fixing algorithm for simplest layout possible

* fix: fixed persistence code and tests to support flexible layouts

* fix(tab-bar,compact-bar): tab switching with mouse sometimes not working (zellij-org#2587)

* tab-bar: fix clicks sometimes not registering

Caching the click position wasn't working across multiple plugin
instances.

Also a couple of refactors:
  - move the code with the tab switching logic inside update
  - avoid rendering when calling switch_tab_to, since it will happen
    anyway afterwards

* same fix for compact-bar

* docs(changelog): plugins tab switching with mouse fix

* feat(ui): new status bar mode (zellij-org#2619)

* supermode prototype

* fix integration tests

* fix tests

* style(fmt): rustfmt

* docs(changelog): status-bar supermode

* fix(rendering): occasional glitches while resizing (zellij-org#2621)

* docs(changelog): resize glitches fix

* chore(version): bump development version

* Fix colored pane frames in mirrored sessions (zellij-org#2625)

* server/panes/tiled: Fix colored frames

in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.

* CHANGELOG: Add PR zellij-org#2625

* server/tab/unit: Fix unit tests for server.

* fix(sessions): use custom lists of adjectives and nouns for generating session names (zellij-org#2122)

* Create custom lists of adjectives and nouns for generating session names

* move word lists to const slices

* add logic to retry name generation

* refactor

 - reuse the name generator
 - iterator instead of for loop

---------

Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): generate session names with custom words list

* feat(plugins): make plugins configurable (zellij-org#2646)

* work

* make every plugin entry point configurable

* make integration tests pass

* make e2e tests pass

* add test for plugin configuration

* add test snapshot

* add plugin config parsing test

* cleanups

* style(fmt): rustfmt

* style(comment): remove commented code

* docs(changelog): configurable plugins

* fix(terminal): properly handle resizes in alternate screen (zellij-org#2654)

* docs(changelog): focus glitches

* feat(plugins): utility functions to find active pane and tab (zellij-org#2652)

* docs(changelog): plugin api utility functions

* feat(ui): break pane to new tab and move panes between tabs (zellij-org#2664)

* prototype

* some tests

* break out floating pane

* break out plugin panes

* add keybind and fix some minor issues

* remove cli

* move pane to left/right tab

* update ui

* adjust ui

* style(fmt): rustfmt

* style(comment): remove commented code

* update snapshots

* docs(changelog): break pane to new tab

* fix(performance): plug memory leak (zellij-org#2675)

* docs(changelog): plug memory leak

* feat(plugins): use protocol buffers for serializing across the wasm boundary (zellij-org#2686)

* work

* almost done with command protobuffers

* done translating command data structures

* mid transferring of every command to protobuff command

* transferred plugin_command.rs, now moving on to shim.rs

* plugin command working with protobufs

* protobuffers in update

* protobuf event tests

* various TODOs and comments

* fix zellij-tile

* clean up prost deps

* remove version mismatch error

* fix panic

* some cleanups

* clean up event protobuffers

* clean up command protobuffers

* clean up various protobufs

* refactor protobufs

* update comments

* some transformation fixes

* use protobufs for workers

* style(fmt): rustfmt

* style(fmt): rustfmt

* chore(build): add protoc

* chore(build): authenticate protoc

* docs(changelog): protobuffers

* feat: add plugin permission system (zellij-org#2624)

* WIP: add exaple of permission ui

* feat: add request permission ui

* feat: add caching permission in memory

* feat: add permission check

* feat: add file caching

* fix: changes request

* feat(ui): new status bar mode (zellij-org#2619)

* supermode prototype

* fix integration tests

* fix tests

* style(fmt): rustfmt

* docs(changelog): status-bar supermode

* fix(rendering): occasional glitches while resizing (zellij-org#2621)

* docs(changelog): resize glitches fix

* chore(version): bump development version

* Fix colored pane frames in mirrored sessions (zellij-org#2625)

* server/panes/tiled: Fix colored frames

in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.

* CHANGELOG: Add PR zellij-org#2625

* server/tab/unit: Fix unit tests for server.

* fix(sessions): use custom lists of adjectives and nouns for generating session names (zellij-org#2122)

* Create custom lists of adjectives and nouns for generating session names

* move word lists to const slices

* add logic to retry name generation

* refactor

 - reuse the name generator
 - iterator instead of for loop

---------

Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): generate session names with custom words list

* feat(plugins): make plugins configurable (zellij-org#2646)

* work

* make every plugin entry point configurable

* make integration tests pass

* make e2e tests pass

* add test for plugin configuration

* add test snapshot

* add plugin config parsing test

* cleanups

* style(fmt): rustfmt

* style(comment): remove commented code

* docs(changelog): configurable plugins

* style(fmt): rustfmt

* touch up ui

* fix: don't save permission data in memory

* feat: load cached permission

* test: add example test (WIP)

* fix: issue event are always denied

* test: update snapshot

* apply formatting

* refactor: update default cache function

* test: add more new test

* apply formatting

* Revert "apply formatting"

This reverts commit a4e9370.

* apply format

* fix: update cache path

* apply format

* fix: cache path

* fix: update log level

* test for github workflow

* Revert "test for github workflow"

This reverts commit 01eff3b.

* refactor: permission cache

* fix(test): permission grant/deny race condition

* style(fmt): rustfmt

* style(fmt): rustfmt

* configure permissions

* permission denied test

* snapshot

* add ui for small plugins

* style(fmt): rustfmt

* some cleanups

---------

Co-authored-by: Aram Drevekenin <[email protected]>
Co-authored-by: har7an <[email protected]>
Co-authored-by: Kyle Sutherland-Cash <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>

* docs(changelog): permission system

* feat(sessions): add a session manager to switch between sessions, tabs and panes and create new ones (zellij-org#2721)

* write/read session metadata to disk for all sessions

* switch session client side

* fix tests

* various adjustments

* fix full screen focus bug in tiled panes

* fix tests

* fix permission sorting issue

* cleanups

* add session manager

* fix tests

* various cleanups

* style(fmt): rustfmt

* clear screen before switching sessions

* I hate you clippy

* truncate controls line to width

* version session cache

* attempt to fix plugin tests

* style(fmt): rustfmt

* another attempt to fix the tests in the ci

* docs(changelog): session manager

* fix(ux): various ui/ux fixes (zellij-org#2722)

* force plugin render on permission request response

* clear warnings

* Revert "feat(ui): new status bar mode (zellij-org#2619)"

This reverts commit 27763d2.

* adjust status bar help

* fix colors in session manager and shortcut in status-bar

* adjust keybindings

* docs(changelog): update ux fixes

* feat(plugins): optionally move plugin to focused tab (zellij-org#2725)

* feat(plugins): move_to_focused_tab attribute for LaunchOrFocusPlugin

* style(fmt): rustfmt

* docs(changelog): move plugin to focused tab

* fix(keybinds): add 'floating' and 'name' to the Run command keybinding (zellij-org#2726)

* fix(keybinds): add 'floating' and 'name' to the Run command keybinding

* style(fmt): rustfmt

* docs(changelog): keybind run floating pane

* fix(plugins): make sure configuration is also part of the plugin keys (zellij-org#2727)

* fix(plugins): make sure configuration is also part of the plugin keys

* no thanks clippy

* docs(changelog): fix plugin configuration uniqueness

* fix(plugins): remove protobuf duplications (zellij-org#2729)

* fix(plugins): remove protobuf duplications

* style(fmt): rustfmt

* Update CHANGELOG.md

* fix(plugins): various ui fixes (zellij-org#2731)

* Update CHANGELOG.md

* fix(panes): refocus pane properly on tab change (zellij-org#2734)

* fix(panes): stacked panes focus bug

* style(fmt): rustfmt

* docs(changelog): stacked pane focus glitch

* xtask/pipeline: Fix publish task (zellij-org#2711)

* xtask/pipeline: Fix publish task

which was previously stuck in an infinite loop after successfully
publishing a crate. The error originated in the code only checking for
error conditions but not breaking out of the inner infinite loop in case
of success.

* xtask: Improve publish failure UX

by offering the user more actions to choose from when an error occured.

* utils/assets: Add generated prost files to assets

to make sure they're available at build time and are picked up by all
components. It seems we hit some strange bug with the build script
where, when running `cargo publish --dry-run` the build script **is
not** run before regularly compiling zellij-utils. This shouldn't happen
according to the docs, but I cannot explain what's causing it. So we're
using this as a workaround for now to make a smooth release.

* xtask: Prevent accidental git commit deletion

when dry-running a publish.

* utils: Add comments to protobuf-related code

to explain why these changes were performed. The comments all include a
link to an issue comment explaining the situation in greater detail.

* xtask: Build protobuf definitions

when building any part of the project, similar to how we build the
plugins when required. This should ensure that all crates built through
`cargo xtask` (which is the officially supported build method) will
receive up-to-date protobuf definitions.

* chore(release): v0.38.0

* chore(version): bump development version

* refactor(server): remove unnecessary mut (zellij-org#2735)

* docs(changelog): refactor server

* chore(repo): update build instructions

* fix(status-bar): add break tab hints (zellij-org#2748)

* fix(status-bar): add break tab hints

* fix(tests): update snapshot to new hints

* Update CHANGELOG.md

* fix(reconnect): do not clear terminal state when entering alternate screen (zellij-org#2750)

* debug

* refactor(reconnect): articular reconnection logic

* docs(changelog): fix glitches on windows terminal

* fix(grid): memory leak with unfocused tabs (zellij-org#2745)

* use hashset instead of vec for changed lines

avoid output buffer growring indefinitely if tab does not get rendered

* tidy up

- improve hashset -> vec conversion
- remove now unnecessary dedup

* use copied instead of cloned on iter

* docs(changelog): grid memory leak fix

* fix(input): block input thread for newtiledpane and newfloatingpane as well (zellij-org#2757)

* docs(changelog): input action new pane fix

* chore(version): adjust version for release

* chore(release): v0.38.1

* chore(version): bump development version

* fix(terminal): wrap lines when adding characters in alternate screen (zellij-org#2789)

* docs(changelog): line wrap bug

* chore(version): bump version for patch release

* chore(release): v0.38.2

* chore(version): bump development version

* fix(utils): validate session name (zellij-org#2607)

* fix(utils): validate session name

* cargo fmt

* refactor: assign constant values to variables

* refactor: move operations unrealted to the condition

---------

Co-authored-by: Jae-Heon Ji <[email protected]>

* docs(changelog): fix validate session name

* merge conflict fix

* feat(panes): in place run (zellij-org#2795)

* prototype

* fix tests

* add to all the things except plugins

* add in-place to plugin commands

* fix launch-or-focus should_float and in place behavior

* various cleanups

* style(fmt): rustfmt

* docs

* bring in commands to dumped layout

* tidy up data structures

* bring in plugins to dumped layout

* fix tests

* style(fmt): rustfmt

* chore: rename file (zellij-org#2803)

Signed-off-by: AlixBernard <[email protected]>

* bring in floating panes

* bring in stacked panes

* style(fmt): rustfmt

* bring in new_tab_template

* bring in swap layouts

* bring in edit panes, command panes and cwds

* consolidate CWD common prefixes when possible

* filter out default shell

* style(fmt): rustfmt

* handle scrollback editor panes properly

* handle in place panes properly

* bring in pane names

* style(fmt): rustfmt

* style(fmt): rustfmt

* dump layout action to terminal

* log session layout to HD periodically

* resurrect dead sessions by attaching to them

* delete dead sessions

* style(fmt): rustfmt

* start command panes as suspended by default

* style(fmt): rustfmt

* respect tab/pane focus

* improve dump performance

* hide_floating_panes in layout and resurrection

* show resurrectable sessions in zellij ls and include timestamps

* style(fmt): rustfmt

* allow disabling session serialization in config

* style(fmt): rustfmt

* fix e2e tests

* add e2e test

* style(fmt): rustfmt

* style(fmt): rustfmt

* serialize and restore pane viewport

* fix e2e tests and add new one

* style(fmt): rustfmt

* cleanups

* cleanups

* more cleanups

* refactor: move stuff around

* fix e2e tests

* style(fmt): rustfmt

* style(fmt): handle compilation warnings

* add tests for new layout properties

* fix current session name indication

* style(fmt): rustfmt

* adjust default config

* some cleanups

* go away clippy

---------

Signed-off-by: AlixBernard <[email protected]>
Co-authored-by: alekspickle <[email protected]>
Co-authored-by: Example Name <[email protected]>
Co-authored-by: Oleks Gnatovskyi <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: har7an <[email protected]>
Co-authored-by: Kyle Sutherland-Cash <[email protected]>
Co-authored-by: Thomas Linford <[email protected]>
Co-authored-by: Nacho114 <[email protected]>
Co-authored-by: Jae-Heon Ji <[email protected]>
Co-authored-by: Orhun Parmaksız <[email protected]>
Co-authored-by: deepsghimire <[email protected]>
Co-authored-by: Jae-Heon Ji <[email protected]>
Co-authored-by: AlixBernard <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants