diff --git a/Cargo.lock b/Cargo.lock
index 85e1ccb0..eedbffe2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -560,7 +560,7 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
 [[package]]
 name = "jack"
 version = "0.13.0"
-source = "git+https://codeberg.org/unspeaker/rust-jack#a13c1c4d20343e574787a703eaeea7aeda63b084"
+source = "git+https://codeberg.org/unspeaker/rust-jack?rev=a13c1c4#a13c1c4d20343e574787a703eaeea7aeda63b084"
 dependencies = [
  "bitflags 2.9.0",
  "jack-sys",
@@ -572,7 +572,7 @@ dependencies = [
 [[package]]
 name = "jack-sys"
 version = "0.5.1"
-source = "git+https://codeberg.org/unspeaker/rust-jack#a13c1c4d20343e574787a703eaeea7aeda63b084"
+source = "git+https://codeberg.org/unspeaker/rust-jack?rev=a13c1c4#a13c1c4d20343e574787a703eaeea7aeda63b084"
 dependencies = [
  "bitflags 2.9.0",
  "lazy_static",
@@ -1499,7 +1499,7 @@ dependencies = [
 [[package]]
 name = "tek_edn"
 version = "0.1.0"
-source = "git+https://codeberg.org/unspeaker/tengri#5352a9d5484198e35760d62a2cd6ef202990fb2c"
+source = "git+https://codeberg.org/unspeaker/tengri?rev=d5a304e#d5a304e64593fc38b4a393b5e1fdf3fc60baf35d"
 dependencies = [
  "itertools 0.14.0",
  "konst",
@@ -1509,7 +1509,7 @@ dependencies = [
 [[package]]
 name = "tek_input"
 version = "0.2.0"
-source = "git+https://codeberg.org/unspeaker/tengri#5352a9d5484198e35760d62a2cd6ef202990fb2c"
+source = "git+https://codeberg.org/unspeaker/tengri?rev=d5a304e#d5a304e64593fc38b4a393b5e1fdf3fc60baf35d"
 dependencies = [
  "tek_edn",
 ]
@@ -1535,7 +1535,7 @@ dependencies = [
 [[package]]
 name = "tek_output"
 version = "0.2.0"
-source = "git+https://codeberg.org/unspeaker/tengri#5352a9d5484198e35760d62a2cd6ef202990fb2c"
+source = "git+https://codeberg.org/unspeaker/tengri?rev=d5a304e#d5a304e64593fc38b4a393b5e1fdf3fc60baf35d"
 dependencies = [
  "tek_edn",
 ]
@@ -1577,7 +1577,7 @@ dependencies = [
 [[package]]
 name = "tek_tui"
 version = "0.2.0"
-source = "git+https://codeberg.org/unspeaker/tengri#5352a9d5484198e35760d62a2cd6ef202990fb2c"
+source = "git+https://codeberg.org/unspeaker/tengri?rev=d5a304e#d5a304e64593fc38b4a393b5e1fdf3fc60baf35d"
 dependencies = [
  "atomic_float",
  "better-panic",
diff --git a/Justfile b/Justfile
index 60365eeb..3984b13c 100644
--- a/Justfile
+++ b/Justfile
@@ -1,13 +1,16 @@
-upstreams  := "codeberg origin" # TODO!
-debug      := "reset && cargo run --"
-release    := "reset && cargo run --release --"
-name       := "-n tek"
-bpm        := "-b 174"
-midi-in    := "-i 'Midi-Bridge:.*nanoKEY.*:.*capture.*'"
-midi-out   := "-o 'Midi-Bridge:.*playback.*'"
-audio-in   := "-l 'Komplete Audio 6 Pro:capture_AUX1' -r 'Komplete Audio 6 Pro:capture_AUX1'"
-audio-out  := "-L 'Komplete Audio 6 Pro:playback_AUX1' -R 'Komplete Audio 6 Pro:playback_AUX1'"
-firefox-in := "-l 'Firefox:output_FL' -r 'Firefox:output_FR'"
+upstreams    := "codeberg origin" # TODO!
+debug        := "reset && cargo run --"
+release      := "reset && cargo run --release --"
+name         := "-n tek"
+bpm          := "-b 174"
+midi-in      := "-i 'Midi-Bridge:.*nanoKEY.*:.*capture.*'"
+midi-out     := "-o 'Midi-Bridge:.*playback.*'"
+audio-in     := "-l 'Komplete Audio 6 Pro:capture_AUX1' -r 'Komplete Audio 6 Pro:capture_AUX1'"
+audio-out    := "-L 'Komplete Audio 6 Pro:playback_AUX1' -R 'Komplete Audio 6 Pro:playback_AUX1'"
+firefox-in   := "-l 'Firefox:output_FL' -r 'Firefox:output_FR'"
+covfig       := "CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' RUSTDOCFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cov/cargo-test-%p-%m.profraw'"
+grcov-binary := "--binary-path ./target/coverage/deps/"
+grcov-ignore := "--ignore-not-existing --ignore '../*' --ignore \"/*\" --ignore 'target/*'"
 
 default:
   bacon -s
@@ -21,9 +24,6 @@ prof:
   CARGO_PROFILE_RELEASE_DEBUG=true cargo flamegraph -- arranger
 doc:
   cargo doc -j4 --workspace --document-private-items
-covfig := "CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' RUSTDOCFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='cov/cargo-test-%p-%m.profraw'"
-grcov-binary := "--binary-path ./target/coverage/deps/"
-grcov-ignore := "--ignore-not-existing --ignore '../*' --ignore \"/*\" --ignore 'target/*'"
 cov:
   {{covfig}} time cargo test -j4 --workspace --exclude jack --profile coverage
   rm -rf target/coverage/html || true
diff --git a/app/Cargo.toml b/app/Cargo.toml
index c6fa9de6..b2966e12 100644
--- a/app/Cargo.toml
+++ b/app/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-tek_tui = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
+tek_tui = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
 
 tek_jack    = { path = "../jack"    }
 tek_time    = { path = "../time"    }
diff --git a/jack/Cargo.toml b/jack/Cargo.toml
index 73ff17dc..afee94fc 100644
--- a/jack/Cargo.toml
+++ b/jack/Cargo.toml
@@ -4,4 +4,4 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-jack = { git = "https://codeberg.org/unspeaker/rust-jack", ref = "a13c1c4" }
+jack = { git = "https://codeberg.org/unspeaker/rust-jack", rev = "a13c1c4" }
diff --git a/jack/src/jack_client.rs b/jack/src/jack_client.rs
index b45ae8db..2dadd691 100644
--- a/jack/src/jack_client.rs
+++ b/jack/src/jack_client.rs
@@ -33,7 +33,7 @@ pub trait HasJack {
         }
         Ok(())
     }
-    fn sync_follow (&self, enable: bool) -> Usually<()> {
+    fn sync_follow (&self, _enable: bool) -> Usually<()> {
         // TODO: sync follow
         Ok(())
     }
diff --git a/midi/Cargo.toml b/midi/Cargo.toml
index 20809419..67ee3223 100644
--- a/midi/Cargo.toml
+++ b/midi/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-tek_tui = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
+tek_tui = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
 
 tek_jack = { path = "../jack" }
 tek_time = { path = "../time" }
diff --git a/midi/src/midi_in.rs b/midi/src/midi_in.rs
index 986ee903..e8ab6aac 100644
--- a/midi/src/midi_in.rs
+++ b/midi/src/midi_in.rs
@@ -47,27 +47,27 @@ pub trait MidiRecordApi: HasClock + HasPlayClip + HasMidiIns {
         if let Some((started, ref clip)) = self.play_clip().clone() {
             self.record_clip(scope, started, clip, midi_buf);
         }
-        if let Some((start_at, clip)) = &self.next_clip() {
+        if let Some((_start_at, _clip)) = &self.next_clip() {
             self.record_next();
         }
     }
     fn record_clip (
         &mut self,
-        scope:    &ProcessScope,
-        started:  Moment,
-        clip:   &Option<Arc<RwLock<MidiClip>>>,
-        midi_buf: &mut Vec<Vec<Vec<u8>>>
+        scope:     &ProcessScope,
+        started:   Moment,
+        clip:      &Option<Arc<RwLock<MidiClip>>>,
+        _midi_buf: &mut Vec<Vec<Vec<u8>>>
     ) {
         if let Some(clip) = clip {
             let sample0    = scope.last_frame_time() as usize;
             let start      = started.sample.get() as usize;
-            let recording  = self.recording();
+            let _recording = self.recording();
             let timebase   = self.clock().timebase().clone();
             let quant      = self.clock().quant.get();
             let mut clip = clip.write().unwrap();
             let length     = clip.length;
             for input in self.midi_ins_mut().iter() {
-                for (sample, event, bytes) in parse_midi_input(input.port().iter(scope)) {
+                for (sample, event, _bytes) in parse_midi_input(input.port().iter(scope)) {
                     if let LiveEvent::Midi { message, .. } = event {
                         clip.record_event({
                             let sample    = (sample0 + sample - start) as f64;
diff --git a/midi/src/midi_player.rs b/midi/src/midi_player.rs
index 241c240d..1f2b62ee 100644
--- a/midi/src/midi_player.rs
+++ b/midi/src/midi_player.rs
@@ -64,13 +64,13 @@ impl Default for MidiPlayer {
 impl MidiPlayer {
     pub fn new (
         name:  impl AsRef<str>,
-        jack:  &Jack,
+        _jack: &Jack,
         clock: Option<&Clock>,
         clip:  Option<&Arc<RwLock<MidiClip>>>,
         _midi_from: &[PortConnect],
         _midi_to:   &[PortConnect],
     ) -> Usually<Self> {
-        let name  = name.as_ref();
+        let _name = name.as_ref();
         let clock = clock.cloned().unwrap_or_default();
         Ok(Self {
             midi_ins:   vec![],//JackMidiIn::new(jack,  format!("M/{name}"), midi_from)?,],
diff --git a/midi/src/midi_pool.rs b/midi/src/midi_pool.rs
index 959b94c2..e733ac63 100644
--- a/midi/src/midi_pool.rs
+++ b/midi/src/midi_pool.rs
@@ -118,7 +118,7 @@ pub struct ClipLength {
     focus:  Option<ClipLengthFocus>,
 }
 impl ClipLength {
-    fn new (pulses: usize, focus: Option<ClipLengthFocus>) -> Self {
+    fn _new (pulses: usize, focus: Option<ClipLengthFocus>) -> Self {
         Self { ppq: PPQ, bpb: 4, pulses, focus }
     }
     fn bars  (&self) -> usize {
@@ -458,7 +458,7 @@ command!(|self: ClipLengthCommand, state: MidiPool|{
                 Tick => { *length = length.saturating_sub(1) },
             },
             Set(length) => {
-                let mut old_length = None;
+                let old_length;
                 {
                     let clip = state.clips()[clip].clone();//.write().unwrap();
                     old_length = Some(clip.read().unwrap().length);
diff --git a/plugin/Cargo.toml b/plugin/Cargo.toml
index 517a9cba..681932c0 100644
--- a/plugin/Cargo.toml
+++ b/plugin/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-tek_tui = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
+tek_tui = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
 
 tek_jack = { path = "../jack" }
 tek_time = { path = "../time" }
diff --git a/plugin/src/lib.rs b/plugin/src/lib.rs
index 6da6ed8b..2dae9c2d 100644
--- a/plugin/src/lib.rs
+++ b/plugin/src/lib.rs
@@ -8,8 +8,8 @@ pub(crate) use ::tek_jack::{*, jack::*};
 pub(crate) use ::tek_tui::{
     *,
     tek_output::*,
-    tek_input::*,
-    tek_edn::*,
+    //tek_input::*,
+    //tek_edn::*,
     ratatui::prelude::*,
-    crossterm::event::*,
+    //crossterm::event::*,
 };
diff --git a/sampler/Cargo.toml b/sampler/Cargo.toml
index 1b0f8b77..d6342d2e 100644
--- a/sampler/Cargo.toml
+++ b/sampler/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-tek_tui = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
+tek_tui = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
 
 tek_jack = { path = "../jack" }
 tek_time = { path = "../time" }
diff --git a/sampler/src/lib.rs b/sampler/src/lib.rs
index 89bba172..b3dfeed8 100644
--- a/sampler/src/lib.rs
+++ b/sampler/src/lib.rs
@@ -6,7 +6,7 @@ pub(crate) use ::tek_tui::tek_output::*;
 pub(crate) use ::tek_tui::tek_input::*;
 pub(crate) use ::tek_tui::tek_edn::*;
 pub(crate) use ::tek_tui::ratatui::prelude::*;
-pub(crate) use ::tek_tui::crossterm::event::*;
+//pub(crate) use ::tek_tui::crossterm::event::*;
 pub(crate) use std::sync::{Arc, RwLock, atomic::{AtomicUsize, Ordering::Relaxed}};
 pub(crate) use std::fs::File;
 pub(crate) use std::path::PathBuf;
@@ -16,7 +16,7 @@ pub(crate) use symphonia::{
     core::{
         formats::Packet,
         codecs::{Decoder, CODEC_TYPE_NULL},
-        errors::Error as SymphoniaError,
+        //errors::Error as SymphoniaError,
         io::MediaSourceStream,
         probe::Hint,
         audio::SampleBuffer,
diff --git a/time/Cargo.toml b/time/Cargo.toml
index 2891241b..c9add1a5 100644
--- a/time/Cargo.toml
+++ b/time/Cargo.toml
@@ -4,8 +4,8 @@ edition = "2021"
 version = "0.2.0"
 
 [dependencies]
-tek_input = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
-tek_edn   = { git = "https://codeberg.org/unspeaker/tengri", ref = "5352a9d" }
+tek_input = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
+tek_edn   = { git = "https://codeberg.org/unspeaker/tengri", rev = "d5a304e" }
 
 tek_jack  = { path = "../jack"  }