Commit graph

1234 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
4bb3e28488
Initial plan 2026-07-06 13:08:54 +00:00
Parth
d66f5e9c82
chore(ui): improve mobile responsiveness (#1292)
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
2026-07-05 15:54:37 +02:00
Parth
c7cb02ae86
fix: use sats-only amount placeholders (#1301)
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
* fix: use sats-only amount placeholders

* fix: update sats-only placeholders in locales
2026-06-30 17:09:18 +05:30
Thebora Kompanioni
eaadf56005
build(deps): update dependencies (#1303)
* build(deps): update dependencies

 @tailwindcss/vite                4.3.1  →    4.3.2
 @tanstack/eslint-plugin-query  5.101.0  →  5.101.2
 @tanstack/react-query          5.101.0  →  5.101.2
 @types/node                    24.12.4  →   26.0.1
 @vitejs/plugin-react             6.0.2  →    6.0.3
 globals                         17.6.0  →   17.7.0
 lint-staged                     17.0.7  →   17.0.8
 lucide-react                    1.20.0  →   1.22.0
 prettier                         3.8.4  →    3.9.3
 react-hook-form                 7.79.0  →   7.80.0
 react-router-dom                7.18.0  →   7.18.1
 tailwindcss                      4.3.1  →    4.3.2
 typescript-eslint               8.61.1  →   8.62.1
 vite                            8.0.16  →    8.1.0

* chore: format source
2026-06-30 13:17:15 +05:30
Parth
91d31c2639
Apply Tailwind styling consistency and brand identity pass across app (#1297)
Some checks are pending
Build / build (v26.3.0) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
* style: add jam brand theme tokens

* style: apply brand tokens to shared UI

* style: add semantic brand status tokens

* style: normalize branded UI states
2026-06-30 00:55:35 +05:30
Thebora Kompanioni
50562ba897
dev(regtest): rectify tor setup and upgrade to core v29 (#1298)
Some checks are pending
Build / build (v26.3.0) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
* dev(regtest): adapt bitcoin rpc users

* dev(regtest): update to bitcoind v30.0

* chore(regtest): create descriptor wallets for clientserver regtest containers

* chore(regtest): add backend descriptor to clientserver directory node

* chore(regtest): rectify tor setup and downgrade to core v29

* dev(regtest): set ENSURE_WALLET to false and remove unused DESCRIPTOR_WALLET_NAME for ng nodes
2026-06-28 14:22:36 +02:00
theborakompanioni
7e9aa794d1
chore(pre-release): v2.0.0-beta.0
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
2026-06-28 11:46:37 +02:00
Thebora Kompanioni
d9bf64fb02
fix(login): wallet preselection (#1296)
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
2026-06-24 19:12:48 +05:30
Wu Shuwen
3fc3ff3d58
fix: handle locale-specific decimal separators in BTC balance (#1290)
Some checks are pending
Build / build (v26.3.0) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
2026-06-23 15:39:32 +02:00
Kishore B
08890f6dda
chore(ui): tooltip for jm:autofrozen:reuse label (#1293) 2026-06-23 08:56:20 +02:00
Marco Petrini
df34a76023
fix: orderbook own-offer pin/highlight with pagination (#1295)
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
2026-06-22 01:06:10 +02:00
Parth
6e3c905ddc
test: expand full-project coverage (#1276) 2026-06-22 01:02:45 +02:00
Thebora Kompanioni
945ece0df8
build(deps): update @vitejs/plugin-react to v6.0.2 (#1288)
Some checks failed
Build / build (v26.3.0) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
* build(deps): update dependencies

 @radix-ui/react-accordion      1.2.13  →  1.2.14
 @radix-ui/react-avatar         1.1.12  →   1.2.0
 @radix-ui/react-checkbox        1.3.4  →   1.3.5
 @radix-ui/react-dialog         1.1.16  →  1.1.17
 @radix-ui/react-dropdown-menu  2.1.17  →  2.1.18
 @radix-ui/react-label           2.1.9  →  2.1.10
 @radix-ui/react-popover        1.1.16  →  1.1.17
 @radix-ui/react-radio-group     1.4.0  →   1.4.1
 @radix-ui/react-select          2.3.0  →   2.3.1
 @radix-ui/react-separator       1.1.9  →  1.1.10
 @radix-ui/react-slot            1.2.5  →   1.3.0
 @radix-ui/react-switch          1.3.0  →   1.3.1
 @radix-ui/react-tabs           1.1.14  →  1.1.15
 @radix-ui/react-tooltip         1.2.9  →  1.2.10
 @tailwindcss/vite               4.3.0  →   4.3.1
 eslint-plugin-react-refresh     0.5.2  →   0.5.3
 lucide-react                   1.17.0  →  1.20.0
 prettier                        3.8.3  →   3.8.4
 radix-ui                        1.5.0  →   1.6.0
 react-hook-form                7.77.0  →  7.79.0
 react-router-dom               7.17.0  →  7.18.0
 tailwindcss                     4.3.0  →   4.3.1
 typescript-eslint              8.60.1  →  8.61.1

* build(deps): update @vitejs/plugin-react to v6.0.2

* build: update node to v26.3.0

* build(deps): update vitest to v4.1.9

* build(deps): update @playwright/test to v1.61.0
2026-06-17 16:01:40 +05:30
theborakompanioni
5487157db2
build(deps): update typescript-eslint to v8.61.1 2026-06-17 10:45:29 +02:00
theborakompanioni
c7253c5c00
fix: workaround for use-react-websocket with vite v8
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
2026-06-16 19:39:24 +02:00
dependabot[bot]
cefc4e43f1
build(deps): bump esbuild, vite and storybook (#1287) 2026-06-16 19:04:36 +02:00
Kishore B
f0457b34ee
chore(regtest): joinmarket-ng as the default primary backend (#1281) 2026-06-16 17:44:44 +02:00
Kishore B
7fccc46b1c
feat(sweep): add QR code scanner to destination inputs (#1282)
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>
2026-06-15 21:31:14 +05:30
Dinar
51f3f02201
test: clean up fidelity bond utility test wording (#1279)
Some checks failed
Build / build (v24.11.1) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
Co-authored-by: Dinar <dinarrrofficials@gmail.com>
2026-06-11 18:41:51 +02:00
Dinar
65aeb7de99
chore: remove unused login schema translation parameter (#1275)
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
Co-authored-by: Dinar <dinarrrofficials@gmail.com>
2026-06-11 03:20:30 +05:30
Thebora Kompanioni
71fa206006
fix: soft display query reloading (#1273)
* refactor: remove unused props from JamWalletInfoContextType

* chore(ci): fix name of storybook build task
2026-06-10 21:13:23 +02:00
theborakompanioni
d2fe8f180d
chore(ci): build storybook on pull request
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
2026-06-09 23:03:02 +02:00
Thebora Kompanioni
d60950c337
fix(storybook-static): github pages storybook deployment (#1272) 2026-06-09 22:54:36 +02:00
theborakompanioni
5d4cf130f3
fix(storybook-build): dont fail build on missing msw 2026-06-09 19:08:46 +02:00
Thebora Kompanioni
d39658b992
chore(storybook): add msw handler and AccountXpubsDialog story (#1271)
* chore(storybook): add msw handler and AccountXpubsDialog story

* refactor: rename BitcoinQr to BitcoinAddressQrCode

* feat: add xpub qrcode to account dialog
2026-06-09 22:06:54 +05:30
Parth
54b2b73bbd
ci: skip coverage upload when report is missing (#1270)
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
2026-06-08 20:28:44 +02:00
theborakompanioni
bfb42f84bd
build(fix): package-lock.json 2026-06-08 19:32:31 +02:00
Thebora Kompanioni
9f3640e2c5
build(deps): update dependencies (#1269)
* build(deps): update dependencies

 @radix-ui/react-accordion        1.2.12  →    1.2.13
 @radix-ui/react-avatar           1.1.11  →    1.1.12
 @radix-ui/react-checkbox          1.3.3  →     1.3.4
 @radix-ui/react-dialog           1.1.15  →    1.1.16
 @radix-ui/react-dropdown-menu    2.1.16  →    2.1.17
 @radix-ui/react-label             2.1.8  →     2.1.9
 @radix-ui/react-popover          1.1.15  →    1.1.16
 @radix-ui/react-separator         1.1.8  →     1.1.9
 @radix-ui/react-slot              1.2.4  →     1.2.5
 @radix-ui/react-tabs             1.1.13  →    1.1.14
 @radix-ui/react-tooltip           1.2.8  →     1.2.9
 @storybook/addon-a11y            10.4.0  →    10.4.2
 @storybook/addon-docs            10.4.0  →    10.4.2
 @storybook/addon-vitest          10.4.0  →    10.4.2
 @storybook/react-vite            10.4.0  →    10.4.2
 @tanstack/eslint-plugin-query  5.100.10  →  5.100.14
 @tanstack/react-query          5.100.10  →  5.100.14
 @types/react                    19.2.14  →   19.2.17
 eslint-plugin-storybook          10.4.0  →    10.4.2
 lint-staged                      17.0.5  →    17.0.7
 react                            19.2.6  →    19.2.7
 react-dom                        19.2.6  →    19.2.7
 react-hook-form                  7.76.0  →    7.76.1
 storybook                        10.4.0  →    10.4.2
 typescript-eslint                8.59.3  →    8.59.4
 vite                              7.3.3  →     7.3.5
 zustand                          5.0.13  →    5.0.14

* build(deps): update dependencies (minor)

 @hookform/resolvers               5.2.2  →    5.4.0
 @radix-ui/react-radio-group       1.3.8  →    1.4.0
 @radix-ui/react-select            2.2.6  →    2.3.0
 @radix-ui/react-switch            1.2.6  →    1.3.0
 @tanstack/eslint-plugin-query  5.100.14  →  5.101.0
 @tanstack/react-query          5.100.14  →  5.101.0
 lucide-react                     1.16.0  →   1.17.0
 radix-ui                          1.4.3  →    1.5.0
 react-hook-form                  7.76.1  →   7.77.0
 react-router-dom                 7.15.1  →   7.17.0
 typescript-eslint                8.59.4  →   8.60.1
2026-06-08 19:11:59 +05:30
Kishore B
84a0e4d98a
feat: integrate standalone-ng docker wrapper with Jam Web UI (#1265)
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
* feat: integrate standalone-ng docker wrapper with Jam Web UI

- Add Dockerfile and entrypoint for standalone-ng wrapper service
- Update docker-compose files to support standalone-ng container(joinmarket6)
- Enhance log retrieval and frontend logic for new log file layout
- Update Vite config and constants for standalone-ng backend mode
- Improve documentation for regtest and backend selection

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>

* chore(regtest): zero absolute offers for makers in regtest env

* chore: align npm dev command names

* chore(regtest): set minimum makers to 2 for joinmarket-ng backends

* chore(regtest): use jam-dev-standalone-ng:master image

---------

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>
Co-authored-by: theborakompanioni <theborakompanioni+github@gmail.com>
2026-06-07 18:37:53 +02:00
Parth
9a7b7cb2de
test: add coverage for utilities and shared components (#1267) 2026-06-07 15:59:39 +02:00
Thebora Kompanioni
7ef8d73b1c
chore(storybook): add mobile/tablet viewports (#1254)
Some checks are pending
Build / build (v24.11.1) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Deploy Storybook / deploy (push) Waiting to run
* chore(ci): update storybook-pages actions

* chore(storybook): add mobile/tablet viewports

* chore(storybook): disable isolation for storybook tests
2026-06-07 03:04:26 +05:30
Thebora Kompanioni
3cc63c535c
refactor: move functions and cleanup (#1255)
* refactor: move function 'clamp' to utils

* refactor: move function 'median' to utils

* refactor: move MAX_NUM_COLLABORATORS to constants
2026-06-06 23:53:01 +05:30
dependabot[bot]
5b610bf186
build(deps-dev): bump @vitest/browser from 4.0.18 to 4.1.6 (#1266)
Some checks failed
Build / build (v24.11.1) (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Deploy Storybook / deploy (push) Has been cancelled
* build(deps-dev): bump @vitest/browser from 4.0.18 to 4.1.6

Bumps [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser) from 4.0.18 to 4.1.6.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.6/packages/browser)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 4.1.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* build: align vitest browser packages

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Parth Bandwal <143504541+parrth20@users.noreply.github.com>
2026-06-02 15:22:14 +05:30
Ash
4bbfe95a0b
fix(send): clamp initial collaborators default (#1253) 2026-05-21 21:55:20 +02:00
Parth
182da89194
chore(storybook): deploy Storybook preview to GitHub Pages (#1252)
* chore(storybook): add pages build script

* ci(storybook): add pages deployment workflow

* docs(storybook): document pages preview

* ci(storybook): scope pages workflow concurrency

* ci(storybook): simplify pages deployment
2026-05-22 00:24:36 +05:30
Thebora Kompanioni
8aefe4b74c
build(deps): update dependencies (#1251)
* build(deps): update dependencies

 @chromatic-com/storybook          5.1.2  →     5.2.1
 @storybook/addon-a11y            10.3.6  →    10.4.0
 @storybook/addon-docs            10.3.6  →    10.4.0
 @storybook/addon-vitest          10.3.6  →    10.4.0
 @storybook/react-vite            10.3.6  →    10.4.0
 @tailwindcss/vite                 4.2.4  →     4.3.0
 @tanstack/eslint-plugin-query   5.100.9  →  5.100.10
 @tanstack/react-query           5.100.9  →  5.100.10
 @types/node                    24.10.15  →   24.12.4
 eslint-plugin-storybook          10.3.6  →    10.4.0
 lucide-react                     1.14.0  →    1.16.0
 react-hook-form                  7.75.0  →    7.76.0
 react-i18next                    17.0.6  →    17.0.8
 react-router-dom                 7.15.0  →    7.15.1
 storybook                        10.3.6  →    10.4.0
 tailwind-merge                    3.5.0  →     3.6.0
 tailwindcss                       4.2.4  →     4.3.0
 typescript-eslint                8.59.2  →    8.59.3

* build(dev-deps): update vitest

 @vitest/browser             4.0.9  →  4.0.18
 @vitest/browser-playwright  4.0.9  →  4.0.18
 @vitest/coverage-v8         4.0.9  →  4.0.18
 vitest                      4.0.9  →  4.0.18

---------

Co-authored-by: Kishore B <kishorebsm8@gmail.com>
2026-05-18 17:00:44 +05:30
Thebora Kompanioni
07e387795f
chore(send): collaborative send (#1245)
* chore: reload balance after taker stopped

* chore(send): force open max fee config on submit if missing

* chore(send): store collaborative send attempt

* chore(send): show completion info based on collaborative send attempt

* chore: store payment attempt in session storage

* refactor: externalize PaymentAbortDialog

* chore: active maker/taker alerts
2026-05-18 09:01:36 +02:00
Thebora Kompanioni
ee5770eeeb
chore(ui): improve footer on small screens (#1243)
* chore(footer): align blockheight

* ui(footer): improve footer on small screens

* chore(storybook): add BetaWarningDialog story

* review: remove flex container of footer warning
2026-05-17 21:38:08 +02:00
Parth
0eea853109
chore(storybook): add core component stories (#1247) 2026-05-17 14:42:06 +02:00
Thebora Kompanioni
165d0c4b9c
chore(ui): improve activity indicators (#1249)
Co-authored-by: Kishore B <85435355+kishore08-07@users.noreply.github.com>
2026-05-17 11:02:49 +02:00
Thebora Kompanioni
1de645b7c5
chore(websocket): add JmWebsocketContext (#1244) 2026-05-11 18:46:46 +02:00
Thebora Kompanioni
d851cb9c74
build(deps): update dependencies (#1242)
@storybook/addon-a11y           10.3.5  →   10.3.6
 @storybook/addon-docs           10.3.5  →   10.3.6
 @storybook/addon-vitest         10.3.5  →   10.3.6
 @storybook/react-vite           10.3.5  →   10.3.6
 @tanstack/eslint-plugin-query  5.100.6  →  5.100.9
 @tanstack/react-query          5.100.6  →  5.100.9
 eslint-plugin-compat             7.0.1  →    7.0.2
 eslint-plugin-storybook         10.3.5  →   10.3.6
 jsdom                           29.1.0  →   29.1.1
 storybook                       10.3.5  →   10.3.6
 typescript-eslint               8.59.1  →   8.59.2
 zustand                         5.0.12  →   5.0.13
 react          19.2.5  →  19.2.6
 react-dom      19.2.5  →  19.2.6
 react-i18next  17.0.6  →  17.0.7
 vite            7.3.2  →   7.3.3

 globals           17.5.0  →  17.6.0
 lucide-react      1.13.0  →  1.14.0
 react-hook-form   7.74.0  →  7.75.0
 react-router-dom  7.14.2  →  7.15.0
2026-05-08 17:24:56 +02:00
Thebora Kompanioni
a5d47c8be0
build(ci): report test coverage (#1241) 2026-05-08 17:07:56 +02:00
Kishore B
1b37ad3169
refactor(forms):replace yup path parsing with array-level validation and optimize cross-field checks (#1235)
* refactor(forms):remove yup path parsing, add array-level validation, reducing re-validation

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>

* fix(lint): remove type assertions

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>

* update resolver and context in SweepPage component

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>

---------

Signed-off-by: kishore08-07 <kishorebsm8@gmail.com>
2026-05-06 14:10:51 +05:30
Thebora Kompanioni
454daa2839
chore(regtest): initial joinmarket-ng backend for regtest environment (#1240)
* chore(regtest): initial joinmarket-ng backend for regtest environment

Adds jmwalletd, directory servers, makers, and bitcoind to the regtest
docker-compose environment so jam can be developed against the jm-ng
backend end-to-end.

chore(regtest): wire docker compose env and vite dev proxy for jm-ng

Connects the local regtest containers into a single compose network,
adds tor and fund-wallet helpers, and points Vite's dev proxy at the
local jmwalletd instance.

fix(tags): recognize cj-change, used-empty, and flagged UTXO statuses

joinmarket-ng's WalletService emits four statuses jam's JmPlainTagValue
didn't cover: 'cj-change' (deanonymising change from our CJ),
'used-empty' (previously-used address with zero balance), and 'flagged'
(address shared in a CJ that later failed). They fell through to the
generic 'default' badge with no distinguishing styling.

Add them to JmPlainTagValue and the status->variant map. 'used-empty'
maps to the existing 'used' variant, 'flagged' to 'reused' (both signal
a used address the user should avoid reusing). Add a dedicated
'cj-change' badge variant (emerald) next to 'cj-out' so the
deanonymising change output is visually distinct from an equal-amount
CJ output.

fix(send): keep direct send available with maker

Only block collaborative sends while the maker service is running. Direct sends stay enabled and the form explains why the collaborative toggle is unavailable.

Changelog: Allow direct sends while the maker service is running

docs(dev): explain jm-ng backend workflow

fix(auth): only clear auth on invalid_token 401s

Previously every 401 response cleared the session and logged the user out. jm-ng returns 401 for service-state errors (e.g. POST /tumbler/stop when nothing is running), which should never drop the session. Inspect the WWW-Authenticate header and only clear auth when the server signals ``error="invalid_token"``.

Changelog: Non-auth 401 responses no longer log the user out.

fix(dev): proxy /jmws to the jm-ng HTTPS port

jm-ng serves WebSocket on the same port as the HTTPS API. The `jm-ng:dev` script used to override JMWALLETD_WEBSOCKET_PORT to 32283, but the regtest stack exposes that port without a matching listener, so vite proxied WebSocket upgrades into a dead port and the handshake returned empty. Default the env var to JMWALLETD_API_PORT and drop the override.

Changelog: Fix WebSocket proxying in the local jm-ng dev setup.

fix(dev): correct jm-ng websocket port and proxy targets

Update the README and developer docs to reflect that both ports must be
set when overriding for a custom jm-ng setup.

fix(dev): correct jm-ng websocket port (#1237)

chore(dev): distinct server configs for various backends

* chore(regtest): address jm-ng review comments

---------

Co-authored-by: m0wer <m0wer@sgn.space>
Co-authored-by: Parth Bandwal <143504541+parrth20@users.noreply.github.com>
2026-05-05 13:52:41 +02:00
Parth
f522eae074
fix(earn): try prevent "no confirmed coins" on earn page (#1239)
fix(earn): handle unavailable confirmed balance
2026-05-04 23:55:56 +05:30
theborakompanioni
fd819cf8ca
fix: maxCjFeeRelInPercent validation 2026-05-02 00:22:51 +02:00
Thebora Kompanioni
3cf02afd16
chore: valid number must be finite (#1234)
* chore: valid number must be finite

* chore: add util function isValidInteger

* chore: use isValidNumber and isValidInteger
2026-05-02 00:54:35 +05:30
theborakompanioni
43a1daa752 chore(utxo): fix address group selection 2026-04-30 16:15:21 +02:00
theborakompanioni
16152a4997 chore: disable table 'selection all' toggle on submit 2026-04-30 16:15:21 +02:00