develop to main#40
Conversation
- Add supabase migration for article_attestations table with RLS policies (public read, admin write), indexes on article_id and stellar_tx_hash - Add SHA-256 hashing service (src/lib/stellar/hash.ts) — deterministic digest of title + summary + content + published_at - Add Stellar integration (src/lib/stellar/): config, client using Horizon.Server, and manageData transaction submission - Add ArticleAttestation type (src/@types/attestation.ts) - Add attestation service with two-step slug → article_id → attestation lookup (src/components/modules/news/services/attestation.service.ts) - Add AttestationBadge and AttestationPanel UI components for public article detail page — shows Verified/pending badge, content hash, Stellar tx link, ledger number, and client-side hash verification - Update NewsDetailPage to fetch attestation server-side and pass to badge/panel — publishing is never blocked by attestation - Rebuild database.types.ts as a proper TypeScript module covering all tables including article_attestations - Fix implicit-any in news, admin, and monthly-review service mappers - Fix Stellar SDK import (Server → StellarSdk.Horizon.Server) - Replace <img> with next/image in HomeHero; remove unused imports - Add Stellar env vars to .env.example
- Add supabase migration for article_attestations table with RLS policies (public read, admin write), indexes on article_id and stellar_tx_hash - Add SHA-256 hashing service (src/lib/stellar/hash.ts) — deterministic digest of title + summary + content + published_at - Add Stellar integration (src/lib/stellar/): config, client using Horizon.Server, and manageData transaction submission - Add ArticleAttestation type (src/@types/attestation.ts) - Add attestation service with two-step slug → article_id → attestation lookup (src/components/modules/news/services/attestation.service.ts) - Add AttestationBadge and AttestationPanel UI components for public article detail page — shows Verified/pending badge, content hash, Stellar tx link, ledger number, and client-side hash verification - Update NewsDetailPage to fetch attestation server-side and pass to badge/panel — publishing is never blocked by attestation - Rebuild database.types.ts as a proper TypeScript module covering all tables including article_attestations - Fix implicit-any in news, admin, and monthly-review service mappers - Fix Stellar SDK import (Server → StellarSdk.Horizon.Server) - Replace <img> with next/image in HomeHero; remove unused imports - Add Stellar env vars to .env.example
Detect Stellar entities in article content and render rich, inline, theme-aware embed cards. Entities are resolved server-side and cached. - Parser + StrKey checksum validation (pure, client-safe) that detects transaction hashes, contract ids, account addresses and CODE:ISSUER assets, skipping code blocks, anchors, URLs and tag interiors; also understands explicit [[stellar:...]] reference tags. - Server-side resolution (Horizon REST + Soroban RPC) with a stellar_embeds_cache table (migration 0003), type-aware TTLs and stale-while-revalidate. Resolution never throws or blocks rendering; failures fall back to an explorer link, not-found shows a subtle hint. - Embed components (transaction/contract/account/asset) with copy chips, responsive layout and dark/light support; ArticleContent replaces the raw content render in NewsDetail. - Admin editor: "Insert Stellar Reference" button + modal with live preview via an admin-gated /api/stellar/resolve route. - Vitest unit tests for the parser and StrKey validation. Env: NEXT_PUBLIC_STELLAR_NETWORK selects testnet (default) or mainnet.
…an detection - Add media library admin interface with grid view and filtering capabilities - Implement media upload functionality with drag-and-drop zone support - Add orphan media detection to identify unused assets in storage - Create cover image picker component for article integration - Add media detail modal for viewing and managing asset metadata - Implement media API routes for CRUD operations and orphan detection - Add Stellar hash anchoring support for media attestation - Configure Sharp image processing library for server-side optimization - Add media service layer for storage operations and migrations - Create database migration for media library schema - Update environment configuration with Stellar network settings - Add VSCode workspace settings for development consistency
- Add media_library table migration with Storage bucket policies and RLS - Add upload service with Sharp optimization pipeline (thumb/sm/md/lg/og variants) - Add media library admin UI with grid view, filters, bulk actions, and detail modal - Add image picker modal and cover image picker for article editor integration - Add media API routes for upload, CRUD, orphan detection, and article refs - Add Stellar SHA-256 hash anchoring with opt-in per upload - Add one-time migration script for existing external image URLs - Add root middleware for Supabase session refresh - Fix SSRF, path traversal, log injection, and OS command injection vulnerabilities - Configure next/image remotePatterns for Supabase Storage domain - Add VSCode workspace settings and extension recommendations
Monthly Reviews with Live Stellar Ecosystem Metrics
…station-System Feature/on chain article attestation system
- add missing recharts dependency (monthly-review dashboard) - align monthly_review_articles types with migration (review_id) - import Link in AdminMonthlyReviewEditorPage - exclude supabase/functions (Deno) from Next.js tsconfig Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolved conflicts: - src/lib/stellar/index.ts: kept ecosystem-metrics barrel and appended activity-scanner helpers (fetchOperationsSince/classifyOperation) using global fetch instead of node-fetch - .env.example: consolidated Stellar network vars - added monitored_accounts and activity_events to database.types.ts Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolved conflicts: - src/lib/stellar/index.ts: combined ecosystem/activity barrel with anchor exports - src/lib/supabase/database.types.ts: kept activity/attestation tables and added media_library - package.json: kept sharp + stellar-sdk + supabase; regenerated package-lock - .env.example: merged Stellar network + hash-anchoring sections Build fixes: - admin/layout.tsx: static imports so redirect() narrows user type - stellar/anchor.ts: cast manage_data op via unknown for SDK Buffer value type Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolved add/add conflicts in the stellar lib by unioning the ecosystem-metrics implementation (monthly review) with the rich-embeds implementation (#27): - config.ts: rich network config + retained server-side attestation constants - horizon.ts: embed fetchers (fetchTransaction/Account/Asset) + ecosystem aggregate metrics (local URL helper renamed to getEcosystemHorizonUrl) - soroban.ts: fetchContract embed client + ecosystem metrics (renamed helper) - index.ts: kept client-safe barrel; moved server-only ecosystem + scanner helpers into new ecosystem.ts and scanner.ts modules - activity_scanner edge fn now imports from stellar/scanner - NewsDetail.tsx: keep cover image + render content via ArticleContent (embeds) - package.json: @stellar/stellar-sdk ^15.1.0, added vitest; regenerated lock - .env.example: consolidated Stellar network/embeds/anchoring sections Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolved conflicts: - src/lib/stellar/client.ts: unioned attestation helpers with submitVersionChain (consolidated stellar-sdk imports) - src/lib/stellar/index.ts: kept client-safe barrel; submitVersionChain imported via subpath in admin/actions.ts to avoid pulling server code into client bundles - admin/actions.ts: kept monthly-review actions + restoreArticleVersionAction - AdminNewsEditorPage.tsx: combined StellarReferenceField content input with the version-history sidebar - news/index.ts: kept embed + version-history barrel exports - NewsDetailPage.tsx: kept attestation panel + version-history link - database.types.ts: kept article_versions table and RPC Functions Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- MonthlyReviewDashboard: move early return after hooks (rules-of-hooks) and make fallback trend deterministic (no Math.random in render) - replace explicit any with proper types / scoped eslint-disable where the payload is genuinely dynamic; remove unnecessary casts in activity scanner - escape literal apostrophes in admin monthly-review JSX - prettier format pass over the tree Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR #38 reintroduced a root middleware.ts while develop already uses the Next 16 proxy convention (src/proxy.ts). Having both entrypoints made Vercel's node-file- trace finalizer fail with ENOENT on middleware.js.nft.json. src/proxy.ts already refreshes the Supabase session and gates /admin, so the legacy middleware.ts and its now-unused updateSession helper are removed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Clarified that scheduling is not a valid key in the Supabase CLI and provided guidance on using pg_cron or the Dashboard for scheduling functions.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🚀 ACTA Pull Request
Mark with an
xall the checkboxes that apply (like[x])📌 Type of Change
📝 Changes description
📸 Evidence (A Loom/Cap video is required as evidence, we WON'T merge if there's no proof)
⏰ Time spent breakdown
🌌 Comments
Thank you for contributing to ACTA! We hope you can continue contributing to this project.