Skip to content

develop to main#40

Merged
JosueBrenes merged 23 commits into
mainfrom
develop
Jun 25, 2026
Merged

develop to main#40
JosueBrenes merged 23 commits into
mainfrom
develop

Conversation

@JosueBrenes

Copy link
Copy Markdown
Contributor

🚀 ACTA Pull Request

Mark with an x all the checkboxes that apply (like [x])

  • Closes #
  • Added tests (if necessary)
  • Run tests
  • Run formatting
  • Evidence attached
  • Commented the code

📌 Type of Change

  • Documentation (updates to README, docs, or comments)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to 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.

temi-Dee and others added 23 commits April 25, 2026 20:20
- 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.
@vercel

vercel Bot commented Jun 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
news-acta Ready Ready Preview, Comment Jun 25, 2026 4:18pm

Request Review

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ddbd19fe-a0ed-41fa-a818-a4cd78c85292

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@JosueBrenes JosueBrenes merged commit bd84824 into main Jun 25, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants