adlee-was-taken
af050f176c
docs(plan): Plan 1C-γ₂ — device registration + trash + history + caps
...
13 tasks, bottom-up layering:
1. WASM bindings (generate_device_keypair, get_field_history)
2. Shared types + messages
3-5. Service worker handlers (devices, trash, field history)
6-8. Popup screens (trash, devices, field-history)
9. Item detail "View history" link
10. Vault settings attachment cap
11. Popup navigation wiring
12. Setup wizard device name step
13. Manual browser testing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-04-26 15:39:19 -04:00
adlee-was-taken
71c182af9a
fix(ext/shared): correct AttachmentCaps field names to match Rust core
...
The previous commit (f963ae3 ) used per_item_max_bytes and per_vault_*_max_bytes
which don't match the Rust core's struct (per_item_max_count and
per_vault_*_cap_bytes). Also fixes the per-item semantics: it's a COUNT of
attachments per item, not a byte sum.
Spec and plan docs updated in-place so future Task 7 cap-enforcement
implementation uses the correct names + semantics.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-25 09:42:51 -04:00
adlee-was-taken
0589fe3123
docs(plan): Plan 1C-γ₁ — attachments + Document type implementation
...
11 tasks, ~10 commits. Bottom-up layering:
- T1: tighten AttachmentCaps type
- T2: GitHost interface extension (putBlob/getBlob/deleteBlob)
- T3: GitHubHost impl with Git Data API fallback + tests
- T4: GiteaHost impl + tests
- T5: SW vault helpers (addAttachmentToItem, removeAttachmentsFromItem)
- T6: SW router handlers (upload/download_attachment) + tests
- T7: shared attachments-disclosure component + CSS + tests
- T8: wire disclosure into 6 type forms + 📎 list indicator
- T9: Document type form + signature-block detail + CSS + tests
- T10: dispatcher routes Document
- T11: build + verify + manual smoke
Test count target: 145 (was 128 + ~17 new across git-host, router,
disclosure, document.save).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-25 01:52:20 -04:00
adlee-was-taken
3c0f8d2c5c
docs(plan): generator UX redesign — inline panel + ✨ trigger
...
4 tasks, ~3 commits. Task 1 polishes labels (lowercase + gold *).
Task 2 git-mvs the popover module to generator-panel. Task 3 rewrites
the panel with new API (parent + trigger + context), updates both
callers (login.ts, settings-vault.ts) for ✨ + inline mount, swaps
CSS, adapts existing tests + adds 3 new ones (aria-expanded, auto-gen,
Escape). Task 4 verifies build + tests + manual smoke.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 23:13:43 -04:00
adlee-was-taken
b5743efa67
docs(plan): logo refresh + extension palette shift implementation
...
8 tasks, 7 commits, no worktree. Tasks 1-3 build assets; Task 4 sweeps
styles.css palette; Task 5 renames sig-block--blue to --gold; Tasks 6-7
sweep inline colors in 6 TS files + setup.html; Task 8 verifies.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 21:46:23 -04:00
adlee-was-taken
2ca563a8cd
docs: Plan 1C-β₂ (custom fields + settings + generator UI) implementation plan
...
13 tasks across 5 slices + pre-flight + acceptance. Follows α/β₁'s
cadence — each task one commit, each step 2-5 minutes, complete
code in every step.
Slice 1 — Custom-fields detail rendering (Tasks 1-2):
renderSections helper + 6-type-module integration.
Slice 2 — Custom-fields edit rendering (Tasks 3-4):
renderSectionsEditor + wireSectionsEditor + generateFieldId
helpers, disclosure integration across all 6 forms, per-type
save-shape smoke test.
Slice 3 — Vault-settings SW plumbing (Tasks 5-8):
tighten VaultSettings TS types; add get/update_vault_settings
popup-only messages + router tests; add generate_passphrase if
missing; fetch vault_settings on popup unlock.
Slice 4 — Generator inline popover (Tasks 9-10):
generator-popover component + 7 unit tests; Login gen-btn
integration + teardown hook.
Slice 5 — Settings view + ⚙ picker (Tasks 11-13):
settings-vault component + 5 tests; ⚙ picker → device/vault
routes; final lint greps + tag.
Expected test delta: 84 → ~121 Vitest.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 00:09:25 -04:00
adlee-was-taken
b80b322853
docs: Plan 1C-β₁ (typed-item forms) implementation plan
...
10 tasks across 5 slices + pre-flight + acceptance, mirroring the
α plan's cadence. Each task is a single commit; each step 2-5 min.
Slice 1 — Rust Steam encoding fix (Task 1, 4 tests).
Slice 2 — Shared field helpers + Login refactor (Tasks 2-3).
Slice 3 — SecureNote + Identity (Tasks 4-5).
Slice 4 — Card + Key (Tasks 6-7).
Slice 5 — Totp incl. Steam toggle (Task 8).
Slice 6 — "+ New" picker + final acceptance (Tasks 9-10).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-23 18:47:32 -04:00
adlee-was-taken
c03a492ee3
docs: Plan 1C-α (extension foundation) implementation plan
...
28 tasks across 6 slices + pre-flight + acceptance, following the 1C-α
design spec (a1d733d/ad6d8af). Each task is a single commit; each step
is 2-5 minutes of work. Design choices locked in:
- Slice 1 (Tasks 1-3): WASM artifact rebuild (replace stale idfoto_wasm)
- Slice 2 (Tasks 4-6): shared TS types + message unions + base32 util
- Slice 3 (Tasks 7-10): session.ts, vault.ts, transitional index.ts
- Slice 4 (Tasks 11-15): split router + Vitest + sender-check matrix
- Slice 5 (Tasks 16-20): WAR cleanup, setup-via-tabs, closed Shadow DOM
for capture/icon/picker/ack, popup captured-tab snapshot
- Slice 6 (Tasks 21-27): popup rename + Login-parity + zxcvbn + manual
cross-browser verification
- Slice 7 (Task 28): acceptance checks (cargo test, build, lint greps)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-20 19:28:13 -04:00
adlee-was-taken
76f34bfcf5
chore: remove stray vault files from Plan 1B + add plan doc
...
A Task 6 implementer subagent ran `relicario init` inside the worktree
root during manual testing and committed the resulting vault skeleton
(.relicario/, manifest.enc, settings.enc) plus overwrote .gitignore.
None of these should be in the source repo.
Restores the original .gitignore (adds reference.jpg and ref.jpg to it)
and checks in the Plan 1B design doc that describes the work just merged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-20 18:50:37 -04:00
adlee-was-taken
519a6f0e36
chore: rename project from idfoto to relicario
...
Sweeping rename across crates, CLI binary, WASM bindings, extension, docs,
and vault metadata paths. Git remote updated to relicario.git.
- crates/idfoto-{core,cli,wasm} -> crates/relicario-{core,cli,wasm}
- IdfotoError -> RelicarioError
- IDFOTO_IMAGE env var -> RELICARIO_IMAGE
- ~/.config/idfoto -> ~/.config/relicario
- .idfoto/ vault metadata dir -> .relicario/ (breaking; pre-release)
- Binary name idfoto -> relicario
- Extension wasm module idfoto_wasm -> relicario_wasm
- Storage key idfotoSettings -> relicarioSettings
- All doc filenames and content references updated
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-19 16:47:02 -04:00
adlee-was-taken
20ff1d9f47
feat: add logo and polish icon presentation
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-19 16:44:04 -04:00
adlee-was-taken
be6928c0d1
docs: add Plan 1A — Rust core typed-item implementation
...
31 bite-sized TDD tasks covering: ID types, time helpers, error rewrite,
crypto fixes (length-prefix KDF, Zeroize, NFC, VERSION_BYTE 0x02), seven
typed cores with per-type modules, Field/FieldKind/FieldValue/Section,
Item envelope with field_history + soft-delete, AttachmentRef + content-
addressed encrypt/decrypt, Manifest with schema_version 2, VaultSettings,
CSPRNG generators with safe charset, BIP39 + zxcvbn strength gate, vault
helpers, retention pruning, full integration test suite.
idfoto-cli is expected to fail compilation at the end of this plan;
Plan 1B fixes it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-19 09:24:27 -04:00
adlee-was-taken
051c98dece
docs: add Firefox extension port implementation plan
...
3 tasks: Firefox manifest + webpack config, environment-aware
WASM loading, and build integration with manual testing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 13:11:39 -04:00
adlee-was-taken
68f2908156
docs: add credential capture implementation plan
...
5 tasks: types/messages, service worker handlers, capture content
script with bar/toast prompts, settings popup view, and integration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 12:20:28 -04:00
adlee-was-taken
0c800bcd4f
docs: add vault initialization wizard implementation plan
...
6 tasks: WASM embed function, setup HTML, wizard TypeScript,
webpack/manifest updates, and build integration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 10:52:51 -04:00
adlee-was-taken
822547f349
docs: add Task 0 for heavy Rust code documentation
...
Adds a pre-implementation task to thoroughly document all existing
Rust code in idfoto-core and idfoto-cli with doc comments explaining
the crypto pipeline, steganography algorithm, and vault data model.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 00:15:33 -04:00
adlee-was-taken
01d5fd5d0d
docs: add WASM + Chrome MV3 extension implementation plan
...
11 tasks covering core data model changes, WASM crate with TOTP,
extension scaffolding, git API layer, service worker, popup UI
with terminal aesthetic, content script autofill, and build integration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 00:14:03 -04:00
adlee-was-taken
4d95899606
chore: add Cargo.lock, design spec, and implementation plan
2026-04-11 23:15:20 -04:00