吴佳浩Alben and 吴佳浩
d73ed6fce2
fix(domain): preserve retryable capability failures through redaction ( #2494 )
...
redactExplicitFailure rebuilds each typed failure field by field so explicit
literals are removed while the projected code stays the same. The rebuild for
AnalysisCapabilityUnavailableError carried providerId, operation, reason and
userMessage but not retryable, and the constructor defaults that field to false.
Redacting a transient capability failure therefore made it permanent and changed
the remediation shown to the caller.
Pass the field through with the same conditional-spread shape used for
userMessage. The constructor recomputes retryable from cleanupIncomplete, and
cleanup is already part of the reconstructed context, so a value that was true
before redaction stays true and a false value stays absent.
Verified with 66 error projection, access-denied, redaction and capture-failure
tests, check:fast and verify:test-discovery on macOS arm64. The regression test
failed with "expected false to be true" before the change.
Co-authored-by: 吴佳浩 <wujiahao@supremind.com >
2026-10-13 14:43:10 +08:00
2bf3663f65
feat(browser): inspect historical web network captures ( #992 )
...
* feat(browser): inspect retained HAR and mitmproxy capture evidence
Add independent offline format adapters, inline CLI/MCP evidence, bounded
owned decoder processes, and real producer verification.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): preserve capture boundaries during cancellation and decoding
Honor cancellation during owned-command cleanup, retain opaque HAR
extension content, and clean verifier resources on every failure path.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): exclude sensitive capture fields across representations
Normalize known native transport URLs for both bytes and strings, including backups. Exclude explicitly sensitive text fields with null so redaction markers cannot reintroduce declared literals. Cover both provider identities in catalog conformance.
Refs #882
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
* fix(browser): exclude sensitive capture identities and bound diagnostics
* fix(browser): validate excluded HAR subtrees before projection
* fix(browser): distinguish capture input limits from decoder failures
* fix(browser): preserve decoder failure categories
* fix(browser): validate excluded native credential values
* test(browser): report capture verifier assertions directly
* fix(browser): classify native representation failures precisely
* fix(browser): exclude URL userinfo after header whitespace
* fix(browser): preserve capture evidence and failure boundaries
* fix(browser): exclude sensitive literals from capture limitations
* test(browser): check limitation values without JSON syntax
* fix(browser): preserve acquisition integrity and exclude selection diagnostics
* fix(browser): preserve capture acquisition and declaration boundaries
* fix(mcp): project sensitive capture argument validation
* fix: preserve capture bytes and prelaunch cancellation
* fix(browser): exclude sensitive HAR record ancestry
* fix(browser): preserve transport URL and parameter exclusions
* fix(browser): preserve numeric redaction and canonical capture provenance
* fix(browser): cover derived capture values and ownership preparation deadlines
* fix(browser): exclude explicitly sensitive artifact digests
* chore: regenerate generated metadata
* fix(browser): reject lossy HAR member normalization
* test(browser): assert the advertised unsupported-profile outcome
* fix(browser): preserve JSON visitor nesting failure locations
* fix(browser): exclude explicitly sensitive native source ranges
---------
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com >
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-08 07:53:41 +08:00