diff --git a/.forgejo/workflows/email.yml b/.forgejo/workflows/email.yml deleted file mode 100644 index 08f43d2..0000000 --- a/.forgejo/workflows/email.yml +++ /dev/null @@ -1,361 +0,0 @@ -name: email - -# Phase 0.3 of the nigig-email remediation plan. -# -# Before this file existed, nigig-email had NO CI of any kind. That is -# how a binary with unbalanced braces reached main and stayed there: -# `cargo check -p nigig-email` failed on main while `--lib` passed, so -# the library was fine and the BINARY had never compiled once. Nobody -# had ever run the crate standalone. -# -# It is also how four unused dependencies survived, one of them -# robius-location -- the exact dependency SMS Phase B removed from three -# other crates because it pulls polkit/gio/glib and two RUSTSEC -# advisories in for code that is never called. -# -# Scope note: this crate is a UI shell over nigig-core::email_account, -# email_store and email_worker. The domain logic lives in nigig-core and -# is host-testable; the SMTP transport is not testable here at all -# (no live server in CI), so the tests that matter are the pure ones and -# this workflow gates those plus compilation of both targets. - -on: - push: - paths: - - 'crates/apps/nigig-email/**' - - 'crates/nigig-core/src/email_account.rs' - - 'crates/nigig-core/src/email_store.rs' - - 'crates/nigig-core/src/email_worker.rs' - - 'Cargo.lock' - - 'Cargo.toml' - - 'rust-toolchain.toml' - - '.forgejo/workflows/email.yml' - pull_request: - paths: - - 'crates/apps/nigig-email/**' - - 'crates/nigig-core/src/email_account.rs' - - 'crates/nigig-core/src/email_store.rs' - - 'crates/nigig-core/src/email_worker.rs' - - 'Cargo.lock' - - 'Cargo.toml' - - 'rust-toolchain.toml' - - '.forgejo/workflows/email.yml' - -jobs: - # --------------------------------------------------------------------- - # Source-scanning gates. No toolchain needed, so they run first and - # fail fast. - # --------------------------------------------------------------------- - gates: - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@v4 - - # S2 of the assessment. SmtpConfig carries a plaintext password and - # derives Serialize, so anything that reuses it for storage leaks - # the credential. EmailAccount is the persistable half and must - # never grow a password field. - # - # There is a unit test asserting the serialised account contains - # neither the secret nor a field named "password"; this is the - # cheaper structural check that catches the field being added even - # if someone deletes the test. - - name: The persistable account type must not carry a password - run: | - set -euo pipefail - # Look only at the EmailAccount struct body. - body=$(sed -n '/^pub struct EmailAccount {/,/^}/p' \ - crates/nigig-core/src/email_account.rs) - if echo "$body" | grep -nE '^[[:space:]]*pub[[:space:]]+password'; then - echo - echo "ERROR: EmailAccount declares a password field." - echo "That type is written to disk. The secret is returned" - echo "separately by AccountDraft::validate and held in memory" - echo "for the session only. Persisting it needs the platform" - echo "keystore first (plan item A1 / C1f)." - exit 1 - fi - echo "OK" - - # B3. `port.parse().unwrap_or(587)` silently rewrote a typo'd port, - # and because the port selects the transport (465 implicit TLS vs - # 587 STARTTLS) that silently changed the security posture too. - # AccountDraft::validate now rejects a malformed port instead. - - name: A malformed port must not silently become a default - run: | - set -euo pipefail - # Exclude comment lines: email_account.rs documents the old - # behaviour by quoting it, and a gate that trips on its own - # rationale is a gate nobody keeps. - if grep -rnE 'parse\(\)[[:space:]]*\.unwrap_or\(587\)' \ - crates/apps/nigig-email/src \ - crates/nigig-core/src/email_account.rs \ - crates/nigig-core/src/email_store.rs \ - | grep -vE '^[^:]*:[0-9]*:[[:space:]]*(//|/\*|\*|///)'; then - echo - echo "ERROR: a port is being parsed with unwrap_or(587)." - echo "That turns '465x' into 587 and switches the transport" - echo "from implicit TLS to STARTTLS without telling the user." - echo "Return AccountError::PortInvalid instead." - exit 1 - fi - echo "OK" - - # A3, the byte-offset slicing class of bug. `&s[..n]` panics when n - # is not a UTF-8 boundary; one inbound message containing emoji or - # non-Latin text took down the whole SMS conversation list on every - # frame until it was deleted. Email bodies are equally untrusted -- - # more so, they arrive with arbitrary MIME -- and email_store's - # preview_line runs per visible row inside draw_walk. - # - # The SMS crates carry the same gate. This one is a hard zero - # because the email code has never had such a slice. - - name: No byte-offset string slicing in the email text helpers - run: | - set -euo pipefail - PATTERN='[A-Za-z_][A-Za-z0-9_]*\[(\.\.=?[A-Za-z0-9_]+|[A-Za-z0-9_]+\.\.)[A-Za-z0-9_]*\]' - # flat[..idx] in preview_line is proven safe -- idx comes from - # char_indices() -- and carries a comment saying so. Exclude it - # by line content rather than by muting the whole file. - hits=$(grep -rnE --include='*.rs' "$PATTERN" \ - crates/apps/nigig-email/src \ - crates/nigig-core/src/email_store.rs \ - crates/nigig-core/src/email_account.rs \ - | grep -vE '^[^:]*:[0-9]*:[[:space:]]*(//|/\*|\*)' \ - | grep -v 'flat\[\.\.idx\]' || true) - if [ -n "$hits" ]; then - echo "$hits" - echo - echo "ERROR: byte-offset slice(s) above. These panic when the" - echo "offset is not a char boundary, which any email body" - echo "containing emoji or non-Latin text will produce. Use" - echo "char_indices() to find a real boundary first." - exit 1 - fi - echo "OK" - - # The inbox list is populated from email_store::sample_thread() - # because no receive path exists yet (finding A1, plan C1). That is - # acceptable as scaffolding and unacceptable as a shipped state, so - # keep it visible: the name must stay `sample_`-prefixed and must - # not spread beyond the one call site. - - name: Development sample data must stay obvious and contained - run: | - set -euo pipefail - # Count CALL sites, not the import line. - count=$(grep -rn 'sample_thread()' --include='*.rs' \ - crates/apps/nigig-email/src | wc -l) - if [ "$count" -gt 1 ]; then - grep -rn 'sample_thread' --include='*.rs' crates/apps/nigig-email/src - echo - echo "ERROR: sample_thread() is referenced $count times in the" - echo "UI. It is placeholder data for one call site until a real" - echo "fetch lands (plan C1/C4b). Spreading it makes the" - echo "placeholder load-bearing." - exit 1 - fi - echo "OK" - - # --------------------------------------------------------------------- - # The email domain logic. Pure, host-testable, no display and no - # network -- this is the job that can actually prove something. - # --------------------------------------------------------------------- - email-domain: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - # nigig-core pulls sqlite and the matrix client. - - name: Install native dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -y -qq \ - pkg-config libssl-dev libsqlite3-dev - - # NOT actions/setup-rust@v1 -- that action does not exist on this - # instance's registry and fails the job in "Set up job" before any - # step runs. See .forgejo/RUNNER.md. - - name: Install the declared toolchain - run: | - set -e - version="$(sed -n 's/^[[:space:]]*channel[[:space:]]*=[[:space:]]*"\([^"]*\)".*/\1/p' \ - rust-toolchain.toml | head -n 1)" - curl --fail --location --proto '=https' --tlsv1.2 https://sh.rustup.rs -o /tmp/rustup-init - chmod 700 /tmp/rustup-init - /tmp/rustup-init -y --profile minimal --default-toolchain "$version" \ - --component rustfmt --component clippy --no-modify-path - echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - - name: Email domain tests - run: cargo test --locked -p nigig-core --lib email_ - - # A floor, not a ratchet: these tests are cheap, pure, and the - # number should only go up. 38 today. - - name: The email domain test suite must not shrink - run: | - set -euo pipefail - FLOOR=38 - out="$(cargo test --locked -p nigig-core --lib email_ 2>&1)" - echo "$out" | grep -E '^test result:' || true - n=$(echo "$out" | grep -E '^test result:' \ - | sed -n 's/.* \([0-9]\+\) passed.*/\1/p' \ - | awk '{s+=$1} END {print s+0}') - echo "email domain tests: $n (floor $FLOOR)" - if [ "$n" -lt "$FLOOR" ]; then - echo "ERROR: $n < $FLOOR. Tests were deleted or stopped running." - exit 1 - fi - echo "OK" - - # --------------------------------------------------------------------- - # The UI crate. Pulls the whole Makepad stack, so it is the slow job - # and needs the GUI system libraries. - # --------------------------------------------------------------------- - nigig-email: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - - name: Install native dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -y -qq \ - pkg-config libwayland-dev libxcursor-dev libxrandr-dev \ - libxi-dev libx11-dev libgl1-mesa-dev libasound2-dev \ - libglib2.0-dev libssl-dev libsqlite3-dev libudev-dev \ - libpulse-dev libxkbcommon-dev - - - name: Install the declared toolchain - run: | - set -e - version="$(sed -n 's/^[[:space:]]*channel[[:space:]]*=[[:space:]]*"\([^"]*\)".*/\1/p' \ - rust-toolchain.toml | head -n 1)" - curl --fail --location --proto '=https' --tlsv1.2 https://sh.rustup.rs -o /tmp/rustup-init - chmod 700 /tmp/rustup-init - /tmp/rustup-init -y --profile minimal --default-toolchain "$version" \ - --component rustfmt --component clippy --no-modify-path - echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - # --all-targets on purpose. `--lib` alone passed for the entire - # time main.rs was syntactically invalid, which is precisely the - # failure this job exists to prevent. - - name: Check (lib AND bin) - run: cargo check --locked -p nigig-email --all-targets - - - name: Test - run: cargo test --locked -p nigig-email - - # Phase 0.6. A hard gate, not report-only: this crate is 1,100 - # lines and already formats clean, so there is no pre-existing - # drift to grandfather in. Contrast sms.yml and nigig-map.yml, - # which are report-only because they inherited hundreds of diffs. - - name: Formatting - run: | - cargo fmt -p nigig-email -- --check \ - || { echo "run: cargo fmt -p nigig-email"; exit 1; } - - # Ratchet at the measured baseline, which is ZERO. - # - # I first set this to 2, having seen two `unexpected_cfgs` warnings - # for `native_activity` emitted by the app_main! macro. Measuring - # properly with the same dedupe this script uses gives 0 -- those - # two are attributed to the bin target and filtered out by the - # package_id check. A baseline above the real count is not a - # harmless margin: this script fails when n < BASELINE precisely so - # that slack cannot hide a regression. - - name: Clippy ratchet (nigig-email-owned diagnostics only) - run: | - set -euo pipefail - BASELINE=0 - cargo clippy --locked -p nigig-email --all-targets \ - --message-format=json > /tmp/clippy-email.json 2>/tmp/clippy-email.err || true - cat /tmp/clippy-email.err || true - BASELINE="$BASELINE" python3 - <<'PY' - import json, os, sys - baseline = int(os.environ['BASELINE']) - owned, seen = [], set() - with open('/tmp/clippy-email.json') as fh: - for line in fh: - try: - m = json.loads(line) - except ValueError: - continue - if m.get('reason') != 'compiler-message': - continue - if 'nigig-email' not in m.get('package_id', ''): - continue - msg = m['message'] - if msg.get('level') not in ('warning', 'error'): - continue - # --all-targets compiles lib and lib-test, duplicating - # every diagnostic; dedupe on rendered text. - key = msg.get('rendered', '') - if key in seen: - continue - seen.add(key) - owned.append(msg) - n = len(owned) - print("found %d nigig-email diagnostics, baseline %d" % (n, baseline)) - if n > baseline: - for msg in owned: - sys.stdout.write(msg.get('rendered', '')) - print() - print("ERROR: %d diagnostics, up from %d." % (n, baseline)) - sys.exit(1) - if n < baseline: - print() - print("Good: down to %d. Lower BASELINE in this file to %d " - "so the progress cannot be undone." % (n, n)) - sys.exit(1) - print("OK") - PY - - # --------------------------------------------------------------------- - # Supply chain. - # --------------------------------------------------------------------- - supply-chain: - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@v4 - - # Phase 0.5. Four dependencies were declared and never referenced, - # one of them robius-location, which drags polkit/gio/glib and two - # RUSTSEC advisories in for code that is never called. - - name: nigig-email must not declare dependencies it never uses - run: | - set -euo pipefail - bad=0 - # chrono is used by inbox.rs::format_thread_time. Everything - # else in the manifest must appear in src/ under its - # underscored crate name. - for dep in serde serde_json robius-location robius-sms lettre; do - declared=$(grep -cE "^[[:space:]]*${dep}[[:space:]]*=" \ - crates/apps/nigig-email/Cargo.toml || true) - [ "$declared" -eq 0 ] && continue - underscored="${dep//-/_}" - used=$(grep -rl "$underscored" crates/apps/nigig-email/src 2>/dev/null | wc -l) - if [ "$used" -eq 0 ]; then - echo "ERROR: nigig-email declares $dep but never uses it." - bad=1 - fi - done - if [ "$bad" -ne 0 ]; then - echo - echo "Unused dependencies enlarge the attack surface and the" - echo "licence obligations for no benefit. Remove them." - exit 1 - fi - echo "OK" - - - name: Lockfile must be committed and current - run: | - set -euo pipefail - test -f Cargo.lock || { echo "ERROR: Cargo.lock is not committed."; exit 1; } - git diff --exit-code -- Cargo.lock - - - name: Reject whitespace errors - run: git diff --check "$(git rev-list --max-parents=0 HEAD | tail -1)"..HEAD || git diff --check diff --git a/.forgejo/workflows/nigig-build.yml b/.forgejo/workflows/nigig-build.yml index 118daa8..048ded5 100644 --- a/.forgejo/workflows/nigig-build.yml +++ b/.forgejo/workflows/nigig-build.yml @@ -101,7 +101,6 @@ jobs: bad=0 for manifest in \ crates/apps/nigig-build/Cargo.toml \ - crates/apps/nigig-email/Cargo.toml \ crates/nigig-core/Cargo.toml \ crates/nigig-uikit/Cargo.toml; do crate_dir="$(dirname "$manifest")" diff --git a/Cargo.lock b/Cargo.lock index da8b2de..1d8b583 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,7 +5,7 @@ version = 4 [[package]] name = "ab_glyph_rasterizer" version = "0.1.8" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "adler" @@ -144,14 +144,14 @@ dependencies = [ [[package]] name = "arrayvec" version = "0.7.6" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "ash" version = "0.38.0+1.3.281" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "libloading 0.8.9 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "libloading 0.8.9 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "bit-set" version = "0.8.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "bit-vec 0.8.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "bit-vec 0.8.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -224,12 +224,12 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bit-vec" version = "0.8.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "bitflags" version = "2.10.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "bitflags" @@ -305,7 +305,7 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" version = "1.25.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "bytemuck" @@ -336,7 +336,7 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "byteorder" version = "1.5.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "byteorder-lite" @@ -384,12 +384,12 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg-if" version = "1.0.4" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "cfg_aliases" version = "0.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "cfg_aliases" @@ -573,7 +573,7 @@ checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crunchy" version = "0.2.4" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "crypto-common" @@ -689,7 +689,7 @@ dependencies = [ [[package]] name = "downcast-rs" version = "1.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "either" @@ -743,7 +743,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "equivalent" version = "1.0.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "errno" @@ -834,7 +834,7 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "foldhash" version = "0.2.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "form_urlencoded" @@ -923,9 +923,9 @@ dependencies = [ [[package]] name = "fxhash" version = "0.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "byteorder 1.5.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "byteorder 1.5.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1022,9 +1022,9 @@ dependencies = [ [[package]] name = "hashbrown" version = "0.16.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "foldhash 0.2.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "foldhash 0.2.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1059,7 +1059,7 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hexf-parse" version = "0.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "hilog-sys" @@ -1203,7 +1203,7 @@ dependencies = [ [[package]] name = "i_float" version = "3.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "i_key_sort" @@ -1214,7 +1214,7 @@ checksum = "7c6c58d0c60705e66264ce0f788a69a2f21472aeb8188559e7c8c619dbdc10fa" [[package]] name = "i_key_sort" version = "0.11.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "i_overlay" @@ -1231,12 +1231,12 @@ dependencies = [ [[package]] name = "i_overlay" version = "7.0.3" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "i_float 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "i_key_sort 0.11.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "i_shape 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "i_tree 0.19.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "i_float 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "i_key_sort 0.11.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "i_shape 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "i_tree 0.19.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1260,9 +1260,9 @@ dependencies = [ [[package]] name = "i_shape" version = "3.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "i_float 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "i_float 3.0.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1274,7 +1274,7 @@ checksum = "1e9d4a992a9fe83130f41ceacceac3bb116a4355dfc9c8d6ecea4f1e4b4c6caf" [[package]] name = "i_tree" version = "0.19.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "iana-time-zone" @@ -1426,10 +1426,10 @@ checksum = "c8b35f3ad95576ac81603375dfe47a0450b70a368aa34d2b6e5bb0a0d7f02428" [[package]] name = "indexmap" version = "2.13.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "equivalent 1.0.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "hashbrown 0.16.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "equivalent 1.0.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "hashbrown 0.16.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1562,10 +1562,10 @@ dependencies = [ [[package]] name = "libloading" version = "0.8.9" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -1624,7 +1624,7 @@ dependencies = [ [[package]] name = "log" version = "0.4.29" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "log" @@ -1658,7 +1658,7 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "makepad-ai" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-live-id", "makepad-micro-serde", @@ -1677,7 +1677,7 @@ dependencies = [ [[package]] name = "makepad-apple-sys" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-objc-sys", ] @@ -1685,22 +1685,22 @@ dependencies = [ [[package]] name = "makepad-base64" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-box3d" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-byteorder-lite" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-code-editor" version = "2.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-widgets", ] @@ -1708,7 +1708,7 @@ dependencies = [ [[package]] name = "makepad-csg" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-boolean", "makepad-csg-math", @@ -1720,7 +1720,7 @@ dependencies = [ [[package]] name = "makepad-csg-boolean" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-exact", "makepad-csg-math", @@ -1730,7 +1730,7 @@ dependencies = [ [[package]] name = "makepad-csg-exact" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-math", ] @@ -1738,12 +1738,12 @@ dependencies = [ [[package]] name = "makepad-csg-math" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-csg-mesh" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-math", ] @@ -1751,7 +1751,7 @@ dependencies = [ [[package]] name = "makepad-csg-primitives" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-math", "makepad-csg-mesh", @@ -1760,7 +1760,7 @@ dependencies = [ [[package]] name = "makepad-csg-sdf" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-csg-math", "makepad-csg-mesh", @@ -1769,7 +1769,7 @@ dependencies = [ [[package]] name = "makepad-derive-wasm-bridge" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-proc-macro", ] @@ -1777,7 +1777,7 @@ dependencies = [ [[package]] name = "makepad-derive-widget" version = "2.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-live-id", "makepad-micro-proc-macro", @@ -1786,7 +1786,7 @@ dependencies = [ [[package]] name = "makepad-draw" version = "2.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "ab_glyph_rasterizer", "fxhash", @@ -1811,7 +1811,7 @@ dependencies = [ [[package]] name = "makepad-error-log" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-serde", ] @@ -1819,35 +1819,35 @@ dependencies = [ [[package]] name = "makepad-fast-inflate" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-filesystem-watcher" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-futures" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-futures-legacy" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-gif" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "weezl 0.1.12 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "weezl 0.1.12 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] name = "makepad-git" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-fast-inflate", ] @@ -1855,7 +1855,7 @@ dependencies = [ [[package]] name = "makepad-gltf" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-base64", "makepad-math", @@ -1865,9 +1865,9 @@ dependencies = [ [[package]] name = "makepad-half" version = "2.7.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "crunchy", "num-traits 0.2.20", "zerocopy 0.8.39", @@ -1876,7 +1876,7 @@ dependencies = [ [[package]] name = "makepad-html" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-live-id", ] @@ -1890,7 +1890,7 @@ checksum = "9775cbec5fa0647500c3e5de7c850280a88335d1d2d770e5aa2332b801ba7064" [[package]] name = "makepad-latex-math" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "ttf-parser 0.24.1", ] @@ -1898,7 +1898,7 @@ dependencies = [ [[package]] name = "makepad-live-id" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-live-id-macros", "serde", @@ -1907,7 +1907,7 @@ dependencies = [ [[package]] name = "makepad-live-id-macros" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-proc-macro", ] @@ -1915,7 +1915,7 @@ dependencies = [ [[package]] name = "makepad-live-reload-core" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-filesystem-watcher", ] @@ -1923,12 +1923,12 @@ dependencies = [ [[package]] name = "makepad-lz4" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-math" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-serde", ] @@ -1936,7 +1936,7 @@ dependencies = [ [[package]] name = "makepad-mbtile-reader" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "brotli", "makepad-fast-inflate", @@ -1945,12 +1945,12 @@ dependencies = [ [[package]] name = "makepad-micro-proc-macro" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-micro-serde" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-live-id", "makepad-micro-serde-derive", @@ -1959,7 +1959,7 @@ dependencies = [ [[package]] name = "makepad-micro-serde-derive" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-proc-macro", ] @@ -1967,7 +1967,7 @@ dependencies = [ [[package]] name = "makepad-network" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-apple-sys", "makepad-error-log", @@ -1981,12 +1981,12 @@ dependencies = [ [[package]] name = "makepad-objc-sys" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-platform" version = "2.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "ash", "bitflags 2.10.0", @@ -2016,24 +2016,24 @@ dependencies = [ "wayland-egl", "wayland-protocols", "windows 0.62.2", - "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "windows-targets 0.52.6", ] [[package]] name = "makepad-rabin-karp" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-regex" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-script" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-error-log", "makepad-html", @@ -2047,7 +2047,7 @@ dependencies = [ [[package]] name = "makepad-script-derive" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-proc-macro", ] @@ -2055,7 +2055,7 @@ dependencies = [ [[package]] name = "makepad-script-std" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-network", "makepad-script", @@ -2064,12 +2064,12 @@ dependencies = [ [[package]] name = "makepad-shared-bytes" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "makepad-splat" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-serde", "makepad-webp", @@ -2079,7 +2079,7 @@ dependencies = [ [[package]] name = "makepad-studio-hub" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-filesystem-watcher", "makepad-git", @@ -2096,7 +2096,7 @@ dependencies = [ [[package]] name = "makepad-studio-protocol" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.10.0", "makepad-error-log", @@ -2108,7 +2108,7 @@ dependencies = [ [[package]] name = "makepad-svg" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-html", "makepad-live-id", @@ -2117,7 +2117,7 @@ dependencies = [ [[package]] name = "makepad-terminal-core" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "windows 0.62.2", ] @@ -2125,7 +2125,7 @@ dependencies = [ [[package]] name = "makepad-test" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-serde", "makepad-network", @@ -2137,7 +2137,7 @@ dependencies = [ [[package]] name = "makepad-test-macros" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "proc-macro2", "quote", @@ -2147,7 +2147,7 @@ dependencies = [ [[package]] name = "makepad-tsdf" version = "0.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-math", "makepad-micro-serde", @@ -2156,7 +2156,7 @@ dependencies = [ [[package]] name = "makepad-wasm-bridge" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-derive-wasm-bridge", "makepad-live-id", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "makepad-webp" version = "0.2.4" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-byteorder-lite", ] @@ -2173,9 +2173,9 @@ dependencies = [ [[package]] name = "makepad-widgets" version = "2.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "i_overlay 7.0.3 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "i_overlay 7.0.3 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "makepad-csg", "makepad-derive-widget", "makepad-draw", @@ -2194,7 +2194,7 @@ dependencies = [ [[package]] name = "makepad-xr" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-box3d", "makepad-gltf", @@ -2206,7 +2206,7 @@ dependencies = [ [[package]] name = "makepad-zip-file" version = "1.0.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-fast-inflate", ] @@ -2214,7 +2214,7 @@ dependencies = [ [[package]] name = "makepad-zune-bmp" version = "0.5.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "log 0.4.33", "makepad-zune-core", @@ -2223,7 +2223,7 @@ dependencies = [ [[package]] name = "makepad-zune-core" version = "0.5.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "log 0.4.33", ] @@ -2231,7 +2231,7 @@ dependencies = [ [[package]] name = "makepad-zune-inflate" version = "0.2.54" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "simd-adler32 0.3.9", ] @@ -2239,7 +2239,7 @@ dependencies = [ [[package]] name = "makepad-zune-jpeg" version = "0.5.15" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-zune-core", ] @@ -2247,7 +2247,7 @@ dependencies = [ [[package]] name = "makepad-zune-png" version = "0.5.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-zune-core", "makepad-zune-inflate", @@ -2256,7 +2256,7 @@ dependencies = [ [[package]] name = "makepad-zune-qoi" version = "0.5.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-zune-core", ] @@ -2296,7 +2296,7 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "memchr" version = "2.7.6" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "memchr" @@ -2363,14 +2363,14 @@ dependencies = [ [[package]] name = "naga" version = "27.0.3" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "arrayvec", - "bit-set 0.8.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "bit-set 0.8.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "bitflags 2.13.1", - "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "cfg-if 1.0.4 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "cfg_aliases 0.2.1", - "hashbrown 0.16.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "hashbrown 0.16.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "hexf-parse", "indexmap", "makepad-error-log", @@ -2566,6 +2566,9 @@ dependencies = [ "makepad-widgets", "nigig-core", "nigig-uikit", + "robius-location", + "serde", + "serde_json", ] [[package]] @@ -2941,7 +2944,7 @@ dependencies = [ [[package]] name = "num-traits" version = "0.2.20" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "objc2" @@ -3046,7 +3049,7 @@ checksum = "8d380ab6c951261a0e44306245bc960b3b3367f099a7da7156bd1a3cacaf783c" [[package]] name = "once_cell" version = "1.21.3" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "once_cell" @@ -3166,7 +3169,7 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" version = "0.3.32" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "pkg-config" @@ -3282,11 +3285,11 @@ dependencies = [ [[package]] name = "pulldown-cmark" version = "0.12.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.10.0", "memchr 2.7.6", - "unicase 2.9.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "unicase 2.9.0 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -3810,7 +3813,7 @@ dependencies = [ [[package]] name = "rustc-hash" version = "1.1.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "rustc-hash" @@ -3897,7 +3900,7 @@ dependencies = [ [[package]] name = "rustybuzz" version = "0.18.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.10.0", "bytemuck 1.25.0", @@ -3928,7 +3931,7 @@ dependencies = [ [[package]] name = "scoped-tls" version = "1.0.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "scopeguard" @@ -3939,7 +3942,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdfer" version = "0.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "semver" @@ -4032,7 +4035,7 @@ dependencies = [ [[package]] name = "simd-adler32" version = "0.3.9" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "simd-adler32" @@ -4049,7 +4052,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" version = "1.15.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "smallvec" @@ -4079,7 +4082,7 @@ dependencies = [ [[package]] name = "spirv" version = "0.3.0+sdk-1.3.268.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.13.1", ] @@ -4196,7 +4199,7 @@ dependencies = [ [[package]] name = "thiserror" version = "2.0.18" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "thiserror-impl 2.0.18", ] @@ -4224,7 +4227,7 @@ dependencies = [ [[package]] name = "thiserror-impl" version = "2.0.18" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "makepad-micro-proc-macro", ] @@ -4425,7 +4428,7 @@ checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" [[package]] name = "ttf-parser" version = "0.24.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "typenum" @@ -4448,22 +4451,22 @@ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicase" version = "2.9.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-bidi" version = "0.3.18" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-bidi-mirroring" version = "0.3.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-ccc" version = "0.3.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-ident" @@ -4474,22 +4477,22 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-linebreak" version = "0.1.5" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-properties" version = "0.1.4" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-script" version = "0.5.8" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-segmentation" version = "1.12.0" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "unicode-segmentation" @@ -4814,7 +4817,7 @@ dependencies = [ [[package]] name = "wayland-backend" version = "0.3.12" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "downcast-rs", "libc", @@ -4826,7 +4829,7 @@ dependencies = [ [[package]] name = "wayland-client" version = "0.31.12" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.13.1", "libc", @@ -4836,7 +4839,7 @@ dependencies = [ [[package]] name = "wayland-egl" version = "0.32.9" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "wayland-backend", "wayland-sys", @@ -4845,7 +4848,7 @@ dependencies = [ [[package]] name = "wayland-protocols" version = "0.32.10" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "bitflags 2.13.1", "wayland-backend", @@ -4855,7 +4858,7 @@ dependencies = [ [[package]] name = "wayland-sys" version = "0.31.8" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "log 0.4.29", "pkg-config 0.3.32", @@ -4899,7 +4902,7 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "weezl" version = "0.1.12" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "winapi-util" @@ -4923,19 +4926,19 @@ dependencies = [ [[package]] name = "windows" version = "0.62.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ "windows-collections", - "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", "windows-future", ] [[package]] name = "windows-collections" version = "0.3.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -4966,19 +4969,19 @@ dependencies = [ [[package]] name = "windows-core" version = "0.62.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "windows-result 0.4.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", - "windows-strings 0.5.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "windows-result 0.4.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", + "windows-strings 0.5.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] name = "windows-future" version = "0.3.2" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-core 0.62.2 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -5034,7 +5037,7 @@ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-link" version = "0.2.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "windows-result" @@ -5057,9 +5060,9 @@ dependencies = [ [[package]] name = "windows-result" version = "0.4.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -5074,9 +5077,9 @@ dependencies = [ [[package]] name = "windows-strings" version = "0.5.1" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" dependencies = [ - "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc)", + "windows-link 0.2.1 (git+https://gitdab.com/andodeki/makepad?rev=ecf5a572)", ] [[package]] @@ -5275,7 +5278,7 @@ dependencies = [ [[package]] name = "zerocopy" version = "0.8.39" -source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572ab62a1c1598909971f602f99083671cc#ecf5a572ab62a1c1598909971f602f99083671cc" +source = "git+https://gitdab.com/andodeki/makepad?rev=ecf5a572#ecf5a572ab62a1c1598909971f602f99083671cc" [[package]] name = "zerocopy" diff --git a/REVIEWS/NIGIG_EMAIL_ASSESSMENT_AND_PLAN.md b/REVIEWS/NIGIG_EMAIL_ASSESSMENT_AND_PLAN.md index a3167be..581ac5b 100644 --- a/REVIEWS/NIGIG_EMAIL_ASSESSMENT_AND_PLAN.md +++ b/REVIEWS/NIGIG_EMAIL_ASSESSMENT_AND_PLAN.md @@ -524,14 +524,6 @@ snapshot. Commits are on `main`. | `5a5b817` | **Phase C2 (early)** — `email_account.rs` + `email_store.rs`: session state, account validation, sender-thread grouping, char-safe previews. 38 host tests. | | `b91f97b` | **Phase 0.1 DONE** — `main.rs` braces fixed; the binary compiles for the first time. | | `18bbb7b` | **Feature: account-gated inbox** — sender list + thread reader reusing `nigig_uikit::shared::conversation`; setup form moved off the Bulk tab; `drafts.rs` deleted (0.4). | -| `cc8a727` | **Phase 0.2 DONE** — 42 abbreviated git revs across 34 crates rewritten to full 40-char SHAs. Label-only change, verified against `Cargo.lock`. | -| `4ae50cb` | **Phase 0.5 DONE** — `serde`, `serde_json`, `robius-location` removed; platform-dep gate extended to `nigig-email`. | -| `244c4f2` | **Phase 0.3 + 0.6 DONE** — `email.yml` (4 jobs, 11 gates). Writing the gates caught **B2 and B3 still live in `bulk.rs`**; both fixed here. | - -**Phase 0 is complete.** All seven items done; 0.7 was fixed upstream. -Every gate in `email.yml` was negative-tested — reverted the fix, -confirmed the gate fails, restored it — rather than merely observed -green. Verified: `cargo check -p nigig-email --all-targets` → 0 errors; 41 tests pass (38 core + 3 UI helpers); `nigig-email` clippy down to 2 @@ -617,12 +609,12 @@ Nothing else can be trusted until the crate builds and something runs it. | ID | Task | |---|---| | ~~0.1~~ | ~~**Fix `main.rs` braces.**~~ **DONE** (`b91f97b`) — was missing the `StandaloneFeatureBody` wrapper; `--lib` had always passed, so only the binary was broken. | -| ~~0.2~~ | ~~**Repair the 40-char rev gate repo-wide.**~~ **DONE** (`f5d003f`) — 42 declarations across 34 crates rewritten to full SHAs (`ecf5a572ab62…`, `5efe6e24c9f7…`). Verified label-only: `Cargo.lock` holds one makepad commit id and zero refs to the old. | -| ~~0.3~~ | ~~**Create `.forgejo/workflows/email.yml`**~~ **DONE** — 4 jobs: `gates` (4 source scans), `email-domain` (38 tests + floor), `nigig-email` (check `--all-targets`, test, fmt, clippy ratchet), `supply-chain` (unused deps, lockfile, whitespace). | +| 0.2 | **Repair the 40-char rev gate repo-wide.** Resolve `5efe6e24c` → full SHA, rewrite all 42 declarations. This is mechanical and must land in its own commit. | +| 0.3 | **Create `.forgejo/workflows/email.yml`**: `gates` (source scans), `nigig-email` (check + clippy + test), `supply-chain` (`cargo deny`, lockfile, unused deps). | | ~~0.4~~ | ~~**Delete or wire `drafts.rs`.**~~ **DONE** (`18bbb7b`) — deleted. 157 lines never declared in `pages/mod.rs`, so never compiled. | -| ~~0.5~~ | ~~**Drop unused deps.**~~ **DONE** (`e958386`) — removed `serde`, `serde_json`, `robius-location` (all 0 references in `src/`). `chrono` kept: it *is* used by `format_thread_time`, correcting the assessment. Extended the existing platform-dep gate to cover `nigig-email`; negative-tested. | -| ~~0.7~~ | ~~**Unblock `origin/main`.**~~ **DONE upstream** (`005bed1`, not mine) — corrected `i_tree` to `0.19.0`, exactly the fix predicted here. Verified: the workspace resolves and `cargo check -p nigig-email --all-targets` passes on current `main`. | -| ~~0.6~~ | ~~**Add `nigig-email` to a fmt gate.**~~ **DONE** — a HARD gate, not report-only: the crate already formats clean, so there is no pre-existing drift to grandfather in. Contrast `sms.yml`/`nigig-map.yml`, which inherited hundreds of diffs and had to report only. | +| 0.5 | **Drop unused deps**: `serde_json`, `robius-location`. *Revised:* `chrono` is now used (`format_thread_time`) and `serde` is used by `email_account`/`email_store`, so only two remain. Extend the "removed platform deps must not come back" gate to cover `nigig-email`. | +| **0.7** | **NEW, HIGHEST PRIORITY — unblock `origin/main`.** The workspace does not resolve at HEAD, so no crate can be CI-verified. Two causes in sequence: `86c9595` dropped the `maps` feature `pageflipnav` needs; `ce0eaae` fixed that but added `i_tree = "1.0.0"` to `crates/apps/map`, a version crates.io does not have (max published: `0.19.0`). Fix is almost certainly `i_tree = "0.19"`, but that is the map crate's call, not this plan's. Blocks 0.2, 0.3 and every ratchet in Phase E. | +| 0.6 | **Add `nigig-email` to a fmt gate**, or record explicitly why not (SMS chose report-only; email is small enough to just format). | Exit: `cargo check`/`clippy`/`test -p nigig-email` green on a real runner. @@ -673,10 +665,7 @@ send-only form. **It needs a product decision before any code.** | C6 | **Bulk pacing.** Email providers rate-limit harder than carriers. Port `SendPacing` from `robius-sms` — already generic arithmetic. | | C7 | **NEW — pull-to-refresh + background fetch** once C1 lands. The SMS crate's D1/D2 pattern (worker thread → results queue → `SignalToUI` → drained on the UI thread) applies directly; do not fetch from `draw_walk`. | -#### C1 — DECIDED: support both, user-selectable - -**Decision (2026-08-16): implement both backends and let the user pick, -with a setup form appropriate to each.** +#### C1 — the decision I need from you | | IMAP on device | Server-side proxy | |---|---|---| @@ -686,70 +675,12 @@ with a setup form appropriate to each.** | wasm | IMAP over raw TCP is impossible in a browser — needs a proxy *anyway* | Same code path on every platform | | Resolves S2? | No — you still hold the password | **Largely yes** | -This is the right call and it is *cheaper than it sounds*, because wasm -already forces a proxy to exist: supporting only IMAP was never actually -an option for the browser target. So the second backend is not new scope, -it is scope that was already implied. - -##### What "both" requires architecturally - -The thing that makes this tractable is a **trait boundary**, not two -parallel UIs. One `MailBackend` abstraction with two implementations, and -a `BackendKind` discriminant on the account: - -```rust -pub enum BackendKind { ImapSmtp, ProxyApi } - -pub trait MailBackend { - async fn verify(&self) -> Result<(), String>; - async fn list_inbox(&self) -> Result, String>; - async fn send(&self, req: &EmailSendRequest) -> Result<(), String>; -} -``` - -`email_store`'s grouping, `preview_line`, the inbox list, the thread -reader and the unread handling all sit **above** this line and are already -written — they consume `Vec` and do not care where it came -from. That was deliberate (see C2) and it is what makes two backends a -contained change rather than a rewrite. - -##### Two forms, and the fields genuinely differ - -Not one form with a toggle that hides rows — the fields are different -enough that pretending otherwise produces a confusing screen: - -| IMAP + SMTP | Proxy API | -|---|---| -| Email address | Email address | -| IMAP server + port | API base URL (**must be HTTPS** — S5) | -| SMTP server + port | API token / credential | -| Username | — | -| Password / app password | — | -| — | Optional account label | - -So: a backend chooser first, then the matching form. `AccountDraft` gains -a `BackendKind` and validation branches on it — `validate()` already -returns `Vec` and reports every problem at once, so this -extends cleanly. - -##### Sequencing - -| ID | Task | -|---|---| -| C1a | `BackendKind` + `MailBackend` trait in `nigig-core`. Host-testable with a fake backend; no network. | -| C1b | Extend `AccountDraft`/`EmailAccount` with `BackendKind`; branch validation. Tests for both shapes, including HTTPS-only enforcement on the proxy URL. | -| C1c | Backend chooser + two forms in `EmailAccountSetup`. | -| C1d | `ProxyApiBackend` — thin HTTP client. Do this **first** of the two: it is smaller, it is the only option on wasm, and it exercises the trait boundary end to end. | -| C1e | `ImapSmtpBackend` — `async-imap`, native only. Gate behind a feature so wasm builds never pull it in. | -| C1f | Keystore-backed credential storage (A1). Required for IMAP to be usable across restarts; optional for the proxy, which can hold a revocable token instead. | - -##### One thing I will not pretend - -Offering both **doubles the security surface**, and the IMAP path is the -one that keeps a reusable password on the device. A revocable proxy token -is strictly safer than a password that also unlocks the user's password -resets. So the setup UI should say which is which, plainly, rather than -presenting them as equivalent choices. +My read: **the proxy wins on merit**, mostly because the wasm target +already forces one and because it retires the password-storage problem +rather than mitigating it. But it is infrastructure you may not want to +run, and IMAP-on-device is the only option that works with no backend at +all. This is a product call, not a technical one, which is why I have not +made it. --- diff --git a/crates/apps/geohot/Cargo.toml b/crates/apps/geohot/Cargo.toml index 3171830..0552148 100644 --- a/crates/apps/geohot/Cargo.toml +++ b/crates/apps/geohot/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/map/Cargo.toml b/crates/apps/map/Cargo.toml index 397a4b7..e5603b9 100644 --- a/crates/apps/map/Cargo.toml +++ b/crates/apps/map/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" description = "Map tile renderer with viewport, caching, scheduling, and MVT decoding" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc" } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572" } # Polygon operations (used by makepad_map for advanced geometry) i_overlay = { version = "7.0.3", default-features = false } @@ -14,7 +14,7 @@ i_shape = "1.0.0" i_tree = "0.19.0" [dev-dependencies] -makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc" } +makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572" } [features] default = ["map_style"] diff --git a/crates/apps/map/tests/makepad_test_app/Cargo.toml b/crates/apps/map/tests/makepad_test_app/Cargo.toml index 1165957..81cb4de 100644 --- a/crates/apps/map/tests/makepad_test_app/Cargo.toml +++ b/crates/apps/map/tests/makepad_test_app/Cargo.toml @@ -6,9 +6,9 @@ description = "Visual regression test application for nigig-map widget" [dependencies] <<<<<<< HEAD -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "5efe6e24c9f732e9f11b783757f196f4f1c402b2", features = ["maps"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "5efe6e24c", features = ["maps"] } ======= -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["maps"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["maps"] } >>>>>>> 71b5460 (chore: update makepad fork to latest upstream/dev (abd70f4)) nigig-map = { path = "../.." } diff --git a/crates/apps/nigig-ai/Cargo.toml b/crates/apps/nigig-ai/Cargo.toml index b85847b..21a8a3e 100644 --- a/crates/apps/nigig-ai/Cargo.toml +++ b/crates/apps/nigig-ai/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-alerts/Cargo.toml b/crates/apps/nigig-alerts/Cargo.toml index 5868c6a..641e95e 100644 --- a/crates/apps/nigig-alerts/Cargo.toml +++ b/crates/apps/nigig-alerts/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-book/Cargo.toml b/crates/apps/nigig-book/Cargo.toml index 6a52da8..0d6a41a 100644 --- a/crates/apps/nigig-book/Cargo.toml +++ b/crates/apps/nigig-book/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-build/Cargo.toml b/crates/apps/nigig-build/Cargo.toml index 6170ec2..0af7e0d 100644 --- a/crates/apps/nigig-build/Cargo.toml +++ b/crates/apps/nigig-build/Cargo.toml @@ -4,11 +4,11 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["test", "csg", "gltf"] } -makepad-code-editor = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} -makepad-xr = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} -makepad-ai = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} -makepad-base64 = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["test", "csg", "gltf"] } +makepad-code-editor = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} +makepad-xr = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} +makepad-ai = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} +makepad-base64 = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} # makepad-gltf: read-side GLB parser. Used for round-trip validation # of arch_gltf.rs output (write GLB → load with makepad_gltf → verify). nigig-core = { path = "../../nigig-core" } diff --git a/crates/apps/nigig-chat/Cargo.toml b/crates/apps/nigig-chat/Cargo.toml index 173a6f8..16ce2cd 100644 --- a/crates/apps/nigig-chat/Cargo.toml +++ b/crates/apps/nigig-chat/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-delivery/Cargo.toml b/crates/apps/nigig-delivery/Cargo.toml index 8907206..c7f9998 100644 --- a/crates/apps/nigig-delivery/Cargo.toml +++ b/crates/apps/nigig-delivery/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-email/Cargo.toml b/crates/apps/nigig-email/Cargo.toml index e696d7e..f79a4f9 100644 --- a/crates/apps/nigig-email/Cargo.toml +++ b/crates/apps/nigig-email/Cargo.toml @@ -4,8 +4,10 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } -# Used by inbox.rs::format_thread_time for list-row timestamps. +serde = { version = "1", features = ["derive"] } +serde_json = "1" chrono = { version = "0.4", features = ["serde"] } +robius-location = { git = "https://github.com/project-robius/robius", rev = "b766e62b0600f5d2ee21cc6995648346fc277bd8" } diff --git a/crates/apps/nigig-email/src/email_frame/pages/bulk.rs b/crates/apps/nigig-email/src/email_frame/pages/bulk.rs index d6f4ff6..2cddb30 100644 --- a/crates/apps/nigig-email/src/email_frame/pages/bulk.rs +++ b/crates/apps/nigig-email/src/email_frame/pages/bulk.rs @@ -1,5 +1,4 @@ use makepad_widgets::*; -use nigig_core::email_account::AccountDraft; use nigig_core::email_worker::{spawn_send_email, spawn_smtp_test, EmailWorkerAction, SmtpConfig}; script_mod! { @@ -88,45 +87,29 @@ impl Widget for EmailBulkPage { self.view.handle_event(cx, event, scope); if let Event::Actions(actions) = event { - // B2: this block used to read five TextInputs and build an - // SmtpConfig on EVERY action event -- ten heap allocations - // per keystroke, per scroll, per timer tick from any widget - // in the app, for a struct only read when a button is - // clicked. Worse, it captured whatever the fields happened - // to hold when an unrelated action fired. Read on click - // instead. - let test_clicked = self.button(cx, ids!(test_btn)).clicked(actions); - let send_clicked = self.button(cx, ids!(send_btn)).clicked(actions); + let server = self.text_input(cx, ids!(server_input)).text(); + let port_t = self.text_input(cx, ids!(port_input)).text(); + let username = self.text_input(cx, ids!(username_input)).text(); + let password = self.text_input(cx, ids!(password_input)).text(); + let from = self.text_input(cx, ids!(from_input)).text(); - if test_clicked || send_clicked { - match self.read_config(cx) { - Err(msg) => { - // B3: the port used to be parsed with - // `unwrap_or(587)`, so "465x" silently became 587 - // -- and because the port selects the transport - // (465 implicit TLS vs 587 STARTTLS) that - // silently changed the security posture too. Say - // so instead. - let id = if test_clicked { - ids!(status_label) - } else { - ids!(send_status) - }; - self.label(cx, id).set_text(cx, &msg); - self.view.redraw(cx); - } - Ok(config) => { - self.smtp_config = config.clone(); - if test_clicked { - self.label(cx, ids!(status_label)) - .set_text(cx, "Testing..."); - spawn_smtp_test(config); - } - } - } + let port: u16 = port_t.parse().unwrap_or(587); + self.smtp_config = SmtpConfig { + server: server.clone(), + port, + username: username.clone(), + password: password.clone(), + from: from.clone(), + }; + + if self.button(cx, ids!(test_btn)).clicked(actions) { + let config = self.smtp_config.clone(); + self.label(cx, ids!(status_label)) + .set_text(cx, "Testing..."); + spawn_smtp_test(config); } - if send_clicked && !self.smtp_config.server.is_empty() { + if self.button(cx, ids!(send_btn)).clicked(actions) { let to = self.text_input(cx, ids!(to_input)).text(); let subject = self.text_input(cx, ids!(subject_input)).text(); let message = self.text_input(cx, ids!(message_input)).text(); @@ -158,36 +141,3 @@ impl Widget for EmailBulkPage { self.view.draw_walk(cx, scope, walk) } } - -impl EmailBulkPage { - /// Read the SMTP form and validate it. - /// - /// Routes through `AccountDraft::validate`, which is unit tested in - /// nigig-core, rather than re-implementing parsing here. That is the - /// only reason this page now rejects a malformed port instead of - /// silently rewriting it to 587 (B3). - fn read_config(&mut self, cx: &mut Cx) -> Result { - let draft = AccountDraft { - address: self.text_input(cx, ids!(from_input)).text(), - smtp_server: self.text_input(cx, ids!(server_input)).text(), - smtp_port: self.text_input(cx, ids!(port_input)).text(), - username: self.text_input(cx, ids!(username_input)).text(), - password: self.text_input(cx, ids!(password_input)).text(), - display_name: String::new(), - }; - match draft.validate() { - Ok((account, password)) => Ok(SmtpConfig { - server: account.smtp_server, - port: account.smtp_port, - username: account.username, - password, - from: account.address, - }), - Err(errors) => Err(errors - .iter() - .map(|e| e.message()) - .collect::>() - .join(" ")), - } - } -} diff --git a/crates/apps/nigig-feed/Cargo.toml b/crates/apps/nigig-feed/Cargo.toml index 8a8ec5f..37b5821 100644 --- a/crates/apps/nigig-feed/Cargo.toml +++ b/crates/apps/nigig-feed/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-garage/Cargo.toml b/crates/apps/nigig-garage/Cargo.toml index 22817e5..446a5d7 100644 --- a/crates/apps/nigig-garage/Cargo.toml +++ b/crates/apps/nigig-garage/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-health/Cargo.toml b/crates/apps/nigig-health/Cargo.toml index 1fd726e..a0e385d 100644 --- a/crates/apps/nigig-health/Cargo.toml +++ b/crates/apps/nigig-health/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-insure/Cargo.toml b/crates/apps/nigig-insure/Cargo.toml index 5fdb19f..de9ccd9 100644 --- a/crates/apps/nigig-insure/Cargo.toml +++ b/crates/apps/nigig-insure/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-marikiti/Cargo.toml b/crates/apps/nigig-marikiti/Cargo.toml index 8dd73bb..11652d2 100644 --- a/crates/apps/nigig-marikiti/Cargo.toml +++ b/crates/apps/nigig-marikiti/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-mobility/Cargo.toml b/crates/apps/nigig-mobility/Cargo.toml index 65892e6..b983191 100644 --- a/crates/apps/nigig-mobility/Cargo.toml +++ b/crates/apps/nigig-mobility/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-mpesa/Cargo.toml b/crates/apps/nigig-mpesa/Cargo.toml index b1d3fe7..449ee71 100644 --- a/crates/apps/nigig-mpesa/Cargo.toml +++ b/crates/apps/nigig-mpesa/Cargo.toml @@ -38,7 +38,7 @@ default = ["demo"] demo = ["nigig-pay-ui/demo"] [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["test"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["test"] } nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-pay-ui/Cargo.toml b/crates/apps/nigig-pay-ui/Cargo.toml index 80f233d..6457be0 100644 --- a/crates/apps/nigig-pay-ui/Cargo.toml +++ b/crates/apps/nigig-pay-ui/Cargo.toml @@ -34,7 +34,7 @@ default = [] demo = [] [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-pay-domain = { path = "../../nigig-pay-domain" } # Session correlation (review items 2.7 / 5.3). The registry that refuses an diff --git a/crates/apps/nigig-pay/Cargo.toml b/crates/apps/nigig-pay/Cargo.toml index bc1e67e..7086852 100644 --- a/crates/apps/nigig-pay/Cargo.toml +++ b/crates/apps/nigig-pay/Cargo.toml @@ -38,7 +38,7 @@ default = ["demo"] demo = ["nigig-pay-ui/demo"] [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["test"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["test"] } nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } robius-ussd = { path = "../../robius-ussd", features = ["serde"] } diff --git a/crates/apps/nigig-property/Cargo.toml b/crates/apps/nigig-property/Cargo.toml index 4104d23..5a98075 100644 --- a/crates/apps/nigig-property/Cargo.toml +++ b/crates/apps/nigig-property/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-rider/Cargo.toml b/crates/apps/nigig-rider/Cargo.toml index b7d742d..33e1b83 100644 --- a/crates/apps/nigig-rider/Cargo.toml +++ b/crates/apps/nigig-rider/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" # The example app in makepad-example-map uses the same flag. # `map_style` belongs to the Nigig map crate; the Robrix Makepad fork exposes # its built-in map widget through the `maps` feature only. -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["maps"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["maps"] } nigig-map = { path = "../map" } nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } diff --git a/crates/apps/nigig-shop/Cargo.toml b/crates/apps/nigig-shop/Cargo.toml index e54b20c..6d37d95 100644 --- a/crates/apps/nigig-shop/Cargo.toml +++ b/crates/apps/nigig-shop/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-sms/Cargo.toml b/crates/apps/nigig-sms/Cargo.toml index 5018e74..f086520 100644 --- a/crates/apps/nigig-sms/Cargo.toml +++ b/crates/apps/nigig-sms/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } chrono = { version = "0.4", features = ["serde"] } diff --git a/crates/apps/nigig-tow/Cargo.toml b/crates/apps/nigig-tow/Cargo.toml index c911f44..d1a6f88 100644 --- a/crates/apps/nigig-tow/Cargo.toml +++ b/crates/apps/nigig-tow/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-vehicle/Cargo.toml b/crates/apps/nigig-vehicle/Cargo.toml index 88d4575..0cd0635 100644 --- a/crates/apps/nigig-vehicle/Cargo.toml +++ b/crates/apps/nigig-vehicle/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig-walkie/Cargo.toml b/crates/apps/nigig-walkie/Cargo.toml index d57fd32..920a202 100644 --- a/crates/apps/nigig-walkie/Cargo.toml +++ b/crates/apps/nigig-walkie/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/nigig_doc_scanner/Cargo.toml b/crates/apps/nigig_doc_scanner/Cargo.toml index 3891631..991715b 100644 --- a/crates/apps/nigig_doc_scanner/Cargo.toml +++ b/crates/apps/nigig_doc_scanner/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/pdf/pdf-makepad/Cargo.toml b/crates/apps/pdf/pdf-makepad/Cargo.toml index dc7cf22..0ac9a9d 100644 --- a/crates/apps/pdf/pdf-makepad/Cargo.toml +++ b/crates/apps/pdf/pdf-makepad/Cargo.toml @@ -11,14 +11,14 @@ nigig-pdf-document = { path = "../pdf-document" } nigig-pdf-graphics = { path = "../pdf-graphics" } # The `test` feature gates makepad-widgets' re-export of makepad-test, # which tests/ui.rs imports as makepad_widgets::makepad_test. -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", features = ["test"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", features = ["test"] } [dev-dependencies] # Both are required, and neither is redundant: `ui.rs` imports the symbols # through the re-export above, but the `#[makepad_test]` attribute expands # to an absolute `::makepad_test::` path, which only resolves if the crate # is also a direct dependency. Dropping either breaks the UI tests. -makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", package = "makepad-test" } +makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", package = "makepad-test" } # A binary host so makepad_test can drive the widget through real event # delivery; the crate itself remains a library. diff --git a/crates/apps/spreadsheet/spreadsheet-ui/Cargo.toml b/crates/apps/spreadsheet/spreadsheet-ui/Cargo.toml index eae46c4..9392e1c 100644 --- a/crates/apps/spreadsheet/spreadsheet-ui/Cargo.toml +++ b/crates/apps/spreadsheet/spreadsheet-ui/Cargo.toml @@ -16,8 +16,8 @@ description = "Makepad widget wrappers for the spreadsheet engine." # # For now, using a relative path from this crate's location: # crates/apps/spreadsheet/spreadsheet-ui/ → ../../../../makepad/widgets -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} spreadsheet-engine = { path = "../spreadsheet-engine" } [dev-dependencies] -makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", package = "makepad-test" } +makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", package = "makepad-test" } diff --git a/crates/apps/streem/Cargo.toml b/crates/apps/streem/Cargo.toml index 647f7a5..6a944ea 100644 --- a/crates/apps/streem/Cargo.toml +++ b/crates/apps/streem/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../../nigig-core" } nigig-uikit = { path = "../../nigig-uikit" } serde = { version = "1", features = ["derive"] } diff --git a/crates/apps/theming/Cargo.toml b/crates/apps/theming/Cargo.toml index 1d0d897..6ad0867 100644 --- a/crates/apps/theming/Cargo.toml +++ b/crates/apps/theming/Cargo.toml @@ -21,7 +21,7 @@ nigig-core = { path = "../../nigig-core" } # matches. If nigig-core uses a path dep, match it here. If it uses git, # match that. # makepad-widgets = { git = "https://github.com/makepad/makepad.git", branch = "dev" } -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} # ── Robius integration ─────────────────────────────────────────────────── # robius-use-makepad sets up the right Makepad feature flags for diff --git a/crates/nigig-core/Cargo.toml b/crates/nigig-core/Cargo.toml index 3eb2041..31e1280 100644 --- a/crates/nigig-core/Cargo.toml +++ b/crates/nigig-core/Cargo.toml @@ -12,7 +12,7 @@ async-rt = [] [dependencies] matrix_client = { path = "../matrix_client", default-features = false } nigig-system-prefs = { path = "../nigig-system-prefs" } -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} serde = { version = "1", features = ["derive"] } serde_json = "1" chrono = { version = "0.4", features = ["serde"] } diff --git a/crates/nigig-uikit/Cargo.toml b/crates/nigig-uikit/Cargo.toml index 048508b..8c25554 100644 --- a/crates/nigig-uikit/Cargo.toml +++ b/crates/nigig-uikit/Cargo.toml @@ -5,7 +5,7 @@ version = "0.1.0" edition = "2021" [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc"} +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572"} nigig-core = { path = "../nigig-core" } serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/crates/pageflipnav/Cargo.toml b/crates/pageflipnav/Cargo.toml index f0028ee..dd5aa32 100644 --- a/crates/pageflipnav/Cargo.toml +++ b/crates/pageflipnav/Cargo.toml @@ -48,7 +48,7 @@ panic = 'abort' strip = true [dependencies] -makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572ab62a1c1598909971f602f99083671cc", default-features = false, features = ["test", "serde", "maps"] } +makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "ecf5a572", default-features = false, features = ["test", "serde", "maps"] } robius-use-makepad = "0.1.1" robius-open = { git = "https://github.com/project-robius/robius", rev = "b766e62b0600f5d2ee21cc6995648346fc277bd8" } robius-directories = { git = "https://github.com/project-robius/robius", rev = "b766e62b0600f5d2ee21cc6995648346fc277bd8" }