- Icon-based toolbar with dropdown menus
- Seamless inline inputs/selects in table cells
- Smart file type detection with magic bytes and user prompt for ambiguous files
- Add BlobEditorDialog with hex editing, preview, import/export
- Responsive layout with JS+CSS breakpoint at 640px
- File upload support for string, blob, and primitive types
- Fix: use formatEscapes on string file import to preserve literal content
- Fix: robust download with delayed URL revocation
Replace single 导入 dropdown (which had 合并策略 above both open/merge)
with two separate elements: a plain 打开(覆盖) button that directly opens
a file, and a 导入▼ dropdown that owns the 合并策略 radios. Auto
file-type detection from extension (.bin/.csv/.json) with content-sniff
fallback.
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.
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>
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.
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.
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.
- 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
Replace comment-only contract with a Vue prop validator that catches duplicate
.value keys at dev time. Validator is stripped from production builds.
Add inline comment to demo/tsconfig.json documenting the 8 node_modules type
errors (vueuse Bluetooth API, element-plus JSX/slots/icons) that require
skipLibCheck: true until those packages are updated.
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