2025-06-26 - 2026-06-26
Overview
55 pull requests merged by 1 user
Merged
#139 feat(libra): expense/income form UI fixes
Merged
#138 feat(libra): guide expense description toward categorization
Merged
#131 feat(events): handle free tickets in the purchase flow
Merged
#130 feat(hub): hide standalones not provisioned on this deploy
Merged
#128 feat(layout): re-enable "Back to hub" with a sticky sheet footer
Merged
#127 fix(events): collapse own-event draft + relay copy into one card
Merged
#116 fix(events): clarify scan-tickets "Remaining" stat as "Not scanned"
Merged
#114 feat(ui): UI tweaks round 3
Merged
#119 fix(events): keep event-detail ticket counts live after a purchase
Merged
#115 feat(events): calendar popup respects the selected category filter
Merged
#126 fix(events): publish bookmarks with monotonic created_at (#122)
Merged
#125 fix(events): key the events store by addressable coordinate (#121)
Merged
#124 chore(test): add vitest runner + smoke test
Merged
#113 style(events): frosted-glass calendar popup that shows the feed through it
Merged
#112 fix(events): decrement the live like count on un-like
Merged
#109 fix(wallet): stop double-deducting balance on outgoing payments
Merged
#111 feat(events): real-time favoriting + live like count + post-purchase refresh
Merged
#110 feat(events): calendar date-picker popup, remove calendar page, My Tickets filtering
Merged
#105 feat(ui): cosmetic tweaks — profile pencil, pills, search, ticket count, map icon, avatar trigger, no overlay animations
Merged
#104 feat(branding): per-app banner + per-brand default theme via brand.json
Merged
#103 fix(wallet): accept uppercase QR-scanned BOLT11 invoices on send
Merged
#102 feat(activities): event name on My tickets + organizer on cards
Merged
#91 feat(activities): UI tweaks across feed, detail, hosting, calendar, scan, shell
Merged
#100 feat(nix): lib.mkWebapp accepts extraEnv attr
Merged
#99 fix(nix): pin pnpm bits to flake's own nixpkgs
Merged
#98 feat(nix): flake.nix exposing lib.mkWebapp
Merged
#96 feat(branding): brand kit architecture (Phase 1)
Merged
#94 refactor(events): rename activities module to events + wire VITE_APP_NAME for per-deployment branding
Merged
#93 refactor(libra): redesign transactions list status + type encoding
Merged
#92 feat(libra): show voided transactions in standalone
Merged
#90 feat(webapp): add color scheme switcher with 7 palettes
Merged
#89 fix(activities): surface statsError on the door-scanner page
Merged
#88 feat(base): phase-2 bucket-B migration via signEventViaLnbits
Merged
#87 fix(activities): route ticket scanner through HTTP, not nostr-transport RPC
Merged
#84 chore(api): remove User.prvkey field + thread-through helpers (Q1.2 Option b)
Merged
#83 chore(activities): reroute CreateActivityDialog through TicketApiService.createEvent
Merged
#82 chore(base): delete nostr-metadata-service + retire webapp-side kind-0 broadcast paths
Merged
#81 chore(nostr-feed): delete legacy ScheduledEventService duplicate
Merged
#80 chore(nostr-feed): delete dead-code ReactionService + useReactions duplicates
Merged
#77 feat(activities): hide past events by default + "Past events" filter chip
Merged
#76 feat(activities): backend-truth counts + scanned list, tabs + popup result on Scan Tickets
Merged
#73 feat(activities): organizer ticket scanner over Nostr transport
Merged
#71 feat(activities): ticket purchase + Nostr-driven inventory sync
Merged
#69 feat(activities): notification config on event create + edit
Merged
#68 feat(activities): payment-rails pattern + provider-aware checkout
Merged
#66 fix(activities): stamp local tz offset on event datetimes before submit
Merged
#64 fix(activities): toast on logged-out Create tap instead of opening dialog
Merged
#63 chore(deps): bump nostr-tools to ^2.23.3 to match lnbits
Merged
#62 build: add workbox-window as explicit devDependency
Merged
#61 build: switch from npm to pnpm
Merged
#54 feat(restaurant): customer-facing restaurant bundle (v1)
Merged
#52 feat(layout): adopt unified AppShell across hub + 7 standalones (Phase B)
Merged
#51 feat(layout): unified app-shell primitives (Phase A)
Merged
#44 fix(hub): drop hub PWA install to unblock standalone PWAs (#41)
Merged
#39 feat(market): migrate order DMs to NIP-17 (NIP-44 + NIP-59)
18 issues closed from 1 user
Closed
#122 Use monotonic created_at when publishing replaceable events
Closed
#121 Key the events store by addressable coordinate (kind:pubkey:dtag), not bare d-tag
Closed
#86 Feature Request: When an app is pending, grey it out
Closed
#97 Add flake.nix exposing lib.mkWebapp
Closed
#95 Brand kit architecture: white-label PWA branding
Closed
#79 chore: delete legacy ScheduledEventService (duplicate of TaskService)
Closed
#78 chore: consolidate duplicate ReactionService (base/ vs nostr-feed/)
Closed
#72 Activities feed shows past events with no indication — hide by default + add a "Past events" filter chip
Closed
#59 Roll out client-side image compression to market + profile
Closed
#41 PWA install conflict: hub scope: '/' blocks standalone installs on same origin
Closed
#18 Standalone app: Extract marketplace module as independent PWA
Closed
#26 Adopt standalone app UI patterns in the all-in-one AIO app
Closed
#38 market: self-heal orphan stalls — re-publish kind-30017 when user has merchant but no stall on relay
Closed
#36 auth: validate URL-supplied token before persisting + tighten guards to require populated user
Closed
#19 Standalone app: Extract wallet module as independent PWA
Closed
#20 Standalone app: Extract chat module as independent PWA
Closed
#27 Make event end date optional with sensible defaults
Closed
#8 Market item images load slowly - image optimization may be missing
83 issues created by 1 user
Opened
#1 Feature: Persistent Task List (Work Orders)
Opened
#2 Feature: PIN security for outgoing wallet payments
Opened
#3 Feature: Due Dates for Persistent Tasks
Opened
#4 Feature: Task Rewards (Lightning Bounties)
Opened
#5 Feature: Create invoices in fiat currency (EUR, USD, etc.)
Opened
#6 New device shows notifications for all existing chats
Opened
#7 Discussion: What properties should a task have?
Opened
#8 Market item images load slowly - image optimization may be missing
Opened
#10 Migrate private messaging from NIP-04 to NIP-17
Opened
#11 Security: Harden Nostr private key (prvkey) handling
Opened
#12 Send Lightning invoice to chat contact
Opened
#13 feat(forum): future features (media upload, NIP-72 spaces, bookmarks, profiles, …)
Opened
#14 Optimize .env with domain-based defaults for easier deployment
Opened
#15 forum: add search across posts, comments, and submissions
Opened
#16 Replace LNbits backend with Lightning.Pub
Opened
#17 forum: add NIP-57 zap support to submissions and comments
Opened
#18 Standalone app: Extract marketplace module as independent PWA
Opened
#19 Standalone app: Extract wallet module as independent PWA
Opened
#20 Standalone app: Extract chat module as independent PWA
Opened
#21 Activities: Category badge shows non-category hashtags (e.g. "OrangePillApp")
Opened
#22 Activities: Past events appearing in Upcoming tab
Opened
#23 Clean up: delete atio and cfaun branches after unified main is verified
Opened
#24 CI: auto-compute npmDepsHash on push to main
Opened
#25 Disambiguate task vs activity NIP-52 calendar events on shared relays
Opened
#26 Adopt standalone app UI patterns in the all-in-one AIO app
Opened
#27 Make event end date optional with sensible defaults
Opened
#28 Shared auth across standalone app modules
Opened
#29 Consider keeping CreateActivityDialog for unticketed/unapproved community events
Opened
#30 Add geolocation picker to event creation and map-based event discovery
Opened
#31 Forum: implement Spaces (NIP-72 communities)
Opened
#32 Notifications: per-standalone Nostr-scoped, aggregated by hub
Opened
#33 Adopt the events-style "log in to do this" toast in forum / market / tasks
Opened
#34 Operator-configurable public-vs-private mode per standalone (forum, market, tasks, activities)
Opened
#35 Pre-commit secret-scan hook: false positive on prvkey field accesses
Opened
#36 auth: validate URL-supplied token before persisting + tighten guards to require populated user
Opened
#37 security: add CSP + standard security headers in nginx (demo + prod)
Opened
#38 market: self-heal orphan stalls — re-publish kind-30017 when user has merchant but no stall on relay
Opened
#40 chat: migrate from NIP-04 to NIP-17 (NIP-44 + NIP-59 gift wrap)
Opened
#41 PWA install conflict: hub scope: '/' blocks standalone installs on same origin
Opened
#42 Recurring deep-dive: mine patterns from established open-source Nostr apps
Opened
#43 Centralize hexToUint8Array and other privkey-handling helpers
Opened
#45 Wire currency picker to a real preference store
Opened
#46 Notification badge wiring on standalone bottom-nav profile entry
Opened
#47 Desktop side-rail variant of the unified app shell
Opened
#48 Standalone → hub SSO: token handoff for cross-origin nav back to launcher
Opened
#49 Long-press-to-hub gesture as an alternative to the top-right HubPill
Opened
#50 Remove redundant per-app SettingsPage.vue views
Opened
#53 Review activity-creation affordance against p'a semana — reduce low-effort posts
Opened
#55 Cross-cutting "teams" concept: targeted tasks, scoped budgets, and shared rosters
Opened
#56 tasks: when task-create lands in the webapp, emit ["event-type", "task"] on kind 31922
Opened
#57 tasks: support custom recurrence intervals (every N days/weeks, monthly)
Opened
#58 Cross-standalone aggregator feed (new events, marketplace items, forum posts, …)
Opened
#59 Roll out client-side image compression to market + profile
Opened
#60 Organizer ticket management view (resend email, registration status, refunds)
Opened
#65 forum: post score + highlight missing after page refresh on both list and detail views
Opened
#67 Activity dateDisplay: detail double-renders same-day; cards omit end time
Opened
#70 Standardize 'sat' vs 'sats' currency string end-to-end
Opened
#72 Activities feed shows past events with no indication — hide by default + add a "Past events" filter chip
Opened
#74 Hub vite server crashes on dep-scan: "virtual:pwa-register imported by tasks-app/main.ts could not be resolved"
Opened
#78 chore: consolidate duplicate ReactionService (base/ vs nostr-feed/)
Opened
#79 chore: delete legacy ScheduledEventService (duplicate of TaskService)
Opened
#85 Feature Request: Ability to manually register someone if they've forgotten their ticket
Opened
#86 Feature Request: When an app is pending, grey it out
Opened
#95 Brand kit architecture: white-label PWA branding
Opened
#97 Add flake.nix exposing lib.mkWebapp
Opened
#101 Auto-save profile picture on selection (don't require Update Profile click)
Opened
#106 Activities: free (0-price) tickets attempt an invalid zero-amount invoice
Opened
#107 Activities: support multiple photos on event creation (like market)
Opened
#108 Activities: keywords/tags field on event creation (publish as NIP-52 't' tags)
Opened
#117 Activities: show ticket buyer's username + npub in the hoster scan list
Opened
#118 Explore: collect buyer email at ticket purchase (needs LNbits email/SMTP server)
Opened
#120 Add image cropping to uploads (profile, event, …)
Opened
#121 Key the events store by addressable coordinate (kind:pubkey:dtag), not bare d-tag
Opened
#122 Use monotonic created_at when publishing replaceable events
Opened
#123 Batch nostr subscriptions / profile fetches (subscription grouping)
Opened
#129 Hub: hide standalones disabled on deploy instead of greying them out
Opened
#132 Hub: wire the inactive (deployed-but-greyed) app state end-to-end
Opened
#133 Show an offline/server-unreachable banner so actions don't fail silently
Opened
#134 Cash-on-arrival payment method for event tickets
Opened
#135 Rework or remove the "pending" ticket state
Opened
#136 Event notifications: subscriptions, reminders, updates (infra)
Opened
#137 libra: improve expense description helper text to guide categorization (and add an "Other" account)
Opened
#140 libra: i18n the expense form (AddExpense.vue) to match the income form