feat(phase12): blockchain frontmatter filters — network, wallet_address, payment_status
Core filter layer: - lib/list-notes.mjs: filterNotesByListOptions now accepts network, wallet_address, payment_status; runFacets returns networks[] and wallets[] in addition to existing facets - lib/keyword-search.mjs: noteRecordFromExportPayload propagates network, wallet_address, tx_hash, payment_status from frontmatter; frontmatterSearchStrings includes all blockchain fields in keyword match haystack (network, wallet_address, tx_hash, payment_status, currency, direction, air_id)
Hosted facets: - hub/gateway/note-facets.mjs: deriveFacetsFromCanisterNotes now returns networks[] and wallets[]
Gateway list route: - hub/gateway/server.mjs: gatewayProxyGetNotesList accepts network, wallet_address, payment_status query params; strips them before forwarding to canister (opaque frontmatter); applies blockchain filters client-side on the fetched note set (same pattern as scope filter)
Hub UI: - web/hub/index.html: add #filter-network and #filter-wallet selects (hidden until vault has notes with the respective frontmatter) - web/hub/hub.js: wire filterNetwork/filterWallet el refs; loadFacets populates and shows/hides blockchain dropdowns based on facets data; renderFilterChips adds net: chips per network and status: chips (pending/settled/failed) when vault has any blockchain notes; applyVaultListFilters applies network/wallet_address/payment_status client-side; loadNotes passes blockchain params to API - web/hub/hub.css: .chip-blockchain tint for visual distinction of blockchain chips
No Motoko canister changes required — frontmatter is stored as opaque JSON. Ops: redeploy gateway + static Hub for hosted parity.
0 comments
muse hub commit comment sha256:3f3785320a4305cd6b1b1494cc86ae588b14ba1a9fdc1e231f4d62e542fd4c87 --body "your comment"
No comments yet. Be the first to start the discussion.