Skip to content

modeld: publish the Jetson's model sha256 beside the local receipt - #23

Merged
trung791997 merged 1 commit into
vasm-jetson-updater-bridgefrom
jetlink-model-identity
Nov 11, 2026
Merged

trung791997 merged 1 commit into
vasm-jetson-updater-bridgefrom
jetlink-model-identity

Conversation

@trung791997

Copy link
Copy Markdown
Owner

What

While a Jetlink Jetson drives, modelIdentity carried only the local small model's receipt (modeld records SMALL on every Jetson handover), so the logs, and the Polaris site reading them, showed the drive as "small / unverified".

modeld now also publishes, while the Jetson is active:

  • a modelIdentity logMessage every 5 s:
    {"msg": {"event": "modeld.jetlink", "version": 1, "active": true, "sha256": "<64 hex>", "checkpoint": "<str|null>", "sinceMonoNs": <int>}}
  • a cloudlog modeld.jetlink event each time the active Jetson model changes, including going inactive (active: false, sha256: null).

The local receipt, ModelVariant and logged_model_load are unchanged, so on-device status, UI, recovery and galaxy drive analysis read the same as before. Galaxy ignores the new event, and a test checks it is never read as a load.

Evidence

Static only, from unit tests; no drive yet.

  • starpilot/models/tests/test_receipt.py: 13/13 pass, including the new Jetson test (rate limit, one cloudlog per model, no marker while inactive, malformed sha rejected, failure reported without raising).
  • starpilot/models/tests: 8 tests fail and 6 can't load, and the set is identical with and without this change. The ones that can't load hit the aarch64 .so files.

For the site

Polaris could treat time covered by an active modeld.jetlink as "big model (Jetson), sha256 = X" and check X against the registry. modelV2.big is a cross-check.

🤖 Generated with Claude Code

… receipt

While a Jetlink Jetson drives, modelIdentity only carried the local small
model's receipt, so logs (and sites reading them) showed "small". modeld now
also publishes a 'modeld.jetlink' logMessage (sha256, checkpoint, sinceMonoNs)
every 5 s while the Jetson is active, and a cloudlog 'modeld.jetlink' event
each time the active Jetson model changes. The local receipt, ModelVariant and
logged_model_load are unchanged, so on-device status, UI and recovery read the
same as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trung791997
trung791997 force-pushed the jetlink-model-identity branch from 924cc51 to 7895e8d Compare November 11, 2026 18:10
@trung791997
trung791997 changed the base branch from night-star7-vasm-jetson to vasm-jetson-updater-bridge November 11, 2026 18:10
@github-actions

Copy link
Copy Markdown

Process replay diff report

Replays driving segments through this PR and compares the behavior to reviewed reference outputs.
Please review any changes carefully to ensure they are expected.

⚠️ 1 changed, 65 passed, 0 errors

Show changes

HONDA2 - regen6170C8C9A35|2025-04-08--22-57-46--0 [card]

  sendcan.2.dat (590 diffs)
    frame 0: b'A\x04\x00H\x00' -> b'AD\x00H\x0c'
    frame 10: b'A\x04\x00H\x1f' -> b'AD\x00H\x1b'
    frame 20: b'A\x04\x00H.' -> b'AD\x00H*'
    frame 30: b'A\x04\x00H=' -> b'AD\x00H9'
    frame 40: b'A\x04\x00H\x00' -> b'AD\x00H\x0c'
    frame 50: b'A\x04\x00H\x1f' -> b'AD\x00H\x1b'
    frame 60: b'A\x04\x00H.' -> b'AD\x00H*'
    frame 70: b'A\x04\x00H=' -> b'AD\x00H9'
    frame 80: b'A\x04\x00H\x00' -> b'AD\x00H\x0c'
    frame 90: b'A\x04\x00H\x1f' -> b'AD\x00H\x1b'
    (... 580 more)

@trung791997
trung791997 merged commit 9c0a62d into vasm-jetson-updater-bridge Nov 11, 2026
4 checks passed
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