Skip to content

[DO NOT MERGE] fix(sdk-commands): make the local hammurabi dev server reliable - #1527

Draft
cyaiox wants to merge 2 commits into
stack/sdk-commands-storage-wipfrom
stack/sdk-commands-dev-server
Draft

[DO NOT MERGE] fix(sdk-commands): make the local hammurabi dev server reliable#1527
cyaiox wants to merge 2 commits into
stack/sdk-commands-storage-wipfrom
stack/sdk-commands-dev-server

Conversation

@cyaiox

@cyaiox cyaiox commented Aug 5, 2026

Copy link
Copy Markdown
Member
  • supervise the hammurabi child: auto-respawn with backoff on unexpected
    exit, loud status lines, give-up after 5 consecutive crashes (D1)
  • kill the whole process tree on shutdown so the real server is never
    orphaned holding the port (D2)
  • pin @dcl/hammurabi-server to an exact version + --prefer-offline: no
    more per-spawn registry resolution stalls or silent version drift (D3)
  • crash-proof the preview server: hot-reload ws 'error' listener,
    debounce rejection handling, process-level exception handlers (D4)
  • pre-check explicit --port availability with an actionable error (D5)
  • atomic server-storage.json writes (tmp+rename), loud reset warning,
    guarded scene.json parse during mid-save (D6)
  • restart the hammurabi child on scene rebuild so it never runs a stale
    bundle (D7)

Claude-Session: https://claude.ai/code/session_01Kzo6zwrn1CA79S4RN1dgsU

🤖 Generated with Claude Code

https://claude.ai/code/session_01Kzo6zwrn1CA79S4RN1dgsU


📚 Stack (splits #1505 — merge top-down within each stack)

Network layer (each PR is one self-contained, independently-green commit):

  1. test(sdk): characterization baseline for the network layer refactor #1518 test harness — characterization baseline + red defect suite (this stack's root)
  2. [DO NOT MERGE] refactor(sdk): network layer foundations — break cycles, single isServer, logging discipline #1519 foundations — cycle break, single isServer, logging discipline
  3. [DO NOT MERGE] feat(sdk): hydration FSM — deterministic late-join and reconnect convergence #1520 hydration FSM — late-join/reconnect correctness
  4. [DO NOT MERGE] feat(sdk): default-deny server validation, fixed correction path, O(1) entity lookup #1521 validator — default-deny, correction path, entity index
  5. [DO NOT MERGE] refactor(sdk): unify CRDT codec into a parse-once pipeline #1522 codec — parse-once pipeline (wire goldens byte-identical)
  6. [DO NOT MERGE] feat(sdk): clients target the authoritative server; registry collisions; players dedupe #1523 topology — targeted sends, registry collisions, players dedupe
  7. [DO NOT MERGE] refactor(sdk): parameterize network boot, document the host contract #1524 boot + host-conformance doc
  8. [DO NOT MERGE] refactor(sdk): ponytail sweep — delete what the refactor no longer needs #1525 simplification sweep (−95 lines)

sdk-commands (independent of the stack above):

After a parent squash-merges, the child needs git rebase --onto origin/auth-server <old-parent> <child> — ping the session and it gets restacked.

cyaiox added 2 commits August 5, 2026 16:07
- supervise the hammurabi child: auto-respawn with backoff on unexpected
  exit, loud status lines, give-up after 5 consecutive crashes (D1)
- kill the whole process tree on shutdown so the real server is never
  orphaned holding the port (D2)
- pin @dcl/hammurabi-server to an exact version + --prefer-offline: no
  more per-spawn registry resolution stalls or silent version drift (D3)
- crash-proof the preview server: hot-reload ws 'error' listener,
  debounce rejection handling, process-level exception handlers (D4)
- pre-check explicit --port availability with an actionable error (D5)
- atomic server-storage.json writes (tmp+rename), loud reset warning,
  guarded scene.json parse during mid-save (D6)
- restart the hammurabi child on scene rebuild so it never runs a stale
  bundle (D7)

Claude-Session: https://claude.ai/code/session_01Kzo6zwrn1CA79S4RN1dgsU
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Test this pull request

  • The @dcl/sdk package can be tested in scenes by running

    npm install "https://sdk-team-cdn.decentraland.org/@dcl/js-sdk-toolchain/branch/stack/sdk-commands-dev-server/dcl-sdk-7.25.1-31013717304.commit-20a5c94.tgz"
  • The @dcl/js-runtime package can be tested in scenes by running

    npm install "https://sdk-team-cdn.decentraland.org/@dcl/js-sdk-toolchain/branch/stack/sdk-commands-dev-server/@dcl/js-runtime/dcl-js-runtime-7.25.1-31013717304.commit-20a5c94.tgz"
  • To test with npx init

    export SDK_COMMANDS="https://sdk-team-cdn.decentraland.org/@dcl/js-sdk-toolchain/branch/stack/sdk-commands-dev-server/dcl-sdk-commands-7.25.1-31013717304.commit-20a5c94.tgz"
    npx $SDK_COMMANDS init
  • The /changerealm command to test test in-world

    /changerealm https://sdk-team-cdn.decentraland.org/ipfs/stack/sdk-commands-dev-server-e2e
    
  • You can preview this build entering:
    https://playground.decentraland.org/?sdk-branch=stack/sdk-commands-dev-server

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying js-sdk-toolchain with  Cloudflare Pages  Cloudflare Pages

Latest commit: b0d2726
Status: ✅  Deploy successful!
Preview URL: https://eb56461f.js-sdk-toolchain.pages.dev
Branch Preview URL: https://stack-sdk-commands-dev-serve.js-sdk-toolchain.pages.dev

View logs

@cyaiox cyaiox changed the title fix(sdk-commands): make the local hammurabi dev server reliable [DO NOT MERGE] fix(sdk-commands): make the local hammurabi dev server reliable Aug 5, 2026
@cyaiox
cyaiox marked this pull request as draft August 5, 2026 14:25
@cyaiox
cyaiox force-pushed the stack/sdk-commands-storage-wip branch from 19739d5 to 94924cd Compare August 19, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant