LaWallet NWC
Changelogs

Changelog: Month 1

Detailed changelog for January 5 - February 5, 2026.

Period: January 5 – February 5, 2026

Base commit: 7f0a632Implement GitHub issue and epic creation scripts Head commit: fd2296bMerge pull request #180

Stats: 118 files changed, 13,391 insertions, 3,215 deletions — 66 commits (18 PRs merged)

Contributors: Agustin Kassis (62 commits), claudiomolt (4 commits)


Epics Completed

EpicTitleClosed
#128Bug Fixes & Critical IssuesJan 15
#129Error Handling & InfrastructureJan 15
#131Configuration & EnvironmentJan 15
#130Logging & ObservabilityJan 23
#132Authorization & SecurityJan 30
#133Security MiddlewareFeb 5
#134Testing InfrastructureFeb 5

Issues Closed (18)

Configuration & Environment

Epic #131

  • #105 — Add environment variable schema and validation using zod/envsafe (PR #137)
  • #106 — Create backend config loader with per-environment configuration (PR #137)

Error Handling & Infrastructure

Epic #129

  • #101 — Create error handling infrastructure (PR #138)
    • Added ApiError class hierarchy, handleApiError, withErrorHandling HOF
    • New ConflictError class, optional headers support
  • #102 — Refactor all API routes to use standardized error handling (PR #139)

Logging & Observability

Epic #130

  • #103 — Setup Pino logger with structured logging (PR #165)
    • Pino + pino-pretty integration, request context, log levels via env
  • #104 — Replace all console.log/error calls with Pino structured logging (PR #166)
    • Request logging middleware, logPretty config option

Authorization & Security

Epic #132

  • #107 — Define roles & permissions model with authorization utilities (PR #168)
    • RBAC model: USER < VIEWER < OPERATOR < ADMIN
  • #108 — Update Prisma schema to use enum for User roles (PR #169)
  • #109 — Create Prisma migration for role enum and update existing data (PR #170)
  • #110 — Create API endpoint to add and modify user roles with hierarchy validation (PR #171)
  • #111 — Add maintenance mode feature flag (env-driven) with middleware (commit ee8629b)

Validation & Input Sanitization

  • #112 — Create Zod validation schemas for all API inputs (PR #173)
    • Centralized schema module with validation middleware
  • #113 — Refactor all API routes to use Zod validation schemas (PR #174, PR #175)

Security Middleware

Epic #133

  • #114 — Add rate limiting middleware for public endpoints (PR #178)
  • #115 — Add request size limits (body size and file upload constraints) middleware (PR #179)

Testing Infrastructure

Epic #134

  • #116 — Configure Vitest with coverage, test utilities, mocks, and helpers (PR #176)
    • Vitest 3.2.4, MSW server, happy-dom, coverage thresholds
  • #117 — Write unit tests for all lib utilities, auth functions, and validation
    • 12 unit test suites: permissions, JWT, jwt-auth, nostr, NIP-98, admin-auth, config, errors, logger, maintenance, utils, prisma-mock
  • #118 — Write integration tests for all API routes (PR #180)
    • 21 integration test files covering all 32 route handlers (154 tests)

Framework & Dependencies

  • Next.js 16 upgrade with ESLint 9 flat config (PR #167)
    • Fixed HTML structure in AddressesPage
    • Resolved ESLint errors for React best practices
    • Added dynamic export to API routes
  • Dependency updates (PR #177)
    • Migrated @getalby/sdk to v7 API
    • Migrated react-resizable-panels to v4 API
    • Converted configs to ESM syntax

Pull Requests Merged

PRBranchDescription
#137envsafeEnvironment variable validation with Zod
#138101-create-error-handling-infrastructureError handling infrastructure
#139102-refactor-all-api-routes-to-use-standardized-error-handlingStandardized error handling across all routes
#165103-pinoPino structured logging setup
#166104-replace-logs-pinoReplace console.log with Pino across API
#167nextjs-16Next.js 16 + ESLint 9 upgrade
#168107-roles-authorizationRBAC roles and permissions model
#169108-update-prisma-schemaPrisma UserRole enum schema change
#170109-prisma-migrationRole enum data migration
#171110-create-api-endpoint-to-add-and-modify-user-rolesRole management API endpoint
#173112-create-zod-validation-schemas-for-all-api-inputsCentralized Zod schemas
#174113-refactor-all-api-zodApply Zod validation to all routes
#175feat/security-middleware-113Security middleware (Zod + upstream merge)
#176feat/testing-infrastructure-116Vitest infrastructure setup
#177upgrade-packagesDependency updates + migrations
#178feat/rate-limiting-114Rate limiting for public endpoints
#179feat/request-limits-115Request size limits middleware
#180feature/118-integration-tests-api-routesIntegration tests for all API routes

Commit Log (non-merge, chronological)

CommitMessage
bd6acf8Update README.md
3eaab5cchore: add envsafe package to dependencies
90e1636feat: add environment variable validation schema and utility functions
6b3941cfeat: implement application configuration module with environment variable loading and validation
3bd46efrefactor: replace environment variable usage with getConfig
cc12799chore: update .env.example
5a2cd9arefactor: remove redundant name parameter from waitlist subscription
355cb90feat: add API response types and error handling utilities
b9555d9feat: enhance waitlist subscription validation and error handling
7745045feat: add ConflictError class to enhance error handling
98dc4b5feat: enhance error handling by adding optional headers to handleApiError and withErrorHandling functions
954a983refactor all API routes to use the new error handling infrastructure
30232a3add pino and pino-pretty packages
dde02a8feat: update .env.example to include logging configuration options
8ce2ed6feat: implement centralized logging system with request context and error handling
fa582edfeat: add logging configuration options to environment schema
d9f2105feat: add logPretty option to AppConfig
4b05825feat: integrate request logging into error handling middleware
b81d2fdrefactor: replace console logging with structured logging across API routes
a6cc5bfchore: update caniuse-lite dependency version in pnpm-lock.yaml
e7f355dfeat: add dynamic export to API routes for forced dynamic rendering
a8e11c3feat: upgrade to Next.js 16 with ESLint 9 flat config
d609338fix: resolve ESLint errors for React best practices
dfc3a5afix: correct HTML structure in AddressesPage component
392dab4feat: add RBAC roles and permissions model with authorization utilities
678ce26feat: convert user role from String to UserRole enum in Prisma schema
dc5e0f3feat: migrate user role data and update column type to UserRole enum
8a31c2dfeat: add role management API endpoint with hierarchy validation
ee8629bfeat: add maintenance mode middleware with admin bypass (#172)
8fae5fcfeat: add centralized Zod validation schemas and middleware
b27391crefactor: migrate inline Zod schemas to central validation module
524ecbbrefactor: replace manual validation with Zod in card routes
0a78a52refactor: replace manual validation with Zod in user routes
b3dee37refactor: replace manual validation with Zod in remaining routes
e7deec4refactor: migrate remaining routes to Zod validation
2134108refactor(validation): apply Zod validation to API routes
095857dfeat(testing): setup Vitest infrastructure with coverage, MSW, and helpers
ca5d3d5fix(vitest): clean up configuration formatting and remove unused import
47db21ffix: migrate @getalby/sdk to v7 API
87aee53fix: migrate react-resizable-panels to v4 API
e220873fix: update test helpers for package compatibility
80ba713chore: convert configs to ESM syntax
8d51fb2chore(deps): update dependencies to latest versions
32c8582chore: add coverage directory to .gitignore
31fbb8echore(vitest): lower coverage thresholds in configuration
cf8bd07fix: update action import path to include file extension
d92a612feat(security): add rate limiting middleware for public endpoints
cd99f93feat(security): add request size limits middleware (#115)
2039a7atest(utils): add unit tests for cn, formatDate, generateHexGroups
97f6106test(permissions): add unit tests for RBAC roles and permissions
816e366test(jwt): add unit tests for JWT token creation, verification, and helpers
e6f003etest(jwt-auth): add unit tests for JWT authentication middleware
4b6e8fctest(nostr): add unit tests for Nostr key generation and conversions
ee45302test(nip98): add unit tests for NIP-98 URL generation, body parsing, and validation
efa6399test(admin-auth): add unit tests for admin auth, role resolution, and HOF wrappers
36aebd9test(config): add unit tests for getEnv, getConfig, and config caching
32d91d2test(errors): add unit tests for all ApiError subclasses
c54a9ddtest(logger): add unit tests for request ID, logger creation, and request logging
6a06f40test(maintenance): add unit tests for maintenance mode middleware
0a5d3a8fix(prisma-mock): use independent mock instances per model and improve reset
b6fcd98test(helpers): add route-helpers with createParamsPromise and createDefaultConfig
c1fef90test(api): add integration tests for settings and auth assignment routes
155557etest(api): add integration tests for user management routes
9c6be65test(api): add integration tests for card CRUD routes
d132814test(api): add integration tests for card scan and lightning routes
26af6c7test(api): add integration tests for JWT, card designs, and remote connections

On this page