Development Update — 2026-09-08

by Jamie

Development Update — 2026-09-08

Share

Overview: Where Development Is Heading

The backend repo is currently focused on bug fixes, new features. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches; Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats; remove unused routes from server.js and update imports; Merge remote-tracking branch 'origin/refactor2026' into refactor2026; fix: use = instead of LIKE for numeric for_coll_id in nftMetaById. 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, style cleanup. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: fix: place flare route under $locale for /en/chains/flare; style: apply style guide tokens to error page; fix: single-layer error handling with shell-preserving boundary; fix: single-layer error handling with shell-preserving boundary; fix: hard navigate Continue button for clean one-click recovery. 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

e4ccc9b 2026-08-26 02:53:59
Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches

eaba5d4 2026-08-26 00:30:07
Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats

63692a2 2026-08-25 03:55:20
remove unused routes from server.js and update imports

f149a44 2026-08-25 03:54:09
Merge remote-tracking branch 'origin/refactor2026' into refactor2026

601a398 2026-08-25 02:04:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

02ce78b 2026-08-25 02:03:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

e2fe3de 2026-08-25 01:24:33
remove unused routes from server.js and update imports

fcb4dbe 2026-08-24 01:52:41
Separate blockscout cache by chainId in newmeta and gitignore newmeta

0cb9b26 2026-08-24 01:10:51
test(nft): drop unsupported 'order' field from nftMetaById validation tests

d198115 2026-08-24 01:10:21
fix(nft): correct slug resolution in nftMetaById

6519a0a 2026-08-24 00:59:48
feat(nft): accept canonicalName + chainName (slug) in nftMetaById

1776276 2026-08-23 18:51:26
fix(getCollections): apply net filter — number has no .length

9fa19e6 2026-08-23 18:15:03
feat(collInfo): accept canonicalName+chainName or contractAddress+chainName

5bb7844 2026-08-23 18:14:54
feat:
add canonicalName column and backfill helper

f538183 2026-08-23 00:37:26
fix:
preserve null query params, store contract names, remove 1000 cap, normalize new input format, pass db/tokenType into ingestContracts, update existing collections rows, fetch metadata fallback, use null-preserving token pagination serializer

61dac6c 2026-08-22 20:25:30
feat(chainWatch): show canonical signature names on stdout NFT lines

9364571 2026-08-22 20:13:02
feat(db): add signatures table for chainWatch learned selectors

c2e7e43 2026-08-22 20:12:37
feat(chainWatch): persist learned signatures to MySQL signatures table

b6c58c8 2026-08-22 18:36:17
fix(db): widen collections.totalSupply to BIGINT UNSIGNED

b1148e0 2026-08-22 18:36:08
fix(chainWatch): make DB writes non-fatal; log full SQL + values on failure

6f55254 2026-08-22 18:27:28
feat(chainWatch): gate imports on known NFT func selectors + event topics

96fd0fb 2026-08-22 18:14:22
fix(chainWatch): snapshot loop index in subscribe goroutine (nil-pointer panic on startup)

19f9bfa 2026-08-22 18:05:23
feat(chainWatch): add crash handling + retry totalSupply + ipfs.io gateway

78cd2a1 2026-08-22 17:40:52
docs(chainWatch): track clean crash-handling as an open task in AGENTS.md

4f49917 2026-08-22 17:39:58
docs(chainWatch): add AGENTS.md capturing current watcher state

Frontend Commits

0a89396ec 2026-09-08 05:17:07
fix:
place flare route under $locale for /en/chains/flare

a02d4d029 2026-09-08 05:05:17
style:
apply style guide tokens to error page

61c8aa85b 2026-09-08 05:00:15
fix:
single-layer error handling with shell-preserving boundary

39f1d1970 2026-09-08 04:57:00
fix:
single-layer error handling with shell-preserving boundary

cfa2886dd 2026-09-08 04:41:38
fix:
hard navigate Continue button for clean one-click recovery

77a1151ff 2026-09-08 04:37:22
fix:
force fresh ErrorBoundary mount on pathname change via React key

c47c503a0 2026-09-08 04:29:54
fix:
use useLocation inside ErrorBoundary so pathname updates reset the class boundary on route change

d4d20dcd6 2026-09-08 04:27:32
fix:
navigate-only on Continue; reset via locationKey change

df2dc94fe 2026-09-08 04:25:50
fix:
reset ErrorBoundary on route change so nav links work after error

afa80029a 2026-09-08 04:16:59
fix:
wire ErrorBoundary reset through ErrorComponent so users can leave the error page

c183069fb 2026-09-08 04:10:06
fix:
use published @byteone/web3-style-guide 0.2.1 import path

d574ec0f5 2026-09-08 04:04:46
feat:
import @byteone/web3-style-guide package instead of local CSS copies

3698e70a3 2026-09-08 03:50:46
ref: copy used legacy CSS blocks into legacy-clones.css; swap App import

6dbcb5dd5 2026-09-08 03:42:09
style:
modernise SignIn page (pixel-card, pixel-input, pixel-btn; drop purple/gradient)

0234c0a27 2026-09-08 03:35:04
fix:
Modal2 key tied to show state to prevent partial-update flicker

596c9a629 2026-09-08 03:34:00
fix:
remove showModal(true) from MetaModal content function (was causing render loop)

8483a27b6 2026-09-08 03:32:05
fix:
memoize Modal2 component to prevent flashing from parent rerenders

40803639d 2026-09-08 03:31:12
fix:
move Modal2 outside col-12 pane so it overlays as fixed backdrop

f4b1d5caf 2026-09-08 03:29:56
fix:
remove animation causing rapid modal flicker

0b12a3cab 2026-09-08 03:29:23
fix:
ItemDetails SectionInfo Modal2 handleClose + ESC (via Modal2 useEffect)

4502b175b 2026-09-08 03:26:53
feat:
Modal2 closes on Escape key

71f370968 2026-09-08 03:23:17
fix:
authors re-render loop — split effects, init guard, stable search state

db24a9d08 2026-09-08 03:18:06
fix:
authors re-render loop — memoize fetchAuthors with useCallback, add initialAuthors dep

7ac04d412 2026-09-08 03:14:23
fix:
treat collectionName as string prop, not function

3037a2231 2026-09-08 03:12:54
fix:
restore valid Modal2 component (remove stray export default mid-function)