Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
2fd22db
A custom React hook that integrates with the existing useChainState i…
onajidavid87-web Jun 21, 2026
89bf4b4
feat(auth): implement automatic 15-minute inactivity wallet session t…
godamongstmen897 Jun 21, 2026
49e0db7
feat: add ConsensusWidget for real-time consensus progress tracking
Risktaker001 Jun 22, 2026
f1fb1d2
Merge pull request #134 from onajidavid87-web/main
N-thnI Jun 22, 2026
2ce6ae1
Merge pull request #135 from godamongstmen897/feature/wallet-session-…
N-thnI Jun 22, 2026
addd38a
Merge pull request #136 from Risktaker001/main
N-thnI Jun 22, 2026
c3a5716
Merge pull request #137 from Meet-hybrid/feat/multi-tx-signing
N-thnI Jun 22, 2026
c54b986
feat: implement live contributor activity tracking in leaderboard and…
Achievers-sketch Jun 22, 2026
a50056f
feat: add Activity Log Export component and integrate with audit logg…
Achievers-sketch Jun 22, 2026
6253e5d
Merge pull request #138 from Achievers-sketch/main
N-thnI Jun 22, 2026
623964e
feat: add ZK‑proof submission history panel with copy & download func…
devogechukwu Jun 22, 2026
a985838
feat: Socket.IO client integration for persistent WS state updates
Meet-hybrid Jun 22, 2026
bb1fdb9
Merge branch 'main' into feat/socketio-client
Meet-hybrid Jun 22, 2026
70f3044
fix: remove win32-only SWC dep for Linux CI compat
Meet-hybrid Jun 22, 2026
42a463b
fix: add socket.io-client dep, clear listeners before disconnect in r…
Meet-hybrid Jun 22, 2026
ea2f80d
feat: multi-dimensional task filtering with URL search params
Meet-hybrid Jun 22, 2026
29662e2
feat: optimistic update loop for task Verify Quality button
Meet-hybrid Jun 22, 2026
d23fe33
feat: implement on-chain event poll for task verification with auto-s…
Meet-hybrid Jun 22, 2026
ae4e54c
Merge branch 'main' into fix/issue-9-event-poll
Meet-hybrid Jun 22, 2026
bae2787
feat: add customizable dashboard widget layouts with GridStack
JemimahEkong Jun 23, 2026
9d92719
Merge pull request #140 from devogechukwu/feature/zk-proof-history
N-thnI Jun 23, 2026
0e2154a
Merge branch 'main' into feature/dashboard-widget-customization
N-thnI Jun 23, 2026
43c60cd
Merge pull request #144 from JemimahEkong/feature/dashboard-widget-cu…
N-thnI Jun 23, 2026
28f61b4
Merge branch 'main' into feat/task-filtering
Meet-hybrid Jun 23, 2026
d8090ba
Merge branch 'main' into feat/socketio-client
Meet-hybrid Jun 23, 2026
dc08d38
fix: remove @next/swc-win32-x64-msvc direct dep to fix npm ci on Linux
Meet-hybrid Jun 23, 2026
62504b2
feat-global-search
umohjosephemmanuel-cyber Jun 23, 2026
487625b
test: fix wallet-multiprovider test - wait for init before clicking R…
Meet-hybrid Jun 23, 2026
429b6cf
fix: cross-realm ArrayBuffer in logger decrypt; patch VoteButton/txBu…
Meet-hybrid Jun 23, 2026
6ae051a
Merge pull request #139 from Meet-hybrid/feat/socketio-client
N-thnI Jun 24, 2026
e811dd7
fix: CI test failures
Meet-hybrid Jun 24, 2026
6eb92e1
fix: CI failures - win32 dep blocking npm ci on Linux + test fixes
Meet-hybrid Jun 24, 2026
8b34596
Merge branch 'main' into feat/task-filtering
Meet-hybrid Jun 24, 2026
6392818
Merge branch 'main' into fix/issue-9-event-poll
Meet-hybrid Jun 24, 2026
801b9a2
fix: regenerate lockfile to remove win32 platform-locked dep
Meet-hybrid Jun 24, 2026
29fac26
fix: strip win32 platform-locked swc packages from lockfile
Meet-hybrid Jun 24, 2026
7ee016f
Merge branch 'main' into feat/optimistic-task-vote
Meet-hybrid Jun 24, 2026
3bdb80b
fix: regenerate lockfile on Linux
Meet-hybrid Jun 24, 2026
2babe9f
Merge pull request #142 from Meet-hybrid/feat/optimistic-task-vote
N-thnI Jun 24, 2026
b1861e6
fix: CI test failures for task-filtering branch
Meet-hybrid Jun 24, 2026
be598f6
fix: remove win32-only SWC dep re-introduced by merge from main
Meet-hybrid Jun 24, 2026
cefce15
Merge branch 'main' into feat/task-filtering
Meet-hybrid Jun 24, 2026
5cba7f8
Merge branch 'main' into fix/issue-9-event-poll
Meet-hybrid Jun 24, 2026
b949a0e
fix: properly merge TaskCard from main (fix double-export and ToastPr…
Meet-hybrid Jun 24, 2026
c38210e
Merge pull request #141 from Meet-hybrid/feat/task-filtering
N-thnI Jun 25, 2026
fd23971
Merge branch 'main' into fix/issue-9-event-poll
Meet-hybrid Jun 25, 2026
29cf828
feat(dev): add dev-only wallet publicKey switcher
jabir-dev788 Jun 25, 2026
d89d2d7
Merge pull request #145 from umohjosephemmanuel-cyber/feat-global-search
N-thnI Jun 26, 2026
e33a41a
Merge pull request #147 from jabir-dev788/FIX-vero-guardian-dashboard
N-thnI Jun 26, 2026
8b9bf25
feat: add language localization support
Killerjunior Jun 26, 2026
1c42fd8
Merge pull request #148 from Killerjunior/codex/issue-38-localization
N-thnI Jun 26, 2026
1c1bbd8
Merge branch 'main' into fix/issue-9-event-poll
N-thnI Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI

on:
push:
branches: [ '**' ]
pull_request:
branches: [ '**' ]

jobs:
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm test --if-present
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

> A full-stack Next.js 14 dashboard for **Vero Guardians** — trusted on-chain reviewers who cast cryptographically-signed votes on GitHub pull requests via the Stellar blockchain.

<!-- CI badges: update OWNER/REPO to your GitHub repo -->
[![CI](https://github.com/OWNER/REPO/actions/workflows/ci.yml/badge.svg)](https://github.com/OWNER/REPO/actions/workflows/ci.yml)
[![Tests](https://img.shields.io/badge/tests-passing-brightgreen)](#)


Guardians connect their [Freighter](https://www.freighter.app/) wallet, browse the live PR review feed, and submit approval votes recorded as permanent `manageData` transactions on Stellar Horizon. The system bridges open-source code review with decentralized, verifiable trust.

---
Expand Down
52 changes: 52 additions & 0 deletions jest.setup.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,54 @@
import '@testing-library/jest-dom';
import './src/i18n/config';
import { installIndexedDBMock } from './test-utils/indexeddb-mock';

// Polyfill crypto.subtle and TextEncoder/TextDecoder for jsdom
if (typeof globalThis.crypto !== 'undefined' && !globalThis.crypto.subtle) {
const { webcrypto } = require('crypto');
Object.defineProperty(globalThis, 'crypto', {
value: webcrypto,
writable: false,
configurable: true,
});
}
const { TextEncoder, TextDecoder } = require('util');
if (typeof globalThis.TextEncoder === 'undefined') {
globalThis.TextEncoder = TextEncoder;
}
if (typeof globalThis.TextDecoder === 'undefined') {
globalThis.TextDecoder = TextDecoder;
}

// Mock File System Access API (showSaveFilePicker)
if (typeof globalThis.window === 'undefined') {
// running in node - provide a minimal window and document
globalThis.window = globalThis;
}

if (!('showSaveFilePicker' in globalThis)) {
globalThis.showSaveFilePicker = async (options = {}) => {
const chunks = [];
return {
createWritable: async () => ({
write: async (data) => {
// accept Blob or write request
if (data instanceof Blob) {
const array = new Uint8Array(await data.arrayBuffer());
chunks.push(array);
} else if (data && data.data instanceof Blob) {
const array = new Uint8Array(await data.data.arrayBuffer());
chunks.push(array);
}
},
close: async () => {},
}),
};
};
}

// Install enhanced IndexedDB mock for tests
try {
installIndexedDBMock();
} catch (e) {
// ignore if already installed or environment prevents it
}
Loading
Loading