Fix security, data integrity, and crash bugs#22
Open
kaiaiagent wants to merge 1 commit intopeteromallet:mainfrom
Open
Fix security, data integrity, and crash bugs#22kaiaiagent wants to merge 1 commit intopeteromallet:mainfrom
kaiaiagent wants to merge 1 commit intopeteromallet:mainfrom
Conversation
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
confirmnow storesfull_name_scanned: boolinstead of the plaintext name in~/.dataclaw/config.jsonconfirmkeeps stage atreview(notconfirmed) when PII scan has findings, so the publish gate actually enforces remediationdir_nameis already a hash) were being hashed again, silently dropping all their sessions. Now detects hash-shaped names via_is_kimi_project_hash()_normalize_timestampassumed milliseconds — timestamps in seconds (e.g. from OpenCode SQLite) produced 1970 dates. Added> 1e12heuristic_update_time_boundsassumed chronological order — now uses min/max so out-of-order entries produce correct time bounds_safe_int()— string or None token values would crash with TypeError_extract_user_contentcrashed on non-dict content blocks — addedisinstance(b, dict)guard_find_export_filesilently ignored nonexistent user-specified paths — now errors immediately with the path_handle_configfalsiness check —--repo ""was silently ignored; fixed tois not None_source_label()for all 7 sources.stat()race conditions in discovery functions when files disappear between glob and stat_scan_piiTest plan
test_confirm_with_pii_findings_stays_in_reviewverifies stage gatingtest_export_push_accepts_confirmed_full_name_scanverifies the boolean-based re-validation works end-to-enddataclaw confirmwith PII present and verify publish is blocked until clean re-export🤖 Generated with Claude Code