Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
fb80d3e
Add manual-recovery command to limited-console
andrewbattat Nov 11, 2025
9503d5e
Change guestos-recovery-upgrader.sh to accept parameters instead of r…
andrewbattat Nov 11, 2025
2783ae9
Initial guestos_recovery_tui implementation
andrewbattat Nov 12, 2025
baf62cb
Fix web virtual console display
andrewbattat Nov 12, 2025
d52a387
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 13, 2025
849153b
Fix limited console VGA view
andrewbattat Nov 13, 2025
e033a70
Update error logging in recovery-view
andrewbattat Nov 13, 2025
bfb6513
Fix limited-console permissions
andrewbattat Nov 13, 2025
2d15709
Fix console logging
andrewbattat Nov 13, 2025
cb4f3ce
Fix calling guestos-recovery-upgrader.sh
andrewbattat Nov 17, 2025
1b646ec
Fix guestos-recovery-upgrader console logging
andrewbattat Nov 17, 2025
614f433
Fix logging piping
andrewbattat Nov 17, 2025
b5f008b
Improve success log
andrewbattat Nov 17, 2025
1edd8aa
Fix failure logs
andrewbattat Nov 17, 2025
cfc201d
Remove unnecessary web console logic
andrewbattat Nov 17, 2025
41ffcc7
Remove unnecessary logic
andrewbattat Nov 17, 2025
ae082c1
Improve logging
andrewbattat Nov 17, 2025
df378cb
Fix logs overriding the screen
andrewbattat Nov 17, 2025
ab9961d
Simplify teardown_terminal and fix terminal clearning
andrewbattat Nov 17, 2025
e40b2af
Restrict notify console logs if manual-recovery running
andrewbattat Nov 17, 2025
6a69969
Add hostos_grub.cfg note
andrewbattat Nov 17, 2025
da4c92c
Remove guestos-recovery-upgrader.service and restart guestos at end o…
andrewbattat Nov 17, 2025
1df4ca7
Simplify terminal clearing
andrewbattat Nov 17, 2025
d092e3f
Simplify recovery tui
andrewbattat Nov 17, 2025
25150ad
Refactor field constraints
andrewbattat Nov 17, 2025
45bfaa0
is_terminal_too_small and validate_terminal_size helper functions
andrewbattat Nov 17, 2025
0cb20e1
Log helper functions
andrewbattat Nov 17, 2025
fd99fe5
Extract out detect_success_message and extract_errors_from_logs
andrewbattat Nov 17, 2025
a0c975f
Remove extract_errors_from_journalctl
andrewbattat Nov 17, 2025
cb0b05b
Fix linter errors
andrewbattat Nov 17, 2025
db89ae7
Refactor field_configs
andrewbattat Nov 17, 2025
5f936fd
Create spawn_log_reader_thread
andrewbattat Nov 17, 2025
5953805
Refactor create_parameter_lines
andrewbattat Nov 17, 2025
53e77cd
Include recovery parameters in error page
andrewbattat Nov 17, 2025
b7711ca
Minor refactor
andrewbattat Nov 17, 2025
8de9cfc
Fix limited console log
andrewbattat Nov 17, 2025
c8f9531
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 17, 2025
306a159
Automatically updated Cargo*.lock
Nov 17, 2025
5fb9b59
Create ui.rs
andrewbattat Nov 18, 2025
5a0eb3a
Create monitor_process_with_logs
andrewbattat Nov 18, 2025
17b0bdd
ui.rs helper functions
andrewbattat Nov 18, 2025
f5d4cdd
Minor refactoring
andrewbattat Nov 18, 2025
f5d40a8
Move terminal checks to ui.rs
andrewbattat Nov 18, 2025
3cd6807
Organizational improvements
andrewbattat Nov 18, 2025
4400f00
Create render_terminal_too_small_error
andrewbattat Nov 18, 2025
c36beff
Split out draw_completion_screen
andrewbattat Nov 18, 2025
0b6aac7
Error helper functions
andrewbattat Nov 18, 2025
b0a956b
Simplify extract_errors_from_logs
andrewbattat Nov 18, 2025
adc8aac
Refactor handle_input
andrewbattat Nov 18, 2025
d371bab
Minor touch-ups
andrewbattat Nov 18, 2025
0e7c4d1
Update packages
andrewbattat Nov 18, 2025
8a978e7
Fix nested NNS recovery tests
andrewbattat Nov 18, 2025
275f6aa
Clean up logging
andrewbattat Nov 18, 2025
9ec84f1
Fix clippy
andrewbattat Nov 19, 2025
5ae1749
Fix simulate_node_provider_action
andrewbattat Nov 19, 2025
8faaf0f
Revert unnecessary dockerfile changes
andrewbattat Nov 19, 2025
d8add85
Refactor action handling
andrewbattat Nov 19, 2025
43b7fce
Fix nns_recovery simulate_node_provider_action
andrewbattat Nov 19, 2025
f29ac64
Replace terminal_guard unwraps
andrewbattat Nov 19, 2025
bbd48a3
Simplify button rendering
andrewbattat Nov 19, 2025
526e360
Fix error message display
andrewbattat Nov 19, 2025
76c36af
Fix success exit log
andrewbattat Nov 19, 2025
0bc685a
Pass recovery-hash to guestos, fixing manual recovery
andrewbattat Nov 19, 2025
59fd260
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 19, 2025
a920ba2
Automatically updated Cargo*.lock
Nov 19, 2025
c4f663b
Minor fixes
andrewbattat Nov 20, 2025
3758b16
Use a file to store guestos_recovery_hash
andrewbattat Nov 20, 2025
9f7ca2f
Update simulate_node_provider_action sleep
andrewbattat Nov 20, 2025
60a226f
Update parameter log color to yellow
andrewbattat Nov 20, 2025
7bbb088
Remove detect_success_message
andrewbattat Nov 20, 2025
69a3dc7
Refactor show_status_and_run_upgrader
andrewbattat Nov 20, 2025
40571f5
Create metadata funciton to consolidate fieldMetadata
andrewbattat Nov 20, 2025
27636fd
Fix overal control logic
andrewbattat Nov 20, 2025
7860640
Minor fix-ups
andrewbattat Nov 20, 2025
ff9a426
Fix exit error message
andrewbattat Nov 20, 2025
54c08b7
Simplify input navigation and refactor event handling
andrewbattat Nov 20, 2025
b8c371c
create_block helper function
andrewbattat Nov 20, 2025
78709f7
Clear error_message on any user input
andrewbattat Nov 20, 2025
fcecbf3
Create RECOVERY_UPGRADER_SCRIPT file path constant
andrewbattat Nov 20, 2025
45f90c9
Refactor field validation
andrewbattat Nov 20, 2025
75a9912
Remove create_error_line
andrewbattat Nov 20, 2025
3ed5d31
Remove unnecessary label and description helpers
andrewbattat Nov 20, 2025
784a207
Refactor render_buttons_centered
andrewbattat Nov 20, 2025
ad39894
Remove unnecessary helper functions
andrewbattat Nov 20, 2025
833b2ab
Code organization
andrewbattat Nov 20, 2025
353d5a8
Remove validate_terminal_size and teardown_and_error
andrewbattat Nov 20, 2025
87729b4
Organize ui.rs
andrewbattat Nov 20, 2025
538cbd1
Improve naming
andrewbattat Nov 20, 2025
d069a04
Remove unnecessary publics
andrewbattat Nov 20, 2025
7269322
Move create_parameter_lines
andrewbattat Nov 20, 2025
8870d97
Remove atty crate
andrewbattat Nov 21, 2025
551e475
Rename GuestOSRecoveryApp
andrewbattat Nov 21, 2025
843e0d9
Simplify guestos_recovery_hash
andrewbattat Nov 21, 2025
18be8bd
Fix poorly named len variables
andrewbattat Nov 21, 2025
312930f
Refactor validate_hex_field
andrewbattat Nov 21, 2025
f2b62c9
Rename FailureState and add more documentation
andrewbattat Nov 21, 2025
f2d6ed9
Inline dependencies
andrewbattat Nov 21, 2025
38e1e95
Stop guestos service before restart
andrewbattat Nov 21, 2025
50b6e15
Fix guestos-recovery-upgrader.sh log
andrewbattat Nov 21, 2025
6b5abc1
Check GuestOS reboot in NNS recovery tests
andrewbattat Nov 21, 2025
4364ac9
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 21, 2025
28e0db6
Update lockfile
andrewbattat Nov 21, 2025
dede68d
is_lowercase_hex
andrewbattat Nov 21, 2025
be1fa5f
Fix dependencies, remove crossterm dependency
andrewbattat Nov 21, 2025
31cf7ef
Remove unused description field
andrewbattat Nov 21, 2025
8c1b8e8
Use tui_textarea
andrewbattat Nov 22, 2025
80eb6ed
Refactor is_lowercase_hex
andrewbattat Nov 22, 2025
3936408
Revert "Check GuestOS reboot in NNS recovery tests"
andrewbattat Nov 22, 2025
21d929d
Remove unnecessary sleep for guest us reboot
andrewbattat Nov 22, 2025
84c2b58
Create RecoveryTask
andrewbattat Nov 24, 2025
c3c7e0a
Fix HostOS console override
andrewbattat Nov 24, 2025
fdfaee1
Fix serial console size
andrewbattat Nov 24, 2025
fe07e5e
Fix ASCII_BORDER_SET used in serial console
andrewbattat Nov 24, 2025
cd96f4a
Fix success message
andrewbattat Nov 24, 2025
bff8104
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 24, 2025
775e758
Update lock files
andrewbattat Nov 24, 2025
c0d7b96
Input confirmation page
andrewbattat Nov 24, 2025
f6202b9
Minor updates
andrewbattat Nov 25, 2025
53fdedd
Use procfs crate in vsock
andrewbattat Nov 25, 2025
76b8aad
Merge branch 'master' into andrew/nns-recovery-ux-improvements
andrewbattat Nov 25, 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
859 changes: 818 additions & 41 deletions Cargo.Bazel.json.lock

Large diffs are not rendered by default.

149 changes: 137 additions & 12 deletions Cargo.Bazel.toml.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2094,12 +2094,27 @@ dependencies = [
"serde_json",
]

[[package]]
name = "cassowary"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"

[[package]]
name = "cast"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"

[[package]]
name = "castaway"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
dependencies = [
"rustversion",
]

[[package]]
name = "cc"
version = "1.2.22"
Expand All @@ -2125,7 +2140,7 @@ dependencies = [
"clap 3.2.25",
"codespan-reporting",
"console_error_panic_hook",
"crossterm",
"crossterm 0.27.0",
"data-encoding",
"displaydoc",
"hexf-parse",
Expand Down Expand Up @@ -2409,7 +2424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
dependencies = [
"termcolor",
"unicode-width 0.1.10",
"unicode-width 0.1.14",
]

[[package]]
Expand Down Expand Up @@ -2454,6 +2469,20 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335"

[[package]]
name = "compact_str"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32"
dependencies = [
"castaway",
"cfg-if 1.0.0",
"itoa",
"rustversion",
"ryu",
"static_assertions",
]

[[package]]
name = "comparable"
version = "0.5.4"
Expand Down Expand Up @@ -2511,7 +2540,7 @@ dependencies = [
"regex",
"terminal_size",
"termios",
"unicode-width 0.1.10",
"unicode-width 0.1.14",
"winapi 0.3.9",
"winapi-util",
]
Expand All @@ -2525,7 +2554,7 @@ dependencies = [
"encode_unicode",
"lazy_static",
"libc",
"unicode-width 0.1.10",
"unicode-width 0.1.14",
"windows-sys 0.45.0",
]

Expand Down Expand Up @@ -2919,6 +2948,22 @@ dependencies = [
"winapi 0.3.9",
]

[[package]]
name = "crossterm"
version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
dependencies = [
"bitflags 2.9.0",
"crossterm_winapi",
"mio 1.0.2",
"parking_lot 0.12.1",
"rustix 0.38.44",
"signal-hook",
"signal-hook-mio",
"winapi 0.3.9",
]

[[package]]
name = "crossterm_winapi"
version = "0.9.1"
Expand Down Expand Up @@ -3648,7 +3693,7 @@ dependencies = [
"idna 1.0.3",
"indexmap 2.7.1",
"indicatif",
"indoc",
"indoc 1.0.9",
"inferno 0.12.0",
"insta",
"instant-acme",
Expand All @@ -3672,7 +3717,7 @@ dependencies = [
"lmdb-rkv-sys",
"local-ip-address",
"loopdev-3",
"lru",
"lru 0.7.8",
"macaddr",
"maplit",
"maxminddb 0.24.0",
Expand Down Expand Up @@ -3734,6 +3779,7 @@ dependencies = [
"rand_chacha 0.3.1",
"rand_distr",
"rand_pcg 0.3.1",
"ratatui",
"ratelimit",
"rayon",
"rcgen",
Expand Down Expand Up @@ -3840,6 +3886,7 @@ dependencies = [
"tracing-slog",
"tracing-subscriber",
"trust-dns-resolver",
"tui-textarea",
"turmoil",
"url",
"uuid",
Expand Down Expand Up @@ -4975,7 +5022,7 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
dependencies = [
"unicode-width 0.1.10",
"unicode-width 0.1.14",
]

[[package]]
Expand Down Expand Up @@ -5200,6 +5247,8 @@ version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
dependencies = [
"allocator-api2",
"equivalent",
"foldhash",
"serde",
]
Expand Down Expand Up @@ -6687,7 +6736,7 @@ dependencies = [
"instant",
"number_prefix",
"portable-atomic",
"unicode-width 0.1.10",
"unicode-width 0.1.14",
]

[[package]]
Expand All @@ -6696,6 +6745,15 @@ version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"

[[package]]
name = "indoc"
version = "2.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
dependencies = [
"rustversion",
]

[[package]]
name = "inferno"
version = "0.11.19"
Expand Down Expand Up @@ -6761,6 +6819,19 @@ dependencies = [
"yaml-rust",
]

[[package]]
name = "instability"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a"
dependencies = [
"darling 0.20.11",
"indoc 2.0.7",
"proc-macro2",
"quote",
"syn 2.0.110",
]

[[package]]
name = "instant"
version = "0.1.12"
Expand Down Expand Up @@ -7657,6 +7728,15 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a"

[[package]]
name = "lru"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
dependencies = [
"hashbrown 0.15.2",
]

[[package]]
name = "lru-cache"
version = "0.1.2"
Expand Down Expand Up @@ -7985,6 +8065,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
"hermit-abi 0.3.9",
"libc",
"log",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.52.0",
]
Expand Down Expand Up @@ -10417,6 +10498,27 @@ dependencies = [
"rasn",
]

[[package]]
name = "ratatui"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b"
dependencies = [
"bitflags 2.9.0",
"cassowary",
"compact_str",
"crossterm 0.28.1",
"indoc 2.0.7",
"instability",
"itertools 0.13.0",
"lru 0.12.5",
"paste",
"strum 0.26.3",
"unicode-segmentation",
"unicode-truncate",
"unicode-width 0.2.0",
]

[[package]]
name = "ratelimit"
version = "0.9.1"
Expand Down Expand Up @@ -11892,12 +11994,13 @@ dependencies = [

[[package]]
name = "signal-hook-mio"
version = "0.2.3"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
dependencies = [
"libc",
"mio 0.8.10",
"mio 1.0.2",
"signal-hook",
]

Expand Down Expand Up @@ -13686,6 +13789,17 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"

[[package]]
name = "tui-textarea"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a5318dd619ed73c52a9417ad19046724effc1287fb75cdcc4eca1d6ac1acbae"
dependencies = [
"crossterm 0.28.1",
"ratatui",
"unicode-width 0.2.0",
]

[[package]]
name = "tungstenite"
version = "0.21.0"
Expand Down Expand Up @@ -13865,11 +13979,22 @@ version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"

[[package]]
name = "unicode-truncate"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
dependencies = [
"itertools 0.13.0",
"unicode-segmentation",
"unicode-width 0.1.14",
]

[[package]]
name = "unicode-width"
version = "0.1.10"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"

[[package]]
name = "unicode-width"
Expand Down
Loading
Loading