

749fdc114f
feat(decoder+ui): close remaining P2 items from #1279 — payloadTypeNames, legend, TransportCodes, Feat1/2, RAW_CUSTOM, sensor docs (#1291)
RED commit: `dc4c0800` — CI:
https://github.com/Kpa-clawbot/CoreScope/actions?query=branch%3Afix%2Fissue-1279-p2
Closes the remaining six 🟢 P2 items in umbrella #1279 (PR #1280 shipped
P0+P1, PR #1276 shipped ACK/RESPONSE/PATH legend rows).
### Item-by-item
| # | Item | Where | Test |
|---|---|---|---|
| 1 | `payloadTypeNames` parity | `cmd/server/store.go` |
`cmd/server/issue1279_p2_test.go::TestPayloadTypeNamesAll13` |
| 2 | Legend rows: Anon Req / Grp Data / Multipart / Control / Raw
Custom | `public/live.js` | `test-issue-1279-legend-p2-e2e.js`
(Playwright) |
| 3 | TransportCodes detail-row + `code1=` / `code2=` filter grammar |
`public/packets.js`, `public/packet-filter.js` |
`test-issue-1279-p2-code-filter.js` (6 cases) |
| 4 | Multibyte capability badge on node detail/list rows |
`public/nodes.js::renderNodeBadges` | `n.hash_size >= 2` (observable
Feat1/Feat2 proxy; firmware `AdvertDataHelpers.h:14-16`) |
| 5 | RAW_CUSTOM (0x0F) `{rawLength, firstByteTag}` decode + detail-row
| `cmd/server/decoder.go`, `cmd/ingestor/decoder.go`,
`public/packets.js` | `TestDecodeRawCustomExposesLengthAndTag` × 2 +
updated `TestDecodePayloadRAWCustom` |
| 6 | Sensor advert telemetry firmware-derivation comments |
`cmd/ingestor/decoder.go:363-380` | pure comments — exempt per AGENTS |
### Firmware refs cited inline
- `firmware/src/Packet.h:19-32` — PAYLOAD_TYPE_* constants
- `firmware/src/Packet.h:46` — TransportCodes wire layout
- `firmware/src/Mesh.cpp:577` — `createRawData`
- `firmware/src/helpers/SensorMesh.{h,cpp}` — sensor advert telemetry
derivation
- `firmware/src/helpers/AdvertDataHelpers.h:14-16` — Feat1/Feat2
### TDD
Red `dc4c0800` proves the assertions gate behavior:
- `payloadTypeNames` had only 12 entries (no 0x0F).
- RAW_CUSTOM decoded as `UNKNOWN` with no envelope fields.
Green `<HEAD>` makes both green; per-item tests included.
### Cross-stack note
Cross-stack: justified — items 1/5 add decoder output fields; items
2/3/4/5 surface those fields in the UI in the same PR per #1279
acceptance.
### Out of scope
Item 4 surfaces the observable multibyte capability via the persisted
`hash_size` (Feat1/Feat2 wire bits are only on transient adverts and not
stored per-node today); persisting raw Feat1/Feat2 per-node is left for
a follow-up.
Fixes #1279
---------
Co-authored-by: bot <bot@corescope>
2026-05-19 08:08:28 -07:00
..
2026-04-21 09:09:39 -07:00
2026-04-03 13:51:13 -07:00
2026-05-17 17:33:30 +00:00
2026-05-18 12:27:44 -07:00
2026-04-05 14:50:40 -07:00
2026-04-05 09:49:39 -07:00
2026-05-03 17:56:42 -07:00
2026-05-03 17:56:42 -07:00
2026-05-17 16:13:11 +00:00
2026-05-18 22:51:23 -07:00
2026-05-18 22:51:23 -07:00
2026-05-18 22:51:23 -07:00
2026-05-18 22:51:23 -07:00
2026-04-12 18:09:23 -07:00
2026-05-03 17:41:22 -07:00
2026-04-20 21:46:34 -07:00
2026-05-19 01:17:12 -07:00
2026-05-18 12:27:44 -07:00
2026-05-19 01:17:12 -07:00
2026-05-19 01:17:12 -07:00
2026-04-16 00:18:25 -07:00
2026-04-05 09:49:39 -07:00
2026-04-17 09:24:40 -07:00
2026-05-18 12:27:44 -07:00
2026-05-02 12:04:37 -07:00
2026-05-02 12:04:37 -07:00
2026-05-15 22:46:25 -07:00
2026-05-16 17:28:40 +00:00
2026-05-06 23:50:44 -07:00
2026-05-18 23:52:27 -07:00
2026-05-15 22:34:21 -07:00
2026-05-15 22:34:21 -07:00
2026-05-19 08:08:28 -07:00
2026-05-05 01:16:57 -07:00
2026-05-05 01:16:57 -07:00
2026-05-16 20:56:52 +00:00
2026-04-16 00:09:36 -07:00
2026-05-15 22:46:25 -07:00
2026-05-15 22:46:25 -07:00
2026-05-16 20:56:52 +00:00
2026-05-05 01:58:52 -07:00
2026-05-06 23:50:44 -07:00
2026-05-06 23:50:44 -07:00
2026-03-31 01:10:56 -07:00
2026-05-08 16:29:23 -07:00
2026-03-27 01:16:59 -07:00
2026-04-18 11:52:22 -07:00
2026-04-18 11:52:22 -07:00
2026-05-06 23:50:44 -07:00
2026-05-06 23:50:44 -07:00
2026-04-03 13:11:59 -07:00
2026-05-15 16:21:14 +00:00
2026-05-16 19:55:00 +00:00
2026-05-15 22:46:28 -07:00
2026-05-15 20:24:55 -07:00
2026-05-15 22:46:25 -07:00
2026-05-17 16:13:11 +00:00
2026-04-20 22:15:02 -07:00
2026-05-03 20:10:02 -07:00
2026-04-21 04:51:24 +00:00
2026-05-02 20:35:15 -07:00
2026-05-17 16:13:11 +00:00
2026-05-19 08:08:28 -07:00
2026-05-18 23:19:27 -07:00
2026-05-18 23:52:27 -07:00
2026-05-05 01:33:23 -07:00
2026-05-05 01:33:23 -07:00
2026-04-20 23:10:33 -07:00
2026-04-18 11:39:13 -07:00
2026-05-03 08:56:09 -07:00
2026-05-05 06:42:58 +00:00
2026-05-17 16:13:11 +00:00
2026-05-16 10:14:44 -07:00
2026-04-02 23:45:03 -07:00
2026-05-15 09:16:39 -07:00
2026-05-15 09:16:39 -07:00
2026-05-16 10:14:44 -07:00
2026-04-30 09:25:51 -07:00
2026-05-16 19:55:00 +00:00
2026-05-17 16:13:11 +00:00
2026-05-17 16:13:11 +00:00
2026-05-05 01:41:00 -07:00
2026-05-05 01:41:00 -07:00
2026-04-17 23:43:05 +00:00
2026-05-18 09:22:27 -07:00
2026-05-18 07:36:33 -07:00
2026-04-03 13:33:26 -07:00
2026-05-01 23:11:27 -07:00
2026-04-05 15:05:20 -07:00
2026-05-18 23:52:27 -07:00
2026-05-17 16:13:11 +00:00
2026-03-30 03:42:11 +00:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-15 22:46:28 -07:00
2026-05-18 23:19:30 -07:00
2026-05-02 11:15:25 -07:00
2026-05-08 16:29:23 -07:00
2026-05-08 16:29:23 -07:00
2026-05-08 16:29:23 -07:00
2026-05-08 16:29:23 -07:00
2026-05-05 17:56:56 -07:00
2026-05-08 16:29:23 -07:00
2026-04-01 19:26:11 -07:00
2026-05-15 09:16:39 -07:00
2026-05-18 23:52:27 -07:00
2026-05-03 19:50:01 -07:00
2026-05-18 07:36:33 -07:00
2026-05-18 09:22:27 -07:00
2026-05-05 02:33:27 -07:00
2026-05-05 02:33:27 -07:00
2026-05-05 01:34:08 -07:00
2026-05-05 01:34:08 -07:00
2026-05-15 16:21:14 +00:00
2026-05-15 09:16:39 -07:00
2026-05-17 16:42:01 -07:00
2026-04-20 19:55:00 -07:00
2026-04-21 04:51:24 +00:00
2026-05-18 07:36:28 -07:00
2026-05-03 17:56:12 -07:00
2026-05-18 07:36:28 -07:00
2026-05-16 20:56:52 +00:00
2026-05-18 23:52:27 -07:00
2026-05-02 20:15:30 -07:00
2026-05-02 20:15:30 -07:00
2026-05-15 16:21:14 +00:00
2026-05-03 17:40:54 -07:00
2026-04-20 23:10:33 -07:00
2026-04-21 09:09:39 -07:00
2026-05-19 08:08:28 -07:00
2026-05-03 17:41:22 -07:00
2026-05-03 17:41:22 -07:00
2026-05-17 16:13:11 +00:00
2026-04-20 19:55:00 -07:00
2026-04-20 19:55:00 -07:00
2026-05-17 16:13:11 +00:00
2026-03-30 03:42:11 +00:00
2026-04-01 12:19:20 -07:00