Development Update — 2026-09-25

by Jamie

Share

Overview: Where Development Is Heading

The backend repo is currently focused on bug fixes. Several fixes are landing to stabilize the existing flows. Recent commit subjects include: fix(ops): harden chainWatch supervisor + surface watcher health on /health (Phase 4); fix(chainwatch): bound startup DB connect + standard-detection probes (Phase 3); fix(chainwatch): decouple per-chain goroutine panics from process exit (Phase 2); fix(chainwatch): recover-and-log panics in fire-and-forget goroutines (P0) so one bad item can't abort the watcher; fix(webhook): protect chainWatch AM webhooks with a shared secret — fail closed, return 404. The work is tightening the foundation before more blockchain-facing features ship.

Overview: Where Development Is Heading

The frontend repo is currently focused on bug fixes, new features, performance improvements, maintenance tasks. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: chore: stop tracking SQLite sidecar files (conversation.db-shm/wal); fix: wallet NFT cards use shimmer placeholder for missing/broken images; fix: wallet NFT image URLs use canonical CDN path with 404-fallback query; fix: restore NFT-detail shimmer placeholder background inside modal; fix: modal placeholder min-width 33vw (was 25vw). The work is converging on a more stable and maintainable user experience.

Project Direction — Both repos are converging on a stable, production-ready NFT marketplace. The backend is hardening core systems while the frontend improves architecture and user experience.

Backend Commits

1970a3d 2026-09-24 19:16:29
fix(ops): harden chainWatch supervisor + surface watcher health on /health (Phase 4)

aa1940e 2026-09-24 18:59:58
fix(chainwatch): bound startup DB connect + standard-detection probes (Phase 3)

ea923a6 2026-09-24 18:45:48
fix(chainwatch): decouple per-chain goroutine panics from process exit (Phase 2)

32ec3dc 2026-09-24 18:09:19
fix(chainwatch): recover-and-log panics in fire-and-forget goroutines (P0) so one bad item can't abort the watcher

1e73347 2026-09-23 22:04:54
fix(webhook): protect chainWatch AM webhooks with a shared secret — fail closed, return 404

162eda7 2026-09-23 21:48:15
fix(chainwatch): self-heal AM ws subscriptions — reconnect every 10s on drop

5c0583c 2026-09-23 21:40:56
fix(poller): backfill watermark + provenance + sale/type schema; point aManager at latest Anvil proxy

c9769ad 2026-09-23 21:40:56
feat(events): record AM offers + refunds in SQL; full AM event coverage across chainWatch + webhook

ee6ca2f 2026-09-23 18:33:44
fix(poller): skip chains without working rpc — kill ethers detect-retry log flood

7ef302e 2026-09-23 17:46:58
fix(server): make SMTP failures non-fatal + default to localhost:25

206639f 2026-09-23 16:50:23
feat(poller): scale to thousands of listings — chunked multicall + parallel DB

4a467f7 2026-09-23 16:40:20
feat(poller): AuctionManager reconciliation poller via Multicall3

5492e01 2026-09-20 11:54:54
fix:
health endpoint reported false negatives for database and IPFS

30a78f2 2026-09-20 10:18:03
fix:
prefer localhost DB host on pm6 host

ef45c29 2026-09-20 09:34:45
fix:
fetch IPFS content from internal gateway + race public gateways via Promise.any

33a77d6 2026-09-20 01:49:13
fix:
race local IPFS vs public gateway in urlFetcher via Promise.any

f199a97 2026-09-20 00:45:41
fix:
include imageUrl in wallet owned_nfts + walletNfts queries

73d6241 2026-09-20 00:13:46
fix:
populate auctions.endTime via getActiveAuction + clear token auctionID on finalize

d3f4a6d 2026-09-19 23:10:25
fix:
/api/v1/wallet 500 — auctions.sellerID column does not exist

495ac1b 2026-09-19 23:01:09
fix:
failed-tx webhook rejected on empty chainName

b553789 2026-09-19 22:56:48
fix:
drop nonexistent updatedAt column from tx-update patch

374a76d 2026-09-19 22:51:49
feat:
log reverted AuctionManager txs via known function selectors

c5bf91f 2026-09-19 22:33:37
feat:
tx-update endpoint + receipt gas/revert reporter for auction events

22a26e1 2026-09-19 21:45:31
auction webhook: upsert per-token ipfs_metadata row on newListing

c7ebfe0 2026-09-19 21:40:34
auction webhook: auto-create collection when listing's contract is unknown

Frontend Commits

94cf64430 2026-09-20 01:53:52
chore:
stop tracking SQLite sidecar files (conversation.db-shm/wal)

156111045 2026-09-20 01:06:07
fix:
wallet NFT cards use shimmer placeholder for missing/broken images

e2bdd7acb 2026-09-20 00:45:34
fix:
wallet NFT image URLs use canonical CDN path with 404-fallback query

31a0692e4 2026-09-20 00:40:13
fix:
restore NFT-detail shimmer placeholder background inside modal

c07da384f 2026-09-20 00:35:07
fix:
modal placeholder min-width 33vw (was 25vw)

9fe5dc7d7 2026-09-20 00:34:25
fix:
modal placeholder at least 25vw and 1:1 aspect

dc4189209 2026-09-20 00:33:46
fix:
NftDetailModal shows shimmer placeholder when image missing/fails

7793c29b2 2026-09-20 00:13:35
feat:
extract reusable NftDetailModal; use for collection + wallet owned-NFT cards

245793808 2026-09-19 23:25:11
feat:
restyle wallet page to web3 style guide + fix collection View link

0b39d9e43 2026-09-19 22:04:00
collection page: render tokens with no metadata yet + 'for sale' banner

2bf8246fb 2026-09-14 10:18:55
chore:
remove preloader shell from index.html

728d644d3 2026-09-14 10:18:07
chore:
regenerate sitemap index timestamps (build artifact)

244c28071 2026-09-14 09:13:39
feat:
SSR prepopulates collection grid img src with CDN cache URL

2ef330778 2026-09-14 09:03:23
feat:
SSR prepopulates collection card img src with CDN cache URL

6d2a502f9 2026-09-13 23:27:30
perf:
reuse grid metadata in item modal to skip backend fetch

7b5ba168a 2026-09-13 23:16:42
fix:
clicking outside the open mobile nav panel collapses it

e029cd8b3 2026-09-13 23:05:54
fix:
collapse mobile nav panel when an item or sub-item is selected

3ea57eee5 2026-09-13 22:59:57
perf:
reuse grid image URL in item modal to avoid duplicate CDN fetch

dec994c51 2026-09-13 22:52:47
feat:
fade+slide transition on mobile nav show/hide

d6882e7e9 2026-09-13 22:50:51
fix:
mobile nav top offset calc(var(--header-height) - 20px)

dafef3132 2026-09-13 22:49:27
fix:
mobile nav panel drops just below burger, right edges aligned

07a5e35b6 2026-09-13 22:44:57
refactor:
remove dead sidenav-toggler li from SecNavItem

c0a8211a3 2026-09-13 22:37:43
fix:
right-align caret on mobile nav items with submenus

ee6cb32e1 2026-09-13 22:37:05
fix:
left-align text in mobile nav dropdown items

dcb9d560b 2026-09-13 22:36:25
fix:
mobile nav items fill full panel width