Conversation
…hange-rate-api Use WOC exchange rate
- Add 24hr cache to opengraph-image routes (main culprit) - Add 5min cache to inscription/bsv20 API calls in httpClient - Fix async headers() call in main opengraph - Prevent duplicate API calls across components
- Install bitcoin-auth dependency for standard BSV authentication - Update server component to pass callback and state query params as props - Implement callback flow in sign page: * Decode hex message using Utils.toArray and Utils.toUTF8 * Generate authToken with getAuthToken from bitcoin-auth * POST authToken to callback URL when present * Redirect to redirectUrl from callback response - Maintain backward compatibility for manual signature copy - Use parseAuthToken to extract signature for display Implements BSV_WALLET_PROVIDER_SPEC.md for Sigma Auth integration
Major updates: - @bsv/sdk: 1.1.30 -> 1.8.7 - @tanstack/react-query: 5.59.19 -> 5.90.5 - typescript: 5.6.3 -> 5.9.3 - Next.js types and tooling updates Build verified successful after updates
Sends wallet-connected event to window.opener with state for verification. This allows the parent window to refresh the wallet list before the popup redirects away.
merge master -> alpha
- Remove bun.lockb (binary format) - Add bun.lock (text format, better for git) - Update CLAUDE.md to use bun commands instead of npm
- Added @ai-sdk/react and ollama-ai-provider-v2 dependencies. - Refactored chat API routes to utilize the new ollama-ai-provider-v2 for improved functionality. - Updated return types in chat API responses for consistency. - Adjusted type assertions in the airdrop modal for better type safety.
…i button component
…lity functions - Updated type assertions for key, iv, and data parameters in encryption and decryption functions to use BufferSource. - Utilized BSV SDK Utils for decoding base64 public keys to ensure compatibility. - Improved type safety across encryption-related functions.
Feature/bitcoin auth callback
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- Update Next.js to 15.5.6, React to 19, React DOM to 19 - Enable Turbopack in dev script for faster builds - Migrate all dynamic route pages to async params pattern (Next.js 15 requirement) - Update API route handlers to handle Promise-based params - Fix searchParams to be async in page components - Await headers() calls in server components and metadata functions - Update programmatic route handler calls to use Promise.resolve() - Fix model-viewer custom element types with proper React module augmentation - Update @google/model-viewer to latest version
Upgrade to Next.js 15 with React 19 and Turbopack
Add decode-named-character-reference and character-entities to transpilePackages to resolve Next.js 15 ESM import errors. This is the recommended Next.js 15 solution for handling CJS/ESM module compatibility issues with Turbopack.
Add entire react-markdown dependency chain to transpilePackages and configure Turbopack resolveAlias to handle ESM imports correctly. This ensures all packages in the markdown parsing chain are transpiled consistently for Next.js 15 + Turbopack.
- Remove react-markdown dependency (had ESM/CommonJS issues with Turbopack) - Install @next/mdx and next-mdx-remote-client for proper Next.js 15 MDX support - Update next.config.mjs to use @next/mdx with createMDX wrapper - Create mdx-components.tsx file (required by @next/mdx) - Refactor markdown.tsx component to use MDXClient from next-mdx-remote-client/csr - Remove transpilePackages workarounds that didn't resolve Vercel build errors - Add proper type checking for SerializeResult to handle compilation errors This resolves the "Can't import the named export 'characterEntities'" error that was failing Vercel deployments on the alpha branch.
- Keep @next/mdx configuration for project MDX file support - Use next-mdx-remote-client/csr for remote markdown from ORDFS - Remove unnecessary marked package - Remove mdx-components.tsx (not needed for remote MDX) - Build succeeds locally with webpack - testing Vercel deployment This properly follows Next.js docs for handling remote markdown content without transpilePackages hacks.
- Update next.config.mjs to include .md and .mdx file extensions for MDX processing - This enhancement allows for better handling of markdown files in the project This change aligns with the ongoing improvements for remote markdown rendering using @next/mdx.
…maintainability - Updated multiple components, including layout and modal components, to enhance structure and responsiveness. - Improved state management and type safety across several files, ensuring better performance and clarity. - Cleaned up unused code and optimized rendering logic for better user experience. - Added new utility functions and hooks to streamline functionality and improve code organization.
- Modified the SearchBar component to enhance the loading state display and improve input styling. - Updated the development script in package.json to specify a custom port for the development server.
…and refactor infinite scroll to use scroll events.
…t API calls that interleave images and videos.
- Replace Daisy UI tabs with ShadCN-compatible styled tabs (inscribe tabs, general tabs) - Migrate toggle to ShadCN Switch component (bsv20.tsx) - Replace Daisy UI tooltips with ShadCN Tooltip components (bsv20, holders, fund.tsx) - Migrate file-input to ShadCN Input component (bsv21.tsx) - Replace Daisy UI table classes with ShadCN Table components (TokenListings, ModelListings) - Update semantic colors: text-info/bg-info to Alert, text-success to green-500, text-error to destructive - Replace hardcoded colors (#111, #555, #222, #333) with ShadCN semantic colors (card, muted, muted-foreground, border) - Replace custom buttons with ShadCN Button component - Update all form inputs to use ShadCN Input component - Add Select component for action type dropdown in bsv20.tsx - Add Slider component for bulk minting iterations
…ui-01BcdqwvsuQxuHbzTHRnJNkx
…trols Port of the cost-reduction work from the master fix branch, adapted to the Next 16 codebase. Uncached serverless renders — every route was forced dynamic because the root layout's Header read headers() — plus unprotected preview domains meant crawlers were invoking functions on every request to /outpoint/*, /wallet/* and /market/*. - Read the hostname client-side in Logo instead of headers() in Header so the layout no longer forces dynamic rendering; many routes are now static - Enable ISR (revalidate 60s) on /outpoint/[outpoint]/[tab], /collection/[outpoint] and /market/[tab]/[id] - Statically generate /wallet/[tab] with dynamicParams=false - Move middleware.ts to src/ — at the repo root Next.js never loaded it, so its CSP header was never actually served - Middleware now: 404s obviously-invalid params (/signer/null, /collection/[object Object], /outpoint/undefined) at the edge before any function runs (with streaming, notFound() can't set a 404 status once the shell has flushed); redirects bare /outpoint/<id> to /timeline at the edge; serves a disallow-all robots.txt plus X-Robots-Tag noindex on non-production hosts (alpha.*, previews) since Vercel only noindexes *.vercel.app URLs - Add robots.txt for production (was 404ing for every crawler) - Harden opengraph-image routes: validate params, fall back to a text image on upstream failure, force f_png so satori can always render the cloudinary source, add CDN cache headers - Page-level validation with notFound() as defense in depth behind the middleware checks - Skip the /api/txos/outpoints POST when there are no spends to fetch - Guard link sources emitting /signer/null and /collection/undefined - Parse upstream JSON defensively in customFetch and guard unsafe nested accesses (insc.file.type, subTypeData.collectionId, assetType charAt) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnuE1en7wuDFoTL5H7KSCg
The hardening rewrite dropped the name banner this route previously rendered. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CnuE1en7wuDFoTL5H7KSCg
…ke-alpha Reduce Vercel serverless costs: caching, edge validation, crawler controls (alpha)
The tonicpow Cloudinary account no longer works, so no transformed images were loading. api.1sat.app now implements the same transforms natively for inscription content. - Add ordfsImageUrl() building /1sat/ordfs/image URLs (w, h, fit, gravity, format, quality); remove the unused cloudinaryLoader - Default ORDFS to api.1sat.app/content, add ORDFS_IMAGE with a NEXT_PUBLIC_ORDFS_IMAGE_URL override, and migrate all hardcoded ordfs.network hosts (content, previews, featured lists, modal) - Grid thumbnails use fit=pad (transparent padding over the dark containers), zoom and modal use w=1920, OG images use fit=fill f=png - Update CSP frame-src and next/image remotePatterns accordingly - Restrict /api/sanitize to ORDFS URLs; it proxied arbitrary URLs
1sat-stack now rasterizes SVG for explicit raster formats and extends the width ladder to 3840 (b-open-io/1sat-stack#21, deployed). Bump the zoom view and the modal full-size view to the top rung and correct the OG comments that described SVG passthrough.
A replacement listing contract is coming. Stop emitting new OrdLock listings. Buy and cancel of existing listings still work.
Deprecate OrdLock listing creation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Alpha → Master: Major Platform Upgrade
This PR brings significant infrastructure modernization, performance optimizations, and UX improvements from the alpha branch to production.
Infrastructure & Performance
Technology Stack Upgrades
Vercel Performance Optimizations
Build & Package Management
bun.lockbto text-basedbun.lockfor better git diffsHome Page Overhaul
New Feed System
/api/feedroute with randomized weighted algorithmHydration & Performance Fixes
New Features
OpenGraph & Image Handling
Critical Performance Fix
ALPHA/BETA Detection
git-alphain Vercel deployment URLsImage Components
Outpoint Page Refactor
Architecture Improvements
Fixes
Collection Page
Timeout Protection
Bug Fixes
Authentication & Signing
Bitcoin Auth Integration
Wallet Improvements
Market & Trading
API & Performance
Components
UI/UX Enhancements
New Components
Component Fixes
Hydration Error Fixes
Content Rendering
Markdown/MDX Migration
Media Components
Testing Infrastructure
New Test Files
test-all-pages.mjs(+74 lines) - Page load testingtest-homepage.mjs(+77 lines) - Homepage specific teststest-infinite-scroll.mjs(+74 lines) - Scroll behavior teststest-market-detailed.mjs(+48 lines) - Market page teststest-scroll-button.mjs(+33 lines) - Scroll button teststest-tabs.spec.ts(+61 lines) - Tab navigation teststests/page-transitions.spec.ts(+120 lines) - Transition testsDocumentation
Technical Improvements
TanStack Query Configuration
Utilities & Helpers
Type Definitions
Critical Bug Fixes
Performance Impact
Cost Savings
User Experience
Migration Notes
Breaking Changes
Compatibility
Review Checklist
Ready for production deployment