Skip to content

fix(classic): dispatch notification and map-stat helpers with generated command IDs #264

Description

@zoeyrose

Problem

The Classic-target helpers in content@main/maps/python/Packet.py use stale numeric client command IDs: notification sends 27 instead of NOTIFICATION 26, and map stats sends 13 instead of MAPSTATS 12. This sends otherwise valid payloads to the wrong handlers.

The verified source is content main 27c63b969cad8739fd63ed523a33456f7a1595b0; Packet.py SHA-256 is 7d55564cf5248df5239f8df7dedd59a68606580af223877f6e2cf815291d617f. The correction is a narrowly approved dependency-input repair for native-Linux qualification in atrinik/atrinik#562, with runtime integration owned by atrinik/atrinik#604.

Required change

  • Replace only the notification and map-stat numeric IDs with Atrinik.CLIENT_CMD_NOTIFICATION and Atrinik.CLIENT_CMD_MAPSTATS.
  • Preserve helper signatures, field ordering, optional-field behavior and encoded payloads. Do not alter maps, assets, authored messages, balance or unrelated scripts.
  • Add focused offline tests using a recording SendPacket receiver and generated/exported command values, covering notification optional fields and map-stat fields. A test must reject the current stale numeric dispatch rather than merely mirror the implementation.
  • Validate the Classic-target artifact derived from content@main. Do not select or recreate the historical 1.x line.

Prerequisite and validation

Classic #550 owns exporting the two existing generated command constants through the embedded Atrinik module and verifying their real values. That prerequisite must actually merge before dependent integration or PR publication; no stacked-publication authority is granted.

Use a fresh dedicated safe content worktree and the unchanged issue-delivery workflow. Run focused tests, the applicable content aggregate/schema/syntax/runtime validator, diff checks and fresh independent whole-diff review. Catalog drift remains diagnostic and does not authorize unrelated repairs; immutable-input, provenance, license and payload-verification obligations remain.

After both changes merge, qualification must use the exact merged content commit and freshly verified Classic-target input. No live deployment or manual release publication is included.

Deduplication

Fresh all-state searches, open PR file inventories, seven clean content roots, ledgers and active-session inventory found no existing implementation owner for this correction. Open content PR #258 changes unrelated exit-validation files and remains external.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions