Skip to content

Harden completion paths and history privacy under concurrent sessions - #240

Open
raiseCatError wants to merge 1 commit into
feature/152-safe-command-correctionsfrom
fix/v08-intelligence-hardening
Open

raiseCatError wants to merge 1 commit into
feature/152-safe-command-correctionsfrom
fix/v08-intelligence-hardening

Conversation

@raiseCatError

Copy link
Copy Markdown
Owner

Harden the cumulative command-intelligence implementation before acceptance review:

  • Keep nested path components in native completion capture context while retaining local fuzzy filtering and cached replacement metadata.
  • Yield during imported-history identity hashing/indexing, not only parsing. Treat incompatible successful Atuin output as a Native fallback.
  • Persist independent immutable deletion-ID tombstones so concurrent session frontends cannot overwrite each other’s deletions. Earlier stack JSON deletion IDs remain readable and union with tombstones; no command text is persisted. Existing session journal schema remains additive and unchanged.
  • Report leading-space history ineligibility from zsh itself so detached archive/replay paths preserve the privacy boundary.

Dependency: #239; merge after it. Refs #140, #141, #143, #144.

Validation: build, typecheck, benchmark-script types, git diff --check and full suite (714 passed). Focused tests exercise real native nested-path capture, 100k yielding/cancellation, two independent frontend deletion writers, earlier JSON compatibility, malformed Atuin fallback, and real-zsh leading-space/unexported HISTORY_IGNORE eligibility. Import hashing/indexing 100k p50/p95 107.08/121.41 ms total wall time, yielding every 1,024 records. Node 22/26 cumulative CI dispatched separately. Physical terminal QA remains pending.

Verification note: the RTK-filtered final suite command returned exit 1 with an empty redirected log, so it was inconclusive. Repeated using rtk proxy to preserve raw output; all 714 tests passed, with no test assertion failure reported in that raw run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant