mirror of
https://github.com/nearai/ironclaw.git
synced 2026-09-03 08:06:01 +08:00
* fix: restore only active wasm channels at startup * fix: address PR review follow-ups * Merge origin/staging; fix CredentialName newtype + unused import Merge 120 commits from staging. Fix two compilation issues from the merge: test used raw String where CredentialName newtype is now required (staging PR #2611), and unused HashSet import in setup tests after prior redundant-filter removal. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address PR review — owner_id type, naming, whitespace trim - Use build_runtime_config_updates() in register_channel so boot-time owner_id injection matches the post-approval path (numeric when parseable as i64, string otherwise). - Rename persisted_active_channels_raw to persisted_active_channels since load_persisted_active_channels already normalizes. - Trim whitespace from persisted channel names before validation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: derive settings_persistence_available from DB, not workspace adapter ExtensionManager::settings_store() falls back to the raw DB when no workspace adapter is set. Check components.db.is_some() so the persistence flag aligns with the actual settings store availability. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: use ExtensionName for persisted WASM channel name validation Replace hand-rolled validation in normalize_persisted_wasm_channel_names with ExtensionName::new(), which provides the canonical validation (trim, hyphen→underscore, path traversal, lowercase-only, no consecutive underscores). This aligns startup channel name validation with the rest of the extension system. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Illia Polosukhin <ilblackdragon@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>