Commit Graph

18 Commits

Author SHA1 Message Date
kerms a8df9ac08d
feat(nvs): add shared parseHexString utility
Two-mode hex parser (0x-prefixed tokenization vs raw hex pairs)
as single source of truth for all hex parsing across components.
2026-03-13 15:25:59 +01:00
kerms 1b1c11ccb9
refactor(nvs): ValidationError type, orphaned-namespace filtering at boundaries 2026-03-12 18:06:30 +01:00
kerms d01c81b48f
fix(partition-table): reject non-Latin-1 characters in partition names 2026-03-12 12:10:06 +01:00
kerms e0e95f80c0
feat(nvs): normalize result with dropped/clamped counts, blob compat check
normalizePartition now returns NormalizeResult { partition, dropped, clamped }
so callers can report exactly what happened during import. Clamp functions
report when values were modified. Add checkBlobCompatibility() for proactive
size warnings on version switch/merge. Also includes reconcileBlobTypes at
all import boundaries and BLOB_IDX whitelist enforcement.
2026-03-12 12:09:47 +01:00
kerms 107e67bea4
fix(app-image): remove customDescRawBytes re-added by merge
The customDescRawBytes field was intentionally removed (replaced by the
HexDump visual viewer). The merge accidentally re-introduced it from the
standalone branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 11:27:06 +01:00
kerms 17d34a33e9
sync: merge submodule feature work (HexDump viewer, hex highlighting)
Merges development done in the website submodule:
- feat: display SPI pin drive strength and custom app desc raw bytes
- feat: add hex dump viewer, show appended SHA256, remove custom app desc
- feat: add field-range map for hex <-> field highlighting
- feat: Wireshark-style hex/field bidirectional highlighting
- feat: add disableFirmwareSelect prop to EspFlasher
- fix(crc32): use correct init value for ESP-IDF ROM CRC32
2026-03-11 11:22:04 +01:00
kerms 1601c0ad38
fix(crc32): use correct init value for ESP-IDF ROM CRC32
esp_rom_crc32_le(0xFFFFFFFF, ...) inverts the input (~0xFFFFFFFF = 0),
so the effective init is 0x00000000, not 0xFFFFFFFF (standard zlib).
This caused all NVS page/entry CRC checks to fail silently.
2026-03-11 11:20:14 +01:00
kerms da91312ca9
feat(app-image): add custom app desc dump and SPI pin drive display 2026-03-11 11:03:57 +01:00
kerms 1076aa3848
fix(crc32): use correct init value for ESP-IDF ROM CRC32
esp_rom_crc32_le(0xFFFFFFFF, ...) inverts the input (~0xFFFFFFFF = 0),
so the effective init is 0x00000000, not 0xFFFFFFFF (standard zlib).
This caused all NVS page/entry CRC checks to fail silently.
2026-03-11 11:03:42 +01:00
kerms 0e21d6cb99
feat: add field-range map for hex ↔ field highlighting 2026-03-10 13:17:41 +01:00
kerms 9b572bb9d3
feat: add hex dump viewer, show appended SHA256, remove custom app desc 2026-03-10 12:59:46 +01:00
kerms 235b5e170a
feat: display SPI pin drive strength and custom app desc raw bytes 2026-03-09 18:18:22 +01:00
kerms c8b560387b
feat(partition-table): add BOOTLOADER and PARTITION_TABLE types
Add ESP-IDF partition types 0x02 (BOOTLOADER) and 0x03 (PARTITION_TABLE)
with their subtype enums and name maps. Refactor getSubtypeName/subtypeFromName
to use a unified SUBTYPE_NAME_MAPS lookup table.
2026-03-05 18:20:04 +01:00
kerms 4959ff74c1
refactor: translate error messages from Chinese to English
Standardize all user-facing error/validation messages across
partition-table, nvs, app-image, and ota-data parsers to English.
2026-02-28 11:50:00 +01:00
kerms d32674617d
feat: add OTA data parser and fix verbatimModuleSyntax compliance
- Add lib/ota-data/ module: parses esp_ota_select_entry_t structures,
  determines active OTA partition from sequence numbers and CRC validation
- Fix all lib files to use `import type` for type-only imports to comply
  with TypeScript verbatimModuleSyntax (partition-table, nvs, app-image)
- Export ota-data from lib/index.ts
2026-02-25 16:34:42 +01:00
kerms 34eb123f5e
feat(partition-table): add initial partition table library and Vue editor 2026-02-22 13:54:39 +01:00
kerms b23a7e5c8a feat(nvs): add NVS editor and binary/CSV toolkit 2026-02-22 13:17:49 +01:00
kerms 8320bf7ab2
feat(app-image): add ESP firmware image parser and viewer with robust
upload handling

- add app image parser/types/constants for ESP image header, extended
header, segments, and app description
- add shared binary read/write utilities and CRC32 helper
- add AppImageViewer component to inspect firmware metadata in UI
- improve upload UX: accept .bin only and show explicit error for ELF input
- prevent status alert timer race by clearing previous timeout before
setting a new one
- ignore .claude in .gitignore
2026-02-22 12:37:30 +01:00