Commit Graph

  • 470598a723 fix(android): no User button on an entry without a username r-zakarya 2026-08-16 23:22:58 +01:00
  • 7218df2f6f feat(android): copy from the list, server params grouped, HTML probe r-zakarya 2026-08-16 23:16:18 +01:00
  • e85f46f501 feat(android): copy from the list, framed entries, one radius everywhere r-zakarya 2026-08-16 22:44:52 +01:00
  • 218a0dde03 fix(android): the search field stops moving, and the magnifier steps aside r-zakarya 2026-08-16 22:35:30 +01:00
  • d22089900c fix(android): the edit fields were still shaped like pills r-zakarya 2026-08-16 22:26:37 +01:00
  • 4347dba8d9 feat(android): the system bars join the gradient r-zakarya 2026-08-16 22:23:27 +01:00
  • 9bc005696d fix(android): a field should look recessed, a button raised r-zakarya 2026-08-16 22:18:16 +01:00
  • 2e2ded1146 fix(android): the Copy buttons were ellipses, not pills r-zakarya 2026-08-16 22:06:09 +01:00
  • 27a7a322d6 feat(android): the palette taken from the phone's global search r-zakarya 2026-08-16 19:47:44 +01:00
  • 1609b4d328 docs(android): Gitea as the transport, instead of hosting the endpoint r-zakarya 2026-08-16 11:36:43 +01:00
  • 40475b0204 docs(android): two open questions on the interface r-zakarya 2026-08-15 20:00:04 +01:00
  • 8f9ebb8d47 feat(android): blue instead of cyan, everywhere at once r-zakarya 2026-08-15 19:55:06 +01:00
  • 8dedcaecab fix(android): stop offering an open that cannot succeed r-zakarya 2026-08-15 19:45:25 +01:00
  • ceaba331d8 feat(android): the search field takes the shape Android uses for search r-zakarya 2026-08-15 19:38:37 +01:00
  • 5ef4987272 fix(android): a lock with no key locked the user out entirely r-zakarya 2026-08-15 19:34:05 +01:00
  • 49377b0990 fix(android): the clear cross lives beside the field, not inside it r-zakarya 2026-08-15 19:27:36 +01:00
  • aba873b9cc feat(android): follow the desktop's look, and a cross to clear the search r-zakarya 2026-08-15 19:19:22 +01:00
  • e128b85658 docs(android): the two safety rules, as they actually stand now r-zakarya 2026-08-15 18:53:47 +01:00
  • 301a999596 feat(android): a short grace period before backgrounding locks the vault r-zakarya 2026-08-15 18:51:57 +01:00
  • 773e47330f fix(android): ask for the device credential alone when no biometric is enrolled r-zakarya 2026-08-15 18:35:30 +01:00
  • d472dd4ef8 fix(android): encryption cannot see a dead key, so stop pretending it can r-zakarya 2026-08-15 18:21:50 +01:00
  • e4a50df64d fix(android): protection catches up with the cache, and a dead key gets replaced r-zakarya 2026-08-15 18:11:48 +01:00
  • fa424a3bc7 docs(android): section 1 is complete, six checks out of six r-zakarya 2026-08-15 18:03:09 +01:00
  • bc89ec0010 i18n(android): the interface speaks English, like the desktop app r-zakarya 2026-08-15 17:59:31 +01:00
  • b900b5b609 fix(android): one frame around the search field, not two r-zakarya 2026-08-15 17:50:20 +01:00
  • e8e305b6fd feat(android): recolour the two native controls, and hide the log by default r-zakarya 2026-08-15 17:43:52 +01:00
  • 5a2774974a fix(android): the folder panel closes when you tap beside it r-zakarya 2026-08-15 17:37:43 +01:00
  • 09f108aa8d feat(android): the last two styled controls give way r-zakarya 2026-08-15 17:26:02 +01:00
  • e5eb91cd3f feat(android): paint the interface instead of wearing a style r-zakarya 2026-08-15 16:55:54 +01:00
  • 25dc524585 feat(android): the launch screen shows the padlock, not Delphi's flame r-zakarya 2026-08-15 16:21:26 +01:00
  • fdeb870541 chore: track the launcher icons, the blanket *.png rule was swallowing them r-zakarya 2026-08-15 16:12:08 +01:00
  • 202b93c246 feat(android): a padlock icon instead of Delphi's default r-zakarya 2026-08-15 16:11:31 +01:00
  • 65e6ba6a54 fix(android): draw the search hint ourselves, TextPrompt needs a style object r-zakarya 2026-08-15 16:04:01 +01:00
  • 31ee1b45c6 fix(android): build the list rows by hand, styles cannot be trusted with them r-zakarya 2026-08-15 15:55:00 +01:00
  • b5ccf63a85 feat(android): Skia renders the text, so Arabic reads properly r-zakarya 2026-08-15 15:44:43 +01:00
  • 49efccdd59 feat(android): settings live on the device, dark theme, and the app is called Coffre r-zakarya 2026-08-15 15:33:56 +01:00
  • 861d721513 docs(android): plan caught up with what the device confirmed r-zakarya 2026-08-15 15:23:04 +01:00
  • 3a9248c6c7 fix(android): a fresh container per entry, and the filename left to read in its own direction r-zakarya 2026-08-15 15:21:19 +01:00
  • bbb44a3787 fix(android): sync went through the door it should have knocked on, and rows kept flipping r-zakarya 2026-08-15 15:15:56 +01:00
  • 4c6376edbf fix(android): the detail rows were upside down r-zakarya 2026-08-15 15:09:08 +01:00
  • 7229028060 feat(android): show attachments, without carrying their bytes r-zakarya 2026-08-15 15:05:08 +01:00
  • 7939d268f3 feat(android): mark the clipboard sensitive, and lock after 3 min idle r-zakarya 2026-08-15 14:58:27 +01:00
  • 0e39cf7e56 docs(android): the expired auth window no longer costs the cache r-zakarya 2026-08-15 14:37:56 +01:00
  • f3a8631440 docs(android): the cache chain is verified on device r-zakarya 2026-08-15 14:28:58 +01:00
  • c4d2bdde73 fix(android): OAEP masks with SHA-1, which is the only MGF1 the key allows r-zakarya 2026-08-15 14:17:26 +01:00
  • 8dc0840e03 fix(android): declare FMX's biometric activity, and stop LoadVault from deleting the cache r-zakarya 2026-08-15 14:11:20 +01:00
  • 1dc4f3bdb6 feat(android): wrap the cache key with an asymmetric Keystore pair r-zakarya 2026-08-15 14:00:35 +01:00
  • 09048410e1 fix(android): report the biometric failure instead of destroying the cache r-zakarya 2026-08-15 13:42:07 +01:00
  • 5187da3070 docs(android): the adb reverse tunnel dies with the USB link r-zakarya 2026-08-15 13:00:28 +01:00
  • 57a295ad36 fix(android): set the biometric strengths before asking what the device can do r-zakarya 2026-08-15 12:48:43 +01:00
  • 4258e9b559 fix(android): USE_BIOMETRIC, and never lock the cache behind a door we cannot open r-zakarya 2026-08-15 12:09:29 +01:00
  • 6d31bf83d2 docs(android): the res tree comes from any IDE build, not the 32-bit one r-zakarya 2026-08-15 11:54:29 +01:00
  • 4805c9ac31 docs(android): building and installing the APK without the IDE r-zakarya 2026-08-15 11:52:44 +01:00
  • 9a4170c44f feat(android): folder filter, icons, sort, template, updated_at, FLAG_SECURE r-zakarya 2026-08-15 11:23:29 +01:00
  • 3bb6f6f903 feat(android): show first, sync after r-zakarya 2026-08-15 11:14:44 +01:00
  • ba0d3c1d3c docs(android): plan of the remaining work r-zakarya 2026-08-15 10:56:49 +01:00
  • acf4b466e0 fix(android): breathing room under the last detail row r-zakarya 2026-08-15 10:50:07 +01:00
  • 20ba2438df feat(android): TOTP codes and custom fields in the detail screen r-zakarya 2026-08-15 10:35:09 +01:00
  • 3232f6f163 fix(android): the ETag dies with the plaintext it describes r-zakarya 2026-08-15 06:04:43 +01:00
  • 0ddfe5c5fd feat(crypto): wire AES-GCM and PBKDF2 to Windows CNG r-zakarya 2026-08-15 05:59:36 +01:00
  • bf7aac478b feat(android): read-only viewer - unlock, search, detail r-zakarya 2026-08-15 01:19:47 +01:00
  • 4effc3611d feat(android): prefill the sync password from a local, untracked include r-zakarya 2026-08-15 01:04:08 +01:00
  • 3cbfd54c26 fix(android): KeyStore.load takes a LoadStoreParameter, not an Object r-zakarya 2026-08-15 00:56:22 +01:00
  • 60b806536a fix(android): the prompt field is CancelButtonText, not NegativeButtonText r-zakarya 2026-08-15 00:51:24 +01:00
  • 1e7477cdd6 fix(android): overload both Cipher.init declarations, restore CRLF line endings r-zakarya 2026-08-15 00:49:37 +01:00
  • 9649dac7b2 feat(android): protect the local vault with biometric or device credential r-zakarya 2026-08-15 00:42:50 +01:00
  • 5fdb7f914e feat(android): keep the decrypted vault locally under an Android Keystore key r-zakarya 2026-08-15 00:37:59 +01:00
  • 3c1525e46f feat(android): end-to-end read path validated on device, add the container diagnostic r-zakarya 2026-08-15 00:31:01 +01:00
  • a641669150 fix(android): keep the ETag only when the decryption that followed succeeded r-zakarya 2026-08-15 00:06:30 +01:00
  • ccab734d61 fix(android): re-enable the fetch button on every exit path, prefill the test parameters r-zakarya 2026-08-14 23:47:54 +01:00
  • d9cadf2cac fix(android): create the top-aligned controls in reverse so they appear in order r-zakarya 2026-08-14 23:41:41 +01:00
  • 8796bb341d feat(android): HTTP client for the sync endpoint, with ETag reuse r-zakarya 2026-08-14 23:37:06 +01:00
  • c684d9073f feat(android): adopt the platform PBKDF2, record the timing and what follows from it r-zakarya 2026-08-14 23:30:15 +01:00
  • 307bbeae83 chore: ignore the generated project resource too r-zakarya 2026-08-14 23:23:28 +01:00
  • ffe203a1ef chore: untrack the Android build output r-zakarya 2026-08-14 23:23:16 +01:00
  • 4cc79a5216 fix(android): declare KeySpec so the native PBKDF2 call resolves, and report why it fails r-zakarya 2026-08-14 23:22:56 +01:00
  • c607e26c4a feat(android): measure the native PBKDF2 against the vector instead of guessing r-zakarya 2026-08-14 18:33:56 +01:00
  • 386bf74a2a feat(android): crypto self-test harness on the new FMX project r-zakarya 2026-08-14 18:29:12 +01:00
  • 02d89c58d2 feat(android): container crypto unit plus a known-answer test vector r-zakarya 2026-08-14 18:04:39 +01:00
  • 90ac75525a fix(sync-php): read Authorization via getallheaders and tolerate ETag forms r-zakarya 2026-08-14 17:58:48 +01:00
  • ec4fa433a9 feat(sync): read-only PHP endpoint serving the encrypted snapshot r-zakarya 2026-08-14 17:41:34 +01:00
  • c74b708b39 fix(import): count the trash when deduplicating by uuid r-zakarya 2026-08-07 17:35:40 +01:00
  • ebcd75fd2e feat(backup): include the trash in exports and auto-backups r-zakarya 2026-08-07 15:04:41 +01:00
  • 125cb11756 docs(tests): mark I6 validated — every scenario now passes r-zakarya 2026-08-07 14:55:47 +01:00
  • afe47259d7 fix(unlock): focus the username first when it is empty, on the quick-search path too r-zakarya 2026-08-07 14:53:36 +01:00
  • 476d6660ad fix(hotkeys): a locked vault must not hand the foreground back r-zakarya 2026-08-07 14:48:12 +01:00
  • d242f09c53 docs(tests): mark F1/F3/F4 validated, section F complete r-zakarya 2026-08-07 12:50:14 +01:00
  • c3c6bce406 fix(sync): a trashed entry is no longer resurrected as a duplicate r-zakarya 2026-08-07 12:38:07 +01:00
  • b9b098fe12 fix(editor): fire an input event when the generator fills the password r-zakarya 2026-08-07 12:03:42 +01:00
  • 485dd3631e docs(tests): E5 validated by code inspection, distinguish it from E9 r-zakarya 2026-08-07 11:46:18 +01:00
  • c1e5d14eac docs(tests): mark H2-H6 validated r-zakarya 2026-08-07 11:02:05 +01:00
  • af1157f3b0 docs(tests): note that the trash is silently excluded from every backup path r-zakarya 2026-08-03 00:41:15 +01:00
  • 5236aa8b98 fix(busy): gate the document-level shortcuts too r-zakarya 2026-08-03 00:04:56 +01:00
  • a36164174e docs(tests): record the four secret-consuming paths and how to test them r-zakarya 2026-08-03 00:02:27 +01:00
  • c8518c806d docs(tests): mark F2 validated, note that the file existing proves nothing r-zakarya 2026-08-02 23:55:04 +01:00
  • f8e78f6940 docs(tests): add E9, the renderer memory check that caught the backup password r-zakarya 2026-08-02 23:37:07 +01:00
  • 5ce18e7ab5 fix(prefs): stop pulling secret prefs into the renderer just to render the UI r-zakarya 2026-08-02 23:21:03 +01:00
  • 3c14836b15 docs(tests): add D6 for the sticky header spacing r-zakarya 2026-08-02 00:11:06 +01:00
  • 7074e7ff93 fix(list): keep the header gap constant when it sticks r-zakarya 2026-08-02 00:09:33 +01:00
  • ecaa226354 docs(tests): record that D5 needs checking in all three view modes r-zakarya 2026-08-02 00:06:09 +01:00