Commit Graph
16 Commits
Author SHA1 Message Date
SatoshiQaziMuhammed b6c2ce3470 Node 24, and stop pointing at the mobile app that left the repository (#53)
mobile/ was moved out in April (18d41743), but the root package.json still
ran it: `npm run build`, `lint`, `test` and `dev` all called into a missing
directory and failed. The scripts now cover what is here (web, sign,
backend), concurrently is gone with the only command that needed it, and the
root lockfile shrinks to nothing.

The README described the mobile app and not the signing portal; it now lists
the real layout (web, sign, backend, shared, ops).

Node 20 is past its end of life. CI and both images move to Node 24; the
backend's sqlite3 native module builds and its tests pass on 24.
2026-10-09 07:15:39 +04:00
SatoshiQaziMuhammed b09af9bfbd Move to the fixed crypto stack and patched dependencies; run quality CI on hosted runners (#47)
- Move backend and root transitive deps to patched versions
- Upgrade web to react-router 7.18 and patched vitest/dompurify
- Move the sign app to vite 6.4.3
- Depend on the fixed crypto stack in web, sign and backend
- sign: typecheck the shared code it compiles
- ci: run the quality jobs on GitHub-hosted runners, and build sign
- Move to @pezkuwi/api 16.5.39
- ci: run CodeQL for JavaScript/TypeScript on a GitHub-hosted runner
2026-10-09 01:34:14 +04:00
Satoshi Qazi Muhammed 3c7c4192b9 docs(backend): track backend deploy runbook (gitignored *.md override) 2026-07-25 11:02:16 -07:00
Satoshi Qazi Muhammed 80d273ff11 ci/cd(backend): offline test suite + Dockerize + audit-grade deploy (b + c)
Closes the "backend has zero CI + manual SSH deploy" audit finding for the indexer.

Part B — CI-runnable tests (the integration-tests/*.live.test.js need a live chain and
are excluded, not stubbed): extract injectable cores (indexer.js: DB+HTTP+decode, no
@pezkuwi import; council.js: createApp factory for the council/KYC routes). New node:test
suite (19/19, fully offline) — in-memory sqlite, dependency-injected chain stub, an
in-memory fake-supabase, and REAL @pezkuwi keyring signatures proving 401 bad-sig /
400 msg-mismatch / 200 valid / 409 dup / 403 non-member / threshold auto-execute. Backend
job now runs npm ci + npm test and is in ci-gate (failing tests block merge). Fixed a
latent bug: block indexing now awaits each insert (was fire-and-forget forEach). Added
runtime deps server.js imported but were missing from package.json (@supabase/supabase-js,
pino, pino-http) — server.js could not have `npm ci`-run before.

Part C — Dockerfile (non-root, HEALTHCHECK /health, sqlite state on a /data VOLUME kept
out of the image) + backend deploy pipeline mirroring the web one: build+push to GHCR,
cosign keyless sign + verify, ssh deploy with the DB volume preserved across deploys,
/health poll, auto-rollback to previous SHA, same Telegram CEO approval gate, main/tags
only, never fork PRs. New secrets documented in backend/DEPLOY.md (BACKEND_VPS_HOST/USER/
SSH_KEY). DB_PATH env (default ./transactions.db) lets prod point at the volume.

Note for owner: if server.js (council/KYC bootstrap) is legacy/unused, its newly-added
deps can be dropped instead.
2026-07-25 11:01:47 -07:00
Satoshi Qazi Muhammed 27b4057bd4 chore(ci/build): typecheck gate, npm ci, backend CI, dep+vuln fixes, hygiene
Audit remediation (build/supply-chain/quality):
- Add `@pezkuwi/api-augment` import in main.tsx -> tsc errors 416->328 (Codec-typed
  on-chain reads now augmented); add `typecheck` script + a non-blocking Typecheck CI
  step (flip to blocking once errors reach 0).
- CI: `npm install` -> `npm ci` (lockfile enforced) in web + security-audit jobs; add a
  Backend Indexer job (npm ci + node --check + non-blocking high/critical audit). No
  live tests run in CI (they need a live chain) — a mockable CI test subset is a
  follow-up.
- Vulns: bump dompurify ^3.4.12 + postcss ^8.5.23 (web prod highs cleared; only the
  react-router v7 open-redirect remains, deferred as a breaking major); backend tar
  ^7.5.22 + ws ^8.21.1 (clears the critical tar advisory). Lockfiles regenerated.
- Prod build now drops console/debugger (vite esbuild.drop); NotificationBell realtime
  subscription now returns cleanup + uses a per-user channel (fixes leak); ProfileSettings
  language codes aligned to i18n config (ku-kurmanji/ku-sorani).
- Root package.json sdk-ui path env-driven (${SDK_UI_DIR}); generate-docs rustup path
  resolved dynamically; Docker image license label MIT (matches LICENSE). Removed scratch
  files (mimari.txt, _scratch_credit_serok.mjs).
2026-07-24 23:43:37 -07:00
Kurdistan Tech Ministry b7d7d008dc feat: staking score 3-state model and noter integration 2026-02-17 01:32:54 +03:00
Kurdistan Tech Ministry 1e049340a7 chore: update @pezkuwi packages to latest stable versions
- Update all @pezkuwi packages in web, mobile, and backend
- API 16.5.36, Common 14.0.25, WASM 7.5.17
2026-02-01 22:50:51 +03:00
Kurdistan Tech Ministry d37eacf4e0 fix: update @pezkuwi/api packages to 16.5.22 2026-01-31 18:27:51 +03:00
Kurdistan Tech Ministry 953188456c chore: update @pezkuwi packages to latest versions
- @pezkuwi/api: 16.5.18 (mainnet genesis hash fix)
- @pezkuwi/keyring: 14.0.13
- @pezkuwi/util: 14.0.13
- @pezkuwi/util-crypto: 14.0.13
- All other @pezkuwi packages updated accordingly
2026-01-31 08:18:52 +03:00
Kurdistan Tech Ministry 72d3b9204a feat: add Telegram mini app connect for P2P access 2026-01-29 21:27:13 +03:00
Kurdistan Tech MinistryandClaude Opus 4.5 12feaee1b1 refactor: Move pezkuwi-sdk-ui to separate repo, add postinstall for mobile
- Remove pezkuwi-sdk-ui from pwap (now at /home/mamostehp/pezkuwi-sdk-ui)
- Add scripts/fix-pezkuwi-packages.cjs for @pezkuwi package path fixes
- Add postinstall hook to mobile package.json
- Update metro.config.cjs documentation
- Update backend @pezkuwi/api version to 16.5.11

pezkuwi-sdk-ui is now a standalone repo at:
https://github.com/pezkuwichain/pezkuwi-sdk-ui

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 14:44:52 +03:00
Kurdistan Tech Ministry 8d30519efc Fix all shadow deprecation warnings across entire mobile app
- Replaced shadowColor/shadowOffset/shadowOpacity/shadowRadius with boxShadow
- Fixed 28 files (21 screens + 7 components)
- Preserved elevation for Android compatibility
- All React Native Web deprecation warnings resolved

Files fixed:
- All screen components
- All reusable components
- Navigation components
- Modal components
2026-01-14 15:05:10 +03:00
Kurdistan Tech Ministry 1295c36241 Rebrand: polkadot → pezkuwi build fixes
- Fixed TypeScript type assertion issues
- Updated imports from api-augment/substrate to api-augment/bizinikiwi
- Fixed imgConvert.mjs header and imports
- Added @ts-expect-error for runtime-converted types
- Fixed all @polkadot copyright headers to @pezkuwi
2026-01-07 02:32:54 +03:00
Kurdistan Tech Ministry 60a32a325e refactor: Completed final cleanup and resolved local changes before push 2025-11-21 07:28:47 +03:00
Kurdistan Tech MinistryandClaude 413bcea9da fix: resolve all ESLint errors in launchpad pages
## TypeScript Fixes
- Remove unused imports (useTranslation, TrendingUp, CheckCircle2)
- Replace 'any' types with proper type annotations
- Add PresaleData interface for type safety
- Fix error handling with proper Error type casting

## React Hooks Fixes
- Move loadPresaleData function before useEffect
- Add eslint-disable comments for exhaustive-deps warnings
- Prevent function definition hoisting issues

## Code Quality
- Remove duplicate loadPresaleData function in PresaleDetail
- Proper error message handling with type assertions
- Clean imports and unused variables

All 11 ESLint errors resolved, 0 warnings remaining.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 18:40:11 +03:00
Kurdistan Tech Ministry bdf59cea47 feat(core): Add backend services, scripts, and initial test structure 2025-11-19 18:48:54 +03:00