Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0dcec5f
chore: Increment version to 1.6.2
tkornack Jan 14, 2026
3b49cf9
Feat: RPC list cache in device::RpcClient
rasen68 Feb 6, 2026
f69e804
Feat: use RpcClient::rpc_list (with cache) for tio-tool rpc-list
rasen68 Feb 6, 2026
6ab72e8
Feat: use cache RPC list with tio-monitor for tab completion
rasen68 Feb 6, 2026
82c2d82
Feat: use cache RPC list with tio-monitor for tab completion
rasen68 Feb 6, 2026
3fbee47
Feat: tio-monitor RPC suggestion box dynamic sizing
rasen68 Feb 6, 2026
75732c8
Feat: tio-monitor RPC suggestion box dynamic sizing
rasen68 Feb 6, 2026
bec8ff1
Feat: Better tio-monitor RPC tab completion
rasen68 Feb 10, 2026
beea85c
Feat: Better tio-monitor RPC tab completion
rasen68 Feb 10, 2026
7ac4491
Fix: Readable layout if terminal shrinks
rasen68 Feb 10, 2026
4fca4c8
Fix: Readable layout if terminal shrinks
rasen68 Feb 10, 2026
26f1bb0
Feat: Remember present command when navigating history
rasen68 Feb 10, 2026
d05662f
Feat: Remember present command when navigating history
rasen68 Feb 10, 2026
1010311
Feat: Right arrow to accept completion, Esc no longer quits program
rasen68 Feb 10, 2026
7ecbca5
Feat: Right arrow to accept completion, Esc no longer quits program
rasen68 Feb 10, 2026
3a76346
Feat: Move rpc list read to thread to avoid freezing while writing cache
rasen68 Feb 10, 2026
69eed0c
Feat: Move rpc list read to thread to avoid freezing while writing cache
rasen68 Feb 10, 2026
d55de48
Feat: RPC list cache in device::RpcClient
rasen68 Feb 6, 2026
de27300
Feat: use RpcClient::rpc_list (with cache) for tio-tool rpc-list
rasen68 Feb 6, 2026
2169393
Feat: Shell completion for tio-monitor
rasen68 Feb 24, 2026
d5c3996
Feat (monitor): App holds hashmap<route: rpclist> for multiple route …
rasen68 Feb 25, 2026
48af829
Fix: reset suggestion box size on new command mode
rasen68 Feb 25, 2026
17aa33c
Feat: Store hashmap<name: meta> for rpcs to not have to request their…
rasen68 Feb 25, 2026
adf688c
Fix: Left and right arrow keys work in command mode
rasen68 Feb 25, 2026
99f2683
Fix (cache-rpc): Remove empty cache file instead of reading nothing
rasen68 Feb 26, 2026
7c35160
Feat (proxy): Accept settings payload for cache invalidation
rasen68 Feb 26, 2026
8199ec2
Feat: Update tio-monitor and tio-health to accept new settings device…
rasen68 Feb 26, 2026
fab6d81
Feat: Basic shell completion for twinleaf-tools
Feb 27, 2026
896787c
Refactor CLIs to individual files :)
Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 90 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions twinleaf-tools/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ description = "Tools for the Twinleaf I/O protocol for reading data from Twinlea
homepage = "https://twinleaf.com"
repository = "https://github.com/twinleaf/twinleaf-rust"
readme = "README.md"
build = "build.rs"

[features]
default = []
hdf5 = ["twinleaf/hdf5"]

[dependencies]
chrono = "0.4.38"
crossbeam = "0.8.4"
serialport = "4.5.1"
toml_edit = {version = "0.22.24", features = ["parse"]}
Expand All @@ -24,4 +24,12 @@ ratatui = "0.29.0"
tui-prompts = "0.5.2"
welch-sde = "0.1.0"
memmap2 = "0.9.9"
indicatif = "0.18.3"
indicatif = "0.18.3"
clap_complete = "4.5.66"
chrono = "0.4.44"

[build-dependencies]
clap = { version = "4.5.51", features = ["derive"] }
clap_complete = "4.5.66"
twinleaf = {version = "1.3.4", path = "../twinleaf" }
chrono = "0.4.44"
25 changes: 25 additions & 0 deletions twinleaf-tools/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
use std::{env, io};
use clap::{CommandFactory};
use clap_complete::{generate_to, Shell};

include!("src/lib.rs");

fn main() -> Result<(), io::Error> {
let outdir = match env::var_os("OUT_DIR") {
None => return Ok(()),
Some(outdir) => outdir,
};

let mut proxy_cmd = ProxyCli::command();
let mut tool_cmd = TioToolCli::command();
let mut monitor_cmd = MonitorCli::command();
let mut health_cmd = HealthCli::command();
for &shell in Shell::value_variants() {
generate_to(shell, &mut proxy_cmd, "tio-proxy", &outdir)?;
generate_to(shell, &mut tool_cmd, "tio-tool", &outdir)?;
generate_to(shell, &mut monitor_cmd, "tio-monitor", &outdir)?;
generate_to(shell, &mut health_cmd, "tio-health", &outdir)?;
}

Ok(())
}
Loading