Skip to content

Protect workspace data and harden import, snapshots and history rendering - #14

Draft
flankero-dev wants to merge 6 commits into
mainfrom
audit/portfolio-hardening-2026-10-18
Draft

flankero-dev wants to merge 6 commits into
mainfrom
audit/portfolio-hardening-2026-10-18

Conversation

@flankero-dev

@flankero-dev flankero-dev commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Storage errors could appear saved, a damaged saved copy could be overwritten, and failed snapshot refreshes left stale data actionable. This PR adds explicit persistence/recovery feedback, pre-write version checks, snapshot diffs and confirmations, strict date/Unicode validation, bounded history and draft preservation. It also fixes Windows static assets, path/symlink containment, malformed UTF-8, invalid SQLite state and WebKit long-assignee overflow.

Verification completed on head 90765909eaf98d8ea1784c5b6666d7e32dc1e787:

  • Final CI: all four jobs pass — Chromium on Linux/Windows, Firefox and WebKit on Linux, Node 24.
  • 71 unit tests; format, lint, build, existing browser suites, 18 audit scenarios and four axe states pass. CI artifacts contain screenshots and JSON.
  • 30,000 history entries: local median dialog latency 4,061 → 216 ms, or 20,692 → 596 ms with 4× CPU emulation (seven samples; exploratory). Full history remains exportable.
  • All S01–S21 dispositions and reproduction commands: audit notes. The owner's handoff contains the combined 49-entry register, before failures, synthetic fixtures, performance series and final CI evidence.

Limits: localStorage cannot provide atomic cross-process CAS; SQLite snapshots retain transactional ETags. Real screen readers, physical mobile devices and native browser zoom remain unverified; CSS zoom/axe are not WCAG certification. Firefox/WebKit clipboard checks use an explicitly labelled double. Public-demo smoke covers the existing baseline only.

Compatibility: no SQLite schema/version migration. Historically accepted ambiguous dates/unsafe identifiers now fail validation with raw recovery rather than guessed migration. Back up JSON and SQLite before upgrade/rollback; older code restores weaker guards. See decisions.

Ready for owner review; kept as a draft. No merge or production deployment has been performed or authorized. Merge may start the existing deployment workflow.

This branch has not been deployed

No deployments
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