Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
86c3b96
add crates
iamllama Oct 14, 2025
3b3dce1
update package.json
iamllama Oct 14, 2025
8c6607f
codegen i18n ts for launcher
iamllama Oct 14, 2025
8f6b149
codegen launcher rpc (partly)
iamllama Oct 14, 2025
5816186
modify helper files to support launcher
iamllama Oct 14, 2025
ef14984
add launcher strings
iamllama Oct 14, 2025
d456574
qt/launcher-gui
iamllama Oct 14, 2025
2c731f5
add to workspace, add helper scripts
iamllama Oct 14, 2025
c319859
modify i18n resources struct for launcher use
iamllama Oct 14, 2025
a76ef8c
update minilints
iamllama Oct 14, 2025
c74a373
update check_web (svelte-check still missing)
iamllama Oct 14, 2025
2860e62
add option to hide revert buttons
iamllama Oct 14, 2025
ada0722
add title slot
iamllama Oct 14, 2025
6aeb1da
fix launcher scripts
iamllama Oct 14, 2025
362d09e
update advisory allowlist...
iamllama Oct 14, 2025
778955b
add tauri-plugin-dialog crate
iamllama Oct 18, 2025
7048730
add @xterm/addon-webgl package
iamllama Oct 18, 2025
c973f0f
add and use isWindows helper fn
iamllama Oct 18, 2025
5ca2b84
add new rpc calls
iamllama Oct 18, 2025
920fbdb
update capabilities
iamllama Oct 18, 2025
6d6df1c
refactor state and uv code
iamllama Oct 18, 2025
eaa514f
refactor app
iamllama Oct 18, 2025
572cbf1
remove unneeded rpc error message
iamllama Oct 18, 2025
b04520a
refactor and implement rpc commands
iamllama Oct 18, 2025
8ec9d4d
change codegen to not alert by default on error
iamllama Oct 18, 2025
a379e20
update tauri.conf.json
iamllama Oct 18, 2025
2ba7809
add strings
iamllama Oct 18, 2025
9434499
add font fallback
iamllama Oct 18, 2025
b97b846
remove getVersions call
iamllama Oct 18, 2025
1675518
provide tr as store to avoid using {#key ...}
iamllama Oct 18, 2025
1f7fe02
modify Warning to take icon
iamllama Oct 18, 2025
e398671
add CheckDecagramOutline icon
iamllama Oct 18, 2025
3bb77f9
add components
iamllama Oct 18, 2025
49e850c
refactor Start.svelte
iamllama Oct 18, 2025
cd78dd9
add favicon
iamllama Oct 18, 2025
9816c81
limit select menu height to 200px
iamllama Oct 18, 2025
4f52a2c
make TitledContainer's title optional
iamllama Oct 18, 2025
6f06f81
./check
iamllama Oct 18, 2025
179968d
update tr store in +page.svelte
iamllama Oct 18, 2025
4c27e53
remove unused stores
iamllama Oct 18, 2025
1325147
cleanup
iamllama Oct 18, 2025
0d12045
remove snafu for now
iamllama Oct 20, 2025
bcd28c0
add GetState rpc
iamllama Oct 20, 2025
c08f86c
add strings
iamllama Oct 20, 2025
54d9a19
add components
iamllama Oct 20, 2025
7b5afb8
add uninstall button
iamllama Oct 20, 2025
1ce3056
extract normal state component out of Start
iamllama Oct 20, 2025
36a0e0d
use getState
iamllama Oct 20, 2025
73ac0a1
convert uv methods back to free fns
iamllama Oct 20, 2025
68f9e05
./ninja format
iamllama Oct 20, 2025
c0eedbc
add todo to uninstall btn
iamllama Oct 20, 2025
a789a2c
add uninstall rpcs and state
iamllama Oct 24, 2025
fcc0ee3
add StateExt trait
iamllama Oct 24, 2025
316e176
add I18nExt trait
iamllama Oct 24, 2025
dfe77c8
refactor to use traits
iamllama Oct 24, 2025
8f1a3dc
implement uninstall rpcs
iamllama Oct 24, 2025
dd0a676
update platform-specific uninstall fns
iamllama Oct 24, 2025
6f0865e
update handle_uninstall
iamllama Oct 24, 2025
326f578
unhardcode pty-data event name
iamllama Oct 24, 2025
172f924
add/modify strings
iamllama Oct 24, 2025
42ded9a
move font fallback to base.scss
iamllama Oct 24, 2025
3c3d476
fix spinner not being centred
iamllama Oct 24, 2025
6b82e84
implement uninstall screen
iamllama Oct 24, 2025
0c66df1
fetch and pass uninstall info
iamllama Oct 24, 2025
8d2fab7
fix reactivity issue
iamllama Oct 24, 2025
5aeb496
cleanup
iamllama Oct 24, 2025
37e5be4
debug flag
iamllama Oct 24, 2025
a4c54b2
remove use of setError
iamllama Oct 25, 2025
e7a2763
Merge branch 'main' into launcher-gui
iamllama Oct 31, 2025
222a868
port 739e41ce1
iamllama Oct 31, 2025
3edfc0b
port a05c90cbc
iamllama Oct 31, 2025
8193845
port 23263caea
iamllama Oct 31, 2025
1622f9b
replace unwraps
iamllama Oct 31, 2025
04332f3
modify strings
iamllama Oct 31, 2025
934d11a
allow launching existing or installing new if either fails
iamllama Oct 31, 2025
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
Prev Previous commit
Next Next commit
port 23263ca
  • Loading branch information
iamllama committed Oct 31, 2025
commit 81938457638ef86ccd4620ecd4f8e774e094d367
4 changes: 4 additions & 0 deletions qt/launcher-gui/src-tauri/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ fn main() -> Result<()> {
let pool = DescriptorPool::decode(std::fs::read(descriptors_path)?.as_ref())?;
rust_interface::write_rust_interface(&pool)?;

println!("cargo:rerun-if-changed=../../../out/buildhash");
let buildhash = std::fs::read_to_string("../../../out/buildhash").unwrap_or_default();
println!("cargo:rustc-env=BUILDHASH={buildhash}");

tauri_build::build();

Ok(())
Expand Down
17 changes: 16 additions & 1 deletion qt/launcher-gui/src-tauri/src/uv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,20 @@ pub fn build_python_command(state: &Paths, args: &[String]) -> Result<Command> {
Ok(cmd)
}

fn diff_launcher_was_installed(state: &Paths) -> Result<bool> {
let launcher_version = option_env!("BUILDHASH").unwrap_or("dev").trim();
let launcher_version_path = state.uv_install_root.join("launcher-version");
if let Ok(content) = read_file(&launcher_version_path) {
if let Ok(version_str) = String::from_utf8(content) {
if version_str.trim() == launcher_version {
return Ok(false);
}
}
}
write_file(launcher_version_path, launcher_version)?;
Ok(true)
}

impl State {
pub fn init() -> Result<Self> {
let uv_install_root = if let Ok(custom_root) = std::env::var("ANKI_LAUNCHER_VENV_ROOT") {
Expand Down Expand Up @@ -855,11 +869,12 @@ impl State {
let sync_time = file_timestamp_secs(&paths.sync_complete_marker);
paths.pyproject_modified_by_user = pyproject_time > sync_time;
let pyproject_has_changed = paths.pyproject_modified_by_user;
let different_launcher = diff_launcher_was_installed(&paths)?;

// TODO: remove
let debug = cfg!(debug_assertions) && std::env::var("ANKI_LAUNCHER_SKIP").is_err();

if !launcher_requested && !pyproject_has_changed && !debug {
if !launcher_requested && !pyproject_has_changed && !different_launcher && !debug {
return Ok(Self::LaunchAnki(paths.into()));
}

Expand Down