Implement native entry creation and editing #49
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Provide native create/edit/generate workflows over storage-owned structured documents.
Scope
crates/storage.Acceptance criteria
Implemented in
ae64ce4and pushed tomain.The iPhone app now creates and edits complete storage-owned
EntryDocumentdrafts. Rust owns field identity/order, dynamic and multiline serialization, password generation and validation, recipient resolution, encryption, atomic stale-write detection, automatic Git commits, and recoverable save state. The native UIKit form uses secure text entry with explicit reveal, native delete/reorder controls, add-field and storage-backed generation actions, dirty-form discard confirmation, and explicit conflict recovery without overwriting the draft. Unknown non-UTF-8 values and repeated fields are preserved losslessly.Verified:
cargo fmt --all -- --checkRUSTFLAGS="-D warnings" cargo check --workspace --all-targetscargo clippy --workspace --all-targets -- -D warningscargo test --workspacexcodegen generateRelease-iphoneosbuild using the existing app icon and team provisioningThe Rust regression test covers dynamic/repeated fields, long multiline comments, add/remove/reorder, generated replacement passwords, cancellation without mutation, stale-write rejection, failure retention, and non-UTF-8 preservation using local compatibility fixtures only (no live server).
Deferred under the
untestedlabel because no unlock/user interaction is available:UIKit choices follow Apple guidance for text fields/text views, alerts/action sheets, adaptive dismissal, and native table editing/reordering:
Non-destructive validation completed on 2026-08-12. In the iPhone simulator, the create editor opened with its dynamic entry fields; a disposable dirty draft was canceled and no entry was saved. Existing edit, ordering, generation, cancellation, and conflict-retention behavior also passed in the current isolated Rust workspace tests. No password-store mutation was retained. Removing the untested label.