[INFO] cloning repository https://github.com/sunplix/terminal-blog
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sunplix/terminal-blog" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsunplix%2Fterminal-blog", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsunplix%2Fterminal-blog'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 041c9d8970f7f56fb1ca7a38d86348887f2b2eea
[INFO] checking sunplix/terminal-blog against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsunplix%2Fterminal-blog" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] finished tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] tweaked toml for git repo https://github.com/sunplix/terminal-blog written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sunplix/terminal-blog on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sunplix/terminal-blog already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking sunplix/terminal-blog against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsunplix%2Fterminal-blog" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] finished tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] tweaked toml for git repo https://github.com/sunplix/terminal-blog written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sunplix/terminal-blog on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sunplix/terminal-blog already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking sunplix/terminal-blog against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsunplix%2Fterminal-blog" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] finished tweaking git repo https://github.com/sunplix/terminal-blog
[INFO] tweaked toml for git repo https://github.com/sunplix/terminal-blog written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sunplix/terminal-blog on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sunplix/terminal-blog already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sqlx-macros v0.6.3
[INFO] [stderr]   Downloaded sqlx v0.6.3
[INFO] [stderr]   Downloaded actix-files v0.6.6
[INFO] [stderr]   Downloaded validator_derive v0.20.0
[INFO] [stderr]   Downloaded bcrypt v0.10.1
[INFO] [stderr]   Downloaded validator v0.20.0
[INFO] [stderr]   Downloaded whoami v1.6.0
[INFO] [stderr]   Downloaded blowfish v0.8.0
[INFO] [stderr]   Downloaded sqlx-rt v0.6.3
[INFO] [stderr]   Downloaded sqlx-core v0.6.3
[INFO] [stderr]   Downloaded actix-cors v0.6.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 78a93a10e8b89dc6e8f2fddeabc3cc628ead66c86ebccb4487842c7a4bedaf31
[INFO] running `Command { std: "docker" "start" "-a" "78a93a10e8b89dc6e8f2fddeabc3cc628ead66c86ebccb4487842c7a4bedaf31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "78a93a10e8b89dc6e8f2fddeabc3cc628ead66c86ebccb4487842c7a4bedaf31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78a93a10e8b89dc6e8f2fddeabc3cc628ead66c86ebccb4487842c7a4bedaf31", kill_on_drop: false }`
[INFO] [stdout] 78a93a10e8b89dc6e8f2fddeabc3cc628ead66c86ebccb4487842c7a4bedaf31
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6348ef0ffb34106199cb3eb398bd4bcb1aa48d91743bdb0aec3d37394cb6491d
[INFO] running `Command { std: "docker" "start" "-a" "6348ef0ffb34106199cb3eb398bd4bcb1aa48d91743bdb0aec3d37394cb6491d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling icu_properties_data v2.0.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]     Checking brotli-decompressor v4.0.3
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling cc v1.2.22
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking brotli v7.0.0
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling tokio v1.45.0
[INFO] [stderr]    Compiling unicode-properties v0.1.3
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling futures-intrusive v0.4.2
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling dirs v4.0.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling atoi v1.0.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling whoami v1.6.0
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling v_htmlescape v0.15.8
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling uuid v1.16.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking blowfish v0.8.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking pem v1.1.1
[INFO] [stderr]     Checking http-range v0.1.5
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking bcrypt v0.10.1
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls v0.20.9
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling webpki v0.22.4
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling webpki-roots v0.22.6
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling validator_derive v0.20.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling tokio-rustls v0.23.4
[INFO] [stderr]    Compiling sqlx-rt v0.6.3
[INFO] [stderr]     Checking mockall v0.12.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking actix-rt v2.10.0
[INFO] [stderr]     Checking actix-server v2.5.1
[INFO] [stderr]     Checking tokio-test v0.4.4
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking actix-router v0.5.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking jsonwebtoken v8.3.0
[INFO] [stderr]     Checking validator v0.20.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling sqlx-core v0.6.3
[INFO] [stderr]     Checking actix-http v3.10.0
[INFO] [stderr]     Checking actix-web v4.10.2
[INFO] [stderr]     Checking actix-cors v0.6.5
[INFO] [stderr]     Checking actix-files v0.6.6
[INFO] [stderr]    Compiling sqlx-macros v0.6.3
[INFO] [stderr]     Checking sqlx v0.6.3
[INFO] [stderr]     Checking blog v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_cd.rs:103:26
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_id.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 |               match sqlx::query!(
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 49 | |                 "SELECT id, username, role FROM users WHERE id = $1",
[INFO] [stdout] 50 | |                 claims.sub
[INFO] [stdout] 51 | |             )
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_login.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |           match sqlx::query!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 104 | |             "SELECT id, username, password_hash, role FROM users WHERE username = $1",
[INFO] [stdout] 105 | |             username
[INFO] [stdout] 106 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_ls.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_mkdir.rs:86:26
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_cd.rs:103:26
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_profile.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |               match sqlx::query!(
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 64 | |                 r#"
[INFO] [stdout] 65 | |                 SELECT id, username, email, gender, birthday, role, created_at
[INFO] [stdout] 66 | |                 FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |                 claims.sub
[INFO] [stdout] 70 | |             )
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_id.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 |               match sqlx::query!(
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 49 | |                 "SELECT id, username, role FROM users WHERE id = $1",
[INFO] [stdout] 50 | |                 claims.sub
[INFO] [stdout] 51 | |             )
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_profile.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |               match sqlx::query!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 213 | |                 r#"
[INFO] [stdout] 214 | |                 UPDATE users 
[INFO] [stdout] 215 | |                 SET email = COALESCE($1, email),
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |                 claims.sub
[INFO] [stdout] 224 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_pwd.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 match sqlx::query!("SELECT username FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_login.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |           match sqlx::query!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 104 | |             "SELECT id, username, password_hash, role FROM users WHERE username = $1",
[INFO] [stdout] 105 | |             username
[INFO] [stdout] 106 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_register.rs:165:15
[INFO] [stdout]     |
[INFO] [stdout] 165 |         match sqlx::query!("SELECT id FROM users WHERE username = $1", username)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_ls.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_register.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 |           match sqlx::query!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 206 | |             "INSERT INTO users (id, username, password_hash, role, created_at) VALUES ($1, $2, $3, $4, $5)",
[INFO] [stdout] 207 | |             user_id,
[INFO] [stdout] 208 | |             username,
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |             Utc::now()
[INFO] [stdout] 212 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/db/mod.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |           let check_columns = sqlx::query!(
[INFO] [stdout]    |  _____________________________^
[INFO] [stdout] 37 | |             r#"
[INFO] [stdout] 38 | |             SELECT column_name 
[INFO] [stdout] 39 | |             FROM information_schema.columns 
[INFO] [stdout] 40 | |             WHERE table_name = 'users'
[INFO] [stdout] 41 | |             "#
[INFO] [stdout] 42 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_mkdir.rs:86:26
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let user = match sqlx::query!("SELECT username, role FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_profile.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |               match sqlx::query!(
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 64 | |                 r#"
[INFO] [stdout] 65 | |                 SELECT id, username, email, gender, birthday, role, created_at
[INFO] [stdout] 66 | |                 FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |                 claims.sub
[INFO] [stdout] 70 | |             )
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_profile.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |               match sqlx::query!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 213 | |                 r#"
[INFO] [stdout] 214 | |                 UPDATE users 
[INFO] [stdout] 215 | |                 SET email = COALESCE($1, email),
[INFO] [stdout] ...   |
[INFO] [stdout] 223 | |                 claims.sub
[INFO] [stdout] 224 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/command/cmd_pwd.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 match sqlx::query!("SELECT username FROM users WHERE id = $1", claims.sub)
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_register.rs:165:15
[INFO] [stdout]     |
[INFO] [stdout] 165 |         match sqlx::query!("SELECT id FROM users WHERE username = $1", username)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/command/cmd_register.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 |           match sqlx::query!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 206 | |             "INSERT INTO users (id, username, password_hash, role, created_at) VALUES ($1, $2, $3, $4, $5)",
[INFO] [stdout] 207 | |             user_id,
[INFO] [stdout] 208 | |             username,
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |             Utc::now()
[INFO] [stdout] 212 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/db/mod.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |           let check_columns = sqlx::query!(
[INFO] [stdout]    |  _____________________________^
[INFO] [stdout] 37 | |             r#"
[INFO] [stdout] 38 | |             SELECT column_name 
[INFO] [stdout] 39 | |             FROM information_schema.columns 
[INFO] [stdout] 40 | |             WHERE table_name = 'users'
[INFO] [stdout] 41 | |             "#
[INFO] [stdout] 42 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 24 | |             r#"
[INFO] [stdout] 25 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 26 | |             "#,
[INFO] [stdout] 27 | |             path
[INFO] [stdout] 28 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |           let nodes = sqlx::query!(
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 40 | |             r#"
[INFO] [stdout] 41 | |             SELECT * FROM vfs_nodes WHERE parent_id = $1
[INFO] [stdout] 42 | |             "#,
[INFO] [stdout] 43 | |             parent_id
[INFO] [stdout] 44 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 84 | |             r#"
[INFO] [stdout] 85 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 86 | |             "#,
[INFO] [stdout] 87 | |             parent_path
[INFO] [stdout] 88 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:104:22
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let exists = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 105 | |             r#"
[INFO] [stdout] 106 | |             SELECT EXISTS(SELECT 1 FROM vfs_nodes WHERE parent_id = $1 AND name = $2)
[INFO] [stdout] 107 | |             "#,
[INFO] [stdout] 108 | |             parent_id,
[INFO] [stdout] 109 | |             path
[INFO] [stdout] 110 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 124 | |             r#"
[INFO] [stdout] 125 | |             INSERT INTO vfs_nodes (parent_id, name, is_dir, owner_id, permissions)
[INFO] [stdout] 126 | |             VALUES ($1, $2, true, $3, $4)
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             DELETE FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 158 | |             "#,
[INFO] [stdout] 159 | |             path
[INFO] [stdout] 160 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:173:22
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 174 | |             r#"
[INFO] [stdout] 175 | |             UPDATE vfs_nodes SET name = $1 WHERE name = $2
[INFO] [stdout] 176 | |             "#,
[INFO] [stdout] 177 | |             new_path,
[INFO] [stdout] 178 | |             old_path
[INFO] [stdout] 179 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:192:20
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 193 | |             r#"
[INFO] [stdout] 194 | |             SELECT id, parent_id, name, is_dir, owner_id, permissions, created_at, updated_at
[INFO] [stdout] 195 | |             FROM vfs_nodes
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |             path
[INFO] [stdout] 199 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:220:22
[INFO] [stdout]     |
[INFO] [stdout] 220 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 221 | |             r#"
[INFO] [stdout] 222 | |             UPDATE vfs_nodes
[INFO] [stdout] 223 | |             SET permissions = $1, updated_at = NOW()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |             node.id
[INFO] [stdout] 228 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 24 | |             r#"
[INFO] [stdout] 25 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 26 | |             "#,
[INFO] [stdout] 27 | |             path
[INFO] [stdout] 28 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |           let nodes = sqlx::query!(
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 40 | |             r#"
[INFO] [stdout] 41 | |             SELECT * FROM vfs_nodes WHERE parent_id = $1
[INFO] [stdout] 42 | |             "#,
[INFO] [stdout] 43 | |             parent_id
[INFO] [stdout] 44 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]   --> src/vfs/storage/backend.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 84 | |             r#"
[INFO] [stdout] 85 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 86 | |             "#,
[INFO] [stdout] 87 | |             parent_path
[INFO] [stdout] 88 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:104:22
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let exists = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 105 | |             r#"
[INFO] [stdout] 106 | |             SELECT EXISTS(SELECT 1 FROM vfs_nodes WHERE parent_id = $1 AND name = $2)
[INFO] [stdout] 107 | |             "#,
[INFO] [stdout] 108 | |             parent_id,
[INFO] [stdout] 109 | |             path
[INFO] [stdout] 110 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 124 | |             r#"
[INFO] [stdout] 125 | |             INSERT INTO vfs_nodes (parent_id, name, is_dir, owner_id, permissions)
[INFO] [stdout] 126 | |             VALUES ($1, $2, true, $3, $4)
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             DELETE FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 158 | |             "#,
[INFO] [stdout] 159 | |             path
[INFO] [stdout] 160 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:173:22
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 174 | |             r#"
[INFO] [stdout] 175 | |             UPDATE vfs_nodes SET name = $1 WHERE name = $2
[INFO] [stdout] 176 | |             "#,
[INFO] [stdout] 177 | |             new_path,
[INFO] [stdout] 178 | |             old_path
[INFO] [stdout] 179 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:192:20
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 193 | |             r#"
[INFO] [stdout] 194 | |             SELECT id, parent_id, name, is_dir, owner_id, permissions, created_at, updated_at
[INFO] [stdout] 195 | |             FROM vfs_nodes
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |             path
[INFO] [stdout] 199 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `DATABASE_URL` must be set to use query macros
[INFO] [stdout]    --> src/vfs/storage/backend.rs:220:22
[INFO] [stdout]     |
[INFO] [stdout] 220 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 221 | |             r#"
[INFO] [stdout] 222 | |             UPDATE vfs_nodes
[INFO] [stdout] 223 | |             SET permissions = $1, updated_at = NOW()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |             node.id
[INFO] [stdout] 228 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/auth/middleware.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/auth/middleware.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Claims`
[INFO] [stdout]   --> src/auth/middleware.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::auth::{validate_token, AuthManager, Claims};
[INFO] [stdout]    |                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::AuthMiddleware`
[INFO] [stdout]  --> src/auth/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use middleware::AuthMiddleware;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LoginAttempt`
[INFO] [stdout]  --> src/auth/mod.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use types::{Claims, LoginAttempt};
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/captcha/manager.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/captcha/manager.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::Captcha`
[INFO] [stdout]  --> src/captcha/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use types::Captcha;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::web`
[INFO] [stdout]  --> src/captcha/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use actix_web::web;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VfsError` and `VfsOp`
[INFO] [stdout]  --> src/command/cmd_cd.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::vfs::model::{Role, User as VfsUser, VfsError, VfsOp};
[INFO] [stdout]   |                                                ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/command/cmd_cd.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/command/cmd_cd.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/command/cmd_cd.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/command/cmd_help.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AuthManager`
[INFO] [stdout]  --> src/command/cmd_id.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::auth::{validate_token, AuthManager};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::PgPool`
[INFO] [stdout]  --> src/command/cmd_login.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::PgPool;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::auth::AuthManager`
[INFO] [stdout]  --> src/command/cmd_logout.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::auth::AuthManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/command/cmd_logout.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/command/cmd_register.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::PgPool`
[INFO] [stdout]  --> src/command/cmd_register.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::PgPool;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/vfs/permission.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_DIR_PERM`, `Role`, and `User as VfsUser`
[INFO] [stdout]  --> src/vfs/storage/backend.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 |     model::{Role, User as VfsUser, VfsError, VfsNode, DEFAULT_DIR_PERM},
[INFO] [stdout]   |             ^^^^  ^^^^^^^^^^^^^^^                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/vfs/storage/backend.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log;
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Role`, `User`, `VfsError`, `VfsNode`, and `VfsOp`
[INFO] [stdout]  --> src/vfs/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use model::{Role, User, VfsError, VfsNode, VfsOp};
[INFO] [stdout]   |                 ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_normalizer::PathNormalizer`
[INFO] [stdout]  --> src/vfs/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use path_normalizer::PathNormalizer;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `permission::PermissionManager`
[INFO] [stdout]   --> src/vfs/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use permission::PermissionManager;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageBackend`
[INFO] [stdout]   --> src/vfs/mod.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use storage::{backend::PostgresBackend, StorageBackend};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/auth/middleware.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/auth/middleware.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Claims`
[INFO] [stdout]   --> src/auth/middleware.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::auth::{validate_token, AuthManager, Claims};
[INFO] [stdout]    |                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::AuthMiddleware`
[INFO] [stdout]  --> src/auth/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use middleware::AuthMiddleware;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LoginAttempt`
[INFO] [stdout]  --> src/auth/mod.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use types::{Claims, LoginAttempt};
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/captcha/manager.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/captcha/manager.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::Captcha`
[INFO] [stdout]  --> src/captcha/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use types::Captcha;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::web`
[INFO] [stdout]  --> src/captcha/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use actix_web::web;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VfsError` and `VfsOp`
[INFO] [stdout]  --> src/command/cmd_cd.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::vfs::model::{Role, User as VfsUser, VfsError, VfsOp};
[INFO] [stdout]   |                                                ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/command/cmd_cd.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/command/cmd_cd.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/command/cmd_cd.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/command/cmd_help.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AuthManager`
[INFO] [stdout]  --> src/command/cmd_id.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::auth::{validate_token, AuthManager};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::PgPool`
[INFO] [stdout]  --> src/command/cmd_login.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::PgPool;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::auth::AuthManager`
[INFO] [stdout]  --> src/command/cmd_logout.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::auth::AuthManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/command/cmd_logout.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/command/cmd_register.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::PgPool`
[INFO] [stdout]  --> src/command/cmd_register.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::PgPool;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/vfs/permission.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_DIR_PERM`, `Role`, and `User as VfsUser`
[INFO] [stdout]  --> src/vfs/storage/backend.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 |     model::{Role, User as VfsUser, VfsError, VfsNode, DEFAULT_DIR_PERM},
[INFO] [stdout]   |             ^^^^  ^^^^^^^^^^^^^^^                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/vfs/storage/backend.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log;
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Role`, `User`, `VfsError`, `VfsNode`, and `VfsOp`
[INFO] [stdout]  --> src/vfs/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use model::{Role, User, VfsError, VfsNode, VfsOp};
[INFO] [stdout]   |                 ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `path_normalizer::PathNormalizer`
[INFO] [stdout]  --> src/vfs/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use path_normalizer::PathNormalizer;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `permission::PermissionManager`
[INFO] [stdout]   --> src/vfs/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use permission::PermissionManager;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageBackend`
[INFO] [stdout]   --> src/vfs/mod.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use storage::{backend::PostgresBackend, StorageBackend};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/db/mod.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |           let check_columns = sqlx::query!(
[INFO] [stdout]    |  _____________________________^
[INFO] [stdout] 37 | |             r#"
[INFO] [stdout] 38 | |             SELECT column_name 
[INFO] [stdout] 39 | |             FROM information_schema.columns 
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         .fetch_all(&self.pool)
[INFO] [stdout] 44 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/db/mod.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |           let check_columns = sqlx::query!(
[INFO] [stdout]    |  _____________________________^
[INFO] [stdout] 37 | |             r#"
[INFO] [stdout] 38 | |             SELECT column_name 
[INFO] [stdout] 39 | |             FROM information_schema.columns 
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         .fetch_all(&self.pool)
[INFO] [stdout] 44 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/command/cmd_profile.rs:84:48
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   user.birthday.map(|d| d.format("%Y-%m-%d").to_string()).unwrap_or_else(|| "未设置".to_string()),
[INFO] [stdout]    |                                          ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 84 |                             user.birthday.map(|d: /* Type */| d.format("%Y-%m-%d").to_string()).unwrap_or_else(|| "未设置".to_string()),
[INFO] [stdout]    |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/command/cmd_profile.rs:93:60
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...                   "birthday": user.birthday.map(|d| d.format("%Y-%m-%d").to_string()),
[INFO] [stdout]    |                                                      ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 93 |                             "birthday": user.birthday.map(|d: /* Type */| d.format("%Y-%m-%d").to_string()),
[INFO] [stdout]    |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/command/cmd_profile.rs:84:48
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   user.birthday.map(|d| d.format("%Y-%m-%d").to_string()).unwrap_or_else(|| "未设置".to_string()),
[INFO] [stdout]    |                                          ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 84 |                             user.birthday.map(|d: /* Type */| d.format("%Y-%m-%d").to_string()).unwrap_or_else(|| "未设置".to_string()),
[INFO] [stdout]    |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/command/cmd_profile.rs:93:60
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...                   "birthday": user.birthday.map(|d| d.format("%Y-%m-%d").to_string()),
[INFO] [stdout]    |                                                      ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 93 |                             "birthday": user.birthday.map(|d: /* Type */| d.format("%Y-%m-%d").to_string()),
[INFO] [stdout]    |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 24 | |             r#"
[INFO] [stdout] 25 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 26 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 30 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |           let nodes = sqlx::query!(
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 40 | |             r#"
[INFO] [stdout] 41 | |             SELECT * FROM vfs_nodes WHERE parent_id = $1
[INFO] [stdout] 42 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |         .fetch_all(&self.pool)
[INFO] [stdout] 46 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 84 | |             r#"
[INFO] [stdout] 85 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 86 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 90 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:104:22
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let exists = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 105 | |             r#"
[INFO] [stdout] 106 | |             SELECT EXISTS(SELECT 1 FROM vfs_nodes WHERE parent_id = $1 AND name = $2)
[INFO] [stdout] 107 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         .fetch_one(&self.pool)
[INFO] [stdout] 112 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 124 | |             r#"
[INFO] [stdout] 125 | |             INSERT INTO vfs_nodes (parent_id, name, is_dir, owner_id, permissions)
[INFO] [stdout] 126 | |             VALUES ($1, $2, true, $3, $4)
[INFO] [stdout] ...   |
[INFO] [stdout] 138 | |         .fetch_one(&self.pool)
[INFO] [stdout] 139 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             DELETE FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 158 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 161 | |         .execute(&self.pool)
[INFO] [stdout] 162 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:173:22
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 174 | |             r#"
[INFO] [stdout] 175 | |             UPDATE vfs_nodes SET name = $1 WHERE name = $2
[INFO] [stdout] 176 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 180 | |         .execute(&self.pool)
[INFO] [stdout] 181 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:192:20
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 193 | |             r#"
[INFO] [stdout] 194 | |             SELECT id, parent_id, name, is_dir, owner_id, permissions, created_at, updated_at
[INFO] [stdout] 195 | |             FROM vfs_nodes
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 201 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:220:22
[INFO] [stdout]     |
[INFO] [stdout] 220 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 221 | |             r#"
[INFO] [stdout] 222 | |             UPDATE vfs_nodes
[INFO] [stdout] 223 | |             SET permissions = $1, updated_at = NOW()
[INFO] [stdout] ...   |
[INFO] [stdout] 229 | |         .execute(&self.pool)
[INFO] [stdout] 230 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 24 | |             r#"
[INFO] [stdout] 25 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 26 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 30 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |           let nodes = sqlx::query!(
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 40 | |             r#"
[INFO] [stdout] 41 | |             SELECT * FROM vfs_nodes WHERE parent_id = $1
[INFO] [stdout] 42 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |         .fetch_all(&self.pool)
[INFO] [stdout] 46 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/vfs/storage/backend.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |           let parent = sqlx::query!(
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 84 | |             r#"
[INFO] [stdout] 85 | |             SELECT * FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 86 | |             "#,
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 90 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:104:22
[INFO] [stdout]     |
[INFO] [stdout] 104 |           let exists = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 105 | |             r#"
[INFO] [stdout] 106 | |             SELECT EXISTS(SELECT 1 FROM vfs_nodes WHERE parent_id = $1 AND name = $2)
[INFO] [stdout] 107 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         .fetch_one(&self.pool)
[INFO] [stdout] 112 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 124 | |             r#"
[INFO] [stdout] 125 | |             INSERT INTO vfs_nodes (parent_id, name, is_dir, owner_id, permissions)
[INFO] [stdout] 126 | |             VALUES ($1, $2, true, $3, $4)
[INFO] [stdout] ...   |
[INFO] [stdout] 138 | |         .fetch_one(&self.pool)
[INFO] [stdout] 139 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/auth/middleware.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     let mut req = req;
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             DELETE FROM vfs_nodes WHERE name = $1
[INFO] [stdout] 158 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 161 | |         .execute(&self.pool)
[INFO] [stdout] 162 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:173:22
[INFO] [stdout]     |
[INFO] [stdout] 173 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 174 | |             r#"
[INFO] [stdout] 175 | |             UPDATE vfs_nodes SET name = $1 WHERE name = $2
[INFO] [stdout] 176 | |             "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 180 | |         .execute(&self.pool)
[INFO] [stdout] 181 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:192:20
[INFO] [stdout]     |
[INFO] [stdout] 192 |           let node = sqlx::query!(
[INFO] [stdout]     |  ____________________^
[INFO] [stdout] 193 | |             r#"
[INFO] [stdout] 194 | |             SELECT id, parent_id, name, is_dir, owner_id, permissions, created_at, updated_at
[INFO] [stdout] 195 | |             FROM vfs_nodes
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |         .fetch_optional(&self.pool)
[INFO] [stdout] 201 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/vfs/storage/backend.rs:220:22
[INFO] [stdout]     |
[INFO] [stdout] 220 |           let result = sqlx::query!(
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 221 | |             r#"
[INFO] [stdout] 222 | |             UPDATE vfs_nodes
[INFO] [stdout] 223 | |             SET permissions = $1, updated_at = NOW()
[INFO] [stdout] ...   |
[INFO] [stdout] 229 | |         .execute(&self.pool)
[INFO] [stdout] 230 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/command/cmd_cd.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut components = result.components().collect::<Vec<_>>();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command/cmd_clear.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         args: &[&str],
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/command/cmd_clear.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         data: &web::Data<crate::AppState>,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> src/command/cmd_clear.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         session_id: &str,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_clear.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/auth/middleware.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     let mut req = req;
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command/cmd_help.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         args: &[&str],
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> src/command/cmd_help.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         session_id: &str,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_help.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/command/cmd_cd.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut components = result.components().collect::<Vec<_>>();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command/cmd_clear.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         args: &[&str],
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/command/cmd_clear.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         data: &web::Data<crate::AppState>,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> src/command/cmd_clear.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         session_id: &str,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_clear.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_logout.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command/cmd_help.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         args: &[&str],
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session_id`
[INFO] [stdout]   --> src/command/cmd_help.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         session_id: &str,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_help.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/vfs/manager.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let parent = self.backend.get_node(&parent_path).await?;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cwd`
[INFO] [stdout]   --> src/command/cmd_logout.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         cwd: &str,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_cwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/vfs/manager.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let parent = self.backend.get_node(&parent_path).await?;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_perm`
[INFO] [stdout]   --> src/vfs/permission.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let group_perm = (perms >> 3) & 0o7;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_perm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_perm`
[INFO] [stdout]   --> src/vfs/permission.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let group_perm = (perms >> 3) & 0o7;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_perm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `blog` (bin "blog" test) due to 32 previous errors; 39 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `blog` (bin "blog") due to 32 previous errors; 39 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6348ef0ffb34106199cb3eb398bd4bcb1aa48d91743bdb0aec3d37394cb6491d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6348ef0ffb34106199cb3eb398bd4bcb1aa48d91743bdb0aec3d37394cb6491d", kill_on_drop: false }`
[INFO] [stdout] 6348ef0ffb34106199cb3eb398bd4bcb1aa48d91743bdb0aec3d37394cb6491d
