fix: provenance closure — evidence chain, operator trust, Tauri security (v1.8.0)#48
Merged
Conversation
…, cloud readiness, provider fallback, evidence emission for export/validation
…ValidationIssue node)
…t EvidenceBuilder, ValidationIssue emission, work_queue_summary, bridge, resolve_chat
…idation field, H7 From<NodeType> bridge + re-exports
…P, unsafe_code, review_log_text Option, doc placement
…test Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AppSettings::default() uses the local demo endpoint/key/model — all non-empty — causing cloud_readiness to return Ready for unconfigured cloud settings. Exclude localhost/127.x endpoints and known placeholder keys (local-tool-tray, local-foundry) so Ready requires a genuine external endpoint and real credentials. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
| use thiserror::Error; | ||
|
|
||
| use crate::edge::{EdgeType, EvidenceEdge}; | ||
| use crate::missing::{ProvenanceScanner, ProvenanceGap}; |
| use thiserror::Error; | ||
|
|
||
| use crate::edge::{EdgeType, EvidenceEdge}; | ||
| use crate::missing::{ProvenanceScanner, ProvenanceGap}; |
| #[cfg(test)] | ||
| mod tests { | ||
| use super::*; | ||
| use crate::node::{Classification, SourceDoc, Transaction}; |
| use crate::node::{Classification, SourceDoc, Transaction}; | ||
| use chrono::TimeZone; | ||
| use chrono::Utc; | ||
| use rust_decimal::Decimal; |
| } | ||
|
|
||
| pub fn hash(&self) -> &str { | ||
| self.0.splitn(2, ':').nth(1).unwrap_or(&self.0) |
| } | ||
|
|
||
| pub fn hash(&self) -> &str { | ||
| self.0.splitn(2, ':').nth(1).unwrap_or(&self.0) |
Comment on lines
+1434
to
+1436
| reason: format!( | ||
| "{} unavailable, fell back to Local Demo. {}", | ||
| settings.model_provider.display_name(), |
| row: &TransactionInput, | ||
| tx_id: &str, | ||
| ) -> Result<(), ToolError> { | ||
| use arc_kit_au::EdgeType; |
| row: &TransactionInput, | ||
| tx_id: &str, | ||
| ) -> Result<(), ToolError> { | ||
| use arc_kit_au::EdgeType; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EvidenceBuilderwired throughout ingest/classify/export;ValidationIssuenodes emitted from low-confidence classify path;WorkbookRownodes emitted on export;work_queue_summary()projection replaces manual counting inTodayQueueprovider_status(settings)now requiresAppSettingsso cloud readiness reflects actual configuration;cloud_readinessrejects internal endpoints and placeholder keys;resolve_chat_settingsreturns(ChatSettings, Option<ProviderReadiness>)so callers surface fallback warningsnull→ restrictive policy;unsafe_code = "allow"→ workspace lint inheritance;review_log_text: Option<String>preserves existing log on error pathfoundry_local_chat_settingsreturnsErron undiscovered endpoint instead of silently falling back to hardcoded port 5272; discovery probe uses 2s/1s timeoutsledger-coreas type authority:From<ArtifactKind> for NodeTypebridge + 12arc-kit-aure-exports behind feature gate satisfy PRD-4 AC-4.1.1let _ =on evidence ops →ensure_*idempotent builder methods +tracing::warn!; mutex poison surfaces error instead of silently recovering; settings V1→V2 migration write separated from load path;evidence_path()method eliminates duplicated sidecar path computation#[cfg(test)] mod tests;.unwrap()removed from unit-returningbuild_full_chain;cloud_readinesstest correctly uses external endpoint + real key to assertReadyCloses
All P0/P1/P2/P3 gaps from the review of PR #47 + harmonization rounds H1–H8 + Copilot concerns C1–C5.
Test plan
cargo test -p arc-kit-au— 41 passed, 0 failedcargo test -p ledgerr-host— 49 passed, 0 failedcargo test -p ledgerr-mcp— all passed, 0 failedcargo test -p ledger-core— all passed, 0 failedhost-tray.exe(241 MB),ledgerr-mcp-server.exe(188 MB)1.7.0 → 1.8.0viacog bump --minor🤖 Generated with Claude Code