Repository navigation
add git commit to chatwoot custom attributes - #563
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThe Support screen is updated to import a Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Deploying wallet-bitcoin with
|
| Latest commit: |
a939754
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://58c7cf0d.wallet-bitcoin.pages.dev |
| Branch Preview URL: | https://add-git-commit-to-chatwoot.wallet-bitcoin.pages.dev |
Deploying wallet-mutinynet with
|
| Latest commit: |
a939754
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1f4a8064.arkade-wallet.pages.dev |
| Branch Preview URL: | https://add-git-commit-to-chatwoot.arkade-wallet.pages.dev |
ghost
left a comment
There was a problem hiding this comment.
✅ LGTM — Approved
Clean, minimal change. Adds the build-time git commit hash to Chatwoot custom attributes so support can identify exactly which version a user is running.
Reviewed:
scripts/git-commit-info.js— already on master, generatessrc/_gitCommit.tsat build time with short hash + dirty flag. Correct fallback to'unknown'. Exits non-zero on failure.src/_gitCommit.ts— correctly.gitignored, generated bypnpm git-infowhich is chained intobuildandstart.src/screens/Settings/Support.tsx:21,89— import and usage. Simple string constant, no logic change.
Not protocol-critical. No VTXO, signing, forfeit, round, or exit code touched. No cross-repo impact. No security concerns (commit hash is not sensitive and is sent alongside already-exposed pubkey/URLs).
🤖 Reviewed by Arkana
Deploying tmp-boltz-upstream-mainnet-arkade-wallet with
|
| Latest commit: |
a939754
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7c42904f.tmp-boltz-upstream-mainnet-arkade-wallet.pages.dev |
| Branch Preview URL: | https://add-git-commit-to-chatwoot.tmp-boltz-upstream-mainnet-arkade-wallet.pages.dev |
* remove ionic/normalize and ion-button * rebbit fixes * feat(wallet): prefix fiat amounts with currency symbols (#535) Amounts previously rendered with a trailing ISO code (`100.00 USD`, `50.00 EUR`) now use the common Unicode currency symbol as a prefix: `$100.00`, `€50.00`, `£25.00`, `¥1,000`. Currencies without a widely-used single-char symbol (CHF, CNY) keep the trailing-code form, so CNY does not collide with JPY's `¥`. The new formatters live alongside the existing generic ones: - `prettyFiatAmount(amount, currency)` and `prettyFiatHide(value, currency)` in `src/lib/format.ts` take the `Fiats` enum as a typed parameter. - The generic `prettyAmount` / `prettyHide` are intentionally left untouched so asset tickers (e.g. a stablecoin named `USD`) that flow through those helpers keep their trailing-code format. - Decimals are derived from the currency via `fiatDecimalsFor` in `src/lib/fiat.ts` (JPY = 0, others = 2) — shared between `FiatContext` and `prettyFiatAmount` so call sites no longer need to pass `fiatDecimals()`. Touched displays: hero balance (`Balance.tsx`), transaction list rows (`TransactionsList.tsx`), amount picker (`Keyboard.tsx`), transaction details (`Details.tsx`), Send/Receive/Notes success screens, and Send form available caption. Amount input labels (`InputAmount.tsx`) also use the symbol when available. Side fix: `Details.tsx` previously called `prettyAmount` without passing `fiatDecimals()`, hardcoding 2 decimals. JPY now renders as `¥174` / `¥0` in the transaction details instead of `174.00 JPY` / `0.00 JPY`. Hero alignment: the eye-toggle button wrapper now omits an empty unit `<Text>` when the symbol is inlined into the balance, and the button sits inside a `alignItems: center` flex container next to the unit text — keeping the icon centered with the smaller ISO code in the CHF case and snug against the balance in the `$7.30` case. Tests: - New coverage for `prettyFiatAmount` and `prettyFiatHide` in `src/test/lib/format.test.ts` (symbol + trailing-code + JPY 0-decimals). - Existing `prettyAmount` / `prettyHide` tests unchanged — the generic helpers still behave the same. - UI assertions updated to match the new rendered text: `src/test/screens/wallet/index.test.tsx` → `$0.00` `src/test/e2e/init.test.ts` → `$0.00` `src/test/e2e/keyboard.test.ts` → symbol-prefix regex Co-authored-by: Sahil Chaturvedi <sahilc0@users.noreply.github.com> Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Upgrade ts-sdk 0.4.16 - boltz-swap 0.3.17 (#539) * reverse logs in csv export (#546) * reverse logs in csv export * fix * avoid mutating the React state array * Extra tests (#548) * close copy sheet after copy * lint * test swaps in receive * Prevent swap after receival (#547) * Prevent swap after receival * fix * more removals * increase viewport size in tests * more removals * more removals * fixes * fixes * fixes * fix * remove ion-refresher * Merge branch 'master' into remove_ion-button * fix swap page (#549) * fix swap page * lint * add tests * Upgrade ts-sdk 0.4.17 - boltz-swap 0.3.18 (#551) * fix(receive): add spacing between button row and share button (#552) The vertical gap between the Add amount/Copy buttons and the Share button was too tight. Changed FlexCol gap from 0 to 0.75rem. Co-authored-by: Sahil Chaturvedi <sahilc0@users.noreply.github.com> * Revert "Upgrade ts-sdk 0.4.17 - boltz-swap 0.3.18 (#551)" (#553) This reverts commit 1752cc8. * Upgrade ts-sdk 0.4.17 - boltz-swap 0.3.18 (#551) * Revert "Upgrade ts-sdk 0.4.17 - boltz-swap 0.3.18 (#551)" (#553) This reverts commit 1752cc8. * Upgrade ts-sdk 0.4.18 - boltz-swap 0.3.19 (#554) * add git commit to chatwoot custom attributes (#563) * add lnurl tests (#564) * lint * add lnurl tests Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com> * fix(ui): top-align tx history rows when assets are present (#537) * fix(ui): top-align tx history rows when assets are present When a transaction has assets, the right column (sats + fiat + asset info) is taller than the left column (icon + label + date). The outer FlexRow used alignItems 'center' by default, pushing the sats amount above the label text. Switch to alignItems 'start' so both columns begin at the same vertical position. Also adds explicit 'between' to the outer FlexRow and removes a dead alignItems on the non-flex wrapper div. * show only 2 coins in the rigth side of a tx in txs list (#550) --------- Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * final removal Co-authored-by: Copilot <copilot@github.com> * Upgrade ts-sdk 0.4.19 - boltz-swap 0.3.20 (#565) * lint * fix box-sizing Co-authored-by: Copilot <copilot@github.com> * .label styles Co-authored-by: Copilot <copilot@github.com> * fix branta lint error (#568) * works on refresher Co-authored-by: Copilot <copilot@github.com> * fix unit tests Co-authored-by: Copilot <copilot@github.com> * remove ionic/react * fix label alignment * DRY: AssetCard Co-authored-by: Copilot <copilot@github.com> * fix inputAmount --------- Co-authored-by: Sahil Chaturvedi <sahilchaturvedi@protonmail.com> Co-authored-by: Sahil Chaturvedi <sahilc0@users.noreply.github.com> Co-authored-by: pietro909 <2094604+pietro909@users.noreply.github.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
Rebuild vendor/*.tgz from arkade-os/ts-sdk@6c59b22. The new commits are e2e/regtest/CI only (drive signer rotation through the regtest CLI, run-on-all-PRs, regtest submodule bumps, merge #563) — no src changes, so the SDK build is unchanged. Verified against the new build: tsc, build (app + worker), unit tests, and a frozen CI=true install all pass.
…-signer contracts (#670) * feat: consume ts-sdk PR #554 (arkd signer rotation) and flag deprecated-signer contracts Build @arkade-os/sdk and @arkade-os/boltz-swap from the unpublished arkade-os/ts-sdk PR #554 (arkd signer-rotation support) and surface deprecated signers in the dev-only Contracts list. Dependency mechanism (temporary, until the SDK is published to npm): - scripts/prepare-arkade-sdk.js builds both packages from the git ref pinned in package.json ("arkadeSdk") into gitignored vendor/*.tgz. - package.json references them via file:, plus a pnpm override so boltz-swap's workspace:* sdk dependency resolves to the same build. - CI builds the tarballs from the pinned ref before install (Node 24). Feature: - Settings > Advanced > Contracts (dev mode only): each contract is classified against the operator's advertised signer set. Contracts minted under a deprecated signer show a "deprecated signer" badge, and "deprecated signer / past cutoff" once the cooperative-migration cutoff has passed. - Background auto-migration (SettlementConfig.deprecatedSignerMigration, default true) is unchanged and stays enabled. * ci: build the SDK from the pinned ref before install, disable frozen lockfile The first CI run failed at install: pnpm defaults to a frozen lockfile under CI and rejected the rebuilt vendor/*.tgz (ERR_PNPM_TARBALL_INTEGRITY), because the tarballs are not byte-reproducible. A preinstall hook can't fix it either — pnpm resolves the file: dependencies before lifecycle scripts run, so the tarballs must exist before "pnpm install" starts. - .npmrc: frozen-lockfile=false (rebuilt tarballs have unstable integrity). - ci.yml + playwright.yml: build the SDK from the pinned ref into vendor/*.tgz in a step before "pnpm install". Note: Cloudflare Pages preview deploys are configured outside the repo and cannot run a pre-install build step, so they will fail until the SDK is published to npm. * build: commit the vendored SDK tarballs instead of building them in CI Cloudflare Pages preview deploys are configured outside the repo and run a bare `pnpm install` with no pre-build step, so they could not build the unpublished SDK from a git ref. Commit the prebuilt @arkade-os/sdk + @arkade-os/boltz-swap tarballs so every install context (CI, Playwright, Cloudflare previews, local) resolves them at checkout under a frozen lockfile. - vendor/*.tgz are now tracked. Regenerate with `pnpm prepare:sdk` (builds from the ref pinned in package.json) and commit the updated tarballs plus pnpm-lock.yaml when bumping the ref. - Revert the CI/Playwright "Build Arkade SDK" steps and the Node 24 bump, and remove .npmrc: frozen-lockfile is restored because the committed tarballs have stable integrity. * chore: bump pinned ts-sdk ref to 8b630a0 (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@8b630a0. The new commits only touch digest-mismatch error handling (ark provider) and a DigestMismatchError export; the signer-rotation classification API the wallet uses is unchanged. Also switch the contracts test's BigInt literals (1n) to BigInt(): the repo targets < ES2020, so production code uses BigInt() — CI has no tsc step, so the literals slipped through. Verified against the new build: tsc, lint, prettier, build (app + worker), 270 unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to 00ed22d (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@00ed22d. New commits: - feat: exclude post-cutoff deprecated-signer funds from spendable balance - fix(delegate): don't send X-Build-Version to the delegate service (CORS) The signer-rotation classification API and Contract type the wallet uses are unchanged. Verified against the new build: tsc, build (app + worker), 270 unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to 84267a3 (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@84267a3: - fix(providers): don't send X-Build-Version to Esplora and indexer (CORS) Provider HTTP headers only; the signer-rotation API and Contract type the wallet uses are unchanged. Verified against the new build: tsc, build (app + worker), 270 unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to 6c86a52 (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@6c86a52: - fix(wallet): register baseline contracts under deprecated signers at boot - test(e2e): isolate contract-params-change from leftover deprecated signers The signer-rotation API and Contract type the wallet uses are unchanged. Verified against the new build: tsc, build (app + worker), 270 unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to 41c8ee0 (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@41c8ee0: - fix(wallet): register boarding baseline contract under deprecated signers The signer-rotation API and Contract type the wallet uses are unchanged. Verified against the new build: tsc, build (app + worker), 270 unit tests, and a frozen CI=true install all pass. * feat(contracts): compact, searchable, filterable contracts list Rework the dev-only Settings → Contracts screen to handle many contracts: - Compact, collapsible rows (type · address · deprecated-signer badge · state · age); tap to reveal address/script/parameters with copy actions. - Active/Inactive tab, type-filter chips, and a search box (matches type, address, script, params). - Virtualized list (@tanstack/react-virtual) with dynamic row heights and open-state kept in the parent so it survives rows scrolling out. - Boarding contracts now show their on-chain Bitcoin Taproot address (bc1p/tb1p/bcrt1p), derived from the P2TR script, instead of the ark encoding. - Per-section count. Tests updated for the tabbed/filtered UI (virtualizer mocked under jsdom), with added coverage for search, tab filtering, and the boarding address. * feat(contracts): explorer links + compact filter bar - Each contract's address links out to a block explorer: the Arkade explorer for ark addresses, the on-chain mempool explorer for boarding Bitcoin Taproot addresses (external-link icon on the expanded address row). - Much more compact filter bar: a single-line search input and one wrapping chip row (Active/Inactive · type chips · count), replacing the tall search box and segmented control. Frees vertical space so the list no longer gets cut off at the bottom (also fixed the flexbox min-height:0 bound). - Key the list/open-state by contract.script (the primary key) instead of address, which can collide across contracts (e.g. boarding) and made them expand together. * fix(contracts): right-align the copy/explorer icons in expanded rows The icon group was wrapped in a FlexRow, which defaults to width:100%, so the icons left-aligned next to the value. Add `end` (width:undefined) so the wrapper shrinks to its content and the row's space-between pushes it to the right edge, matching the other copy rows. * chore: bump pinned ts-sdk ref to 0e7378b (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@0e7378b: - fix(contractWatcher): recover promptly after subscription disruption (#564) - merge master into the PR branch The signer-rotation API and Contract type the wallet uses are unchanged. Verified against the new build: tsc, build (app + worker), unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to 6c59b22 (PR #554 latest) Rebuild vendor/*.tgz from arkade-os/ts-sdk@6c59b22. The new commits are e2e/regtest/CI only (drive signer rotation through the regtest CLI, run-on-all-PRs, regtest submodule bumps, merge #563) — no src changes, so the SDK build is unchanged. Verified against the new build: tsc, build (app + worker), unit tests, and a frozen CI=true install all pass. * chore: bump pinned ts-sdk ref to ac4d3a5 (X-Build-Version 0.9.9) * fix(asp): show 'update your wallet' instead of 'server unreachable' on BUILD_VERSION_TOO_OLD * chore(copy): use 'Arkade server' consistently (not 'Ark server') * style: prettier-format asp.test.ts * fix(asp): detect BUILD_VERSION_TOO_OLD against rc.1 (bump SDK 52236be) arkd's guard interceptors run outside its error-detail converter, so the REST rejection carries an empty details[] and the name only in the message. Bump the vendored SDK to 52236be (maybeArkError message-prefix fallback) and extract the min version from the message when metadata is absent, so the wallet shows the outdated-client prompt instead of 'Arkade server unreachable'. * style(asp): reword outdated-client message * Upgrade ts-sdk 0.4.35 - boltz-swap 0.3.40 * chore: remove vendored SDK tarballs now that 0.4.35/0.3.40 are published * Update lock file * fix: use aspErrorText on all screens so outdated-wallet message shows consistently * fix: react to aspInfo.outdated in error effects, add Chip keyboard a11y, drop orphaned SDK vendoring script --------- Co-authored-by: Pietro Grandi <dev@pietro.uno>
@Kukks please review
Summary by CodeRabbit