mirror of
https://github.com/nearai/ironclaw.git
synced 2026-09-03 08:06:01 +08:00
* Fix WASM channel owner_id fallback * ci: ignore rand advisory * ci: satisfy cargo-deny path dependency versions * fix(telegram): handle null/string owner_id and propagate to WASM config The bundled Telegram capabilities.json ships `"owner_id": null`. The previous code only called `Value::as_i64()`, which returns `None` for `Null`, so the fallback silently produced no owner — the fix never actually worked for Telegram. Changes: - Handle `Null`, `String`, and `Number` variants in `owner_actor_id_for_channel()` so the real production payload works. - Propagate the *resolved* owner_id into the WASM runtime config map regardless of whether it came from runtime config or capabilities fallback (previously only the runtime-config path injected it). - Add `tracing::debug!` for non-scalar owner_id values to aid debugging. - Add tests: null config, missing capabilities file, empty string, non-scalar value, and caller-level register_channel tests that verify config injection and null-owner-id handling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(channels): unify owner_id type and add capabilities fallback to hot-activation Address two follow-up items from PR #2349 review: 1. Type consistency: boot path injected owner_id as Value::String, but hot-activation path (build_wasm_channel_runtime_config_updates) used Value::Number. Changed the function to accept Option<&str> and inject as Value::String, matching the boot path. 2. Capabilities fallback: hot-activation paths (complete_loaded_wasm_channel_activation and refresh_active_channel) only checked runtime HashMap and settings store. Now they also consult capabilities.json via the extracted owner_id_from_capabilities() helper, matching the boot path's behavior. Also updates the telegram WASM module to accept both string and number JSON for owner_id via a custom deserializer, since all other channels already use Option<String>. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Illia Polosukhin <ilblackdragon@gmail.com>
65 lines
2.1 KiB
TOML
65 lines
2.1 KiB
TOML
[advisories]
|
|
unmaintained = "workspace"
|
|
yanked = "deny"
|
|
ignore = [
|
|
# Pre-existing advisories — tracked for upgrade in separate PRs
|
|
# serde_yml unsound/unmaintained — direct dep, upgrade tracked separately
|
|
"RUSTSEC-2025-0068",
|
|
# tokio-tar PAX header parsing — sandbox containers only
|
|
"RUSTSEC-2025-0111",
|
|
# rustls-webpki CRL distributionPoint matching — 0.102.8 pinned by libsql transitive dep
|
|
"RUSTSEC-2026-0049",
|
|
# rustls-webpki URI name constraint bypass — 0.102.8 pinned by libsql transitive dep;
|
|
# patched in >=0.103.12 but libsql 0.6.0 requires rustls 0.22 which pins 0.102.x
|
|
"RUSTSEC-2026-0098",
|
|
# rustls-webpki wildcard name constraint bypass — same 0.102.8 pin from libsql
|
|
"RUSTSEC-2026-0099",
|
|
# rand unsoundness with custom logger calling rand::rng() during reseed — we don't use this pattern;
|
|
# revisit/remove by 2026-06-30, or when transitive deps (tower, nanoid, phf_generator) release rand ≥0.9.3 compat
|
|
"RUSTSEC-2026-0097",
|
|
]
|
|
|
|
[licenses]
|
|
version = 2
|
|
allow = [
|
|
"MIT",
|
|
# MIT-0 (MIT No Attribution) is strictly more permissive than MIT —
|
|
# required by `jsonschema` (used for workspace document schema validation).
|
|
"MIT-0",
|
|
"Apache-2.0",
|
|
"Apache-2.0 WITH LLVM-exception",
|
|
"BSD-2-Clause",
|
|
"BSD-3-Clause",
|
|
"ISC",
|
|
"Unicode-3.0",
|
|
"Unicode-DFS-2016",
|
|
"OpenSSL",
|
|
"Zlib",
|
|
"MPL-2.0",
|
|
"0BSD",
|
|
"BSL-1.0",
|
|
"CC0-1.0",
|
|
"Unlicense",
|
|
"CDLA-Permissive-2.0",
|
|
]
|
|
unused-allowed-license = "allow"
|
|
|
|
[bans]
|
|
multiple-versions = "warn"
|
|
wildcards = "deny"
|
|
# monty (Pydantic's embedded Python) is git-only (not on crates.io),
|
|
# so it inherently lacks a version constraint. Allow path-dep wildcards.
|
|
allow-wildcard-paths = true
|
|
|
|
[sources]
|
|
unknown-registry = "deny"
|
|
unknown-git = "deny"
|
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|
|
allow-git = [
|
|
# Monty (Pydantic's embedded Python interpreter) — not yet on crates.io.
|
|
# Pulls in ruff_* crates from astral-sh/ruff at a pinned revision.
|
|
"https://github.com/pydantic/monty.git",
|
|
"https://github.com/astral-sh/ruff.git",
|
|
]
|
|
|