Skip to content

Driver-review remediation: drop redundant media fields + doc hygiene#2

Merged
mannes merged 2 commits into
mainfrom
review/drop-redundant-media-fields
May 30, 2026
Merged

Driver-review remediation: drop redundant media fields + doc hygiene#2
mannes merged 2 commits into
mainfrom
review/drop-redundant-media-fields

Conversation

@mannes
Copy link
Copy Markdown
Contributor

@mannes mannes commented May 30, 2026

Remediates the 2026-05-30 driver review (DRIVER_REVIEW-letratag-2026-05-30.md). No blockers were found; this clears the majors/minors.

Type-layer conformance

  • Remove LetraTagMedia.tapeWidthMm — it shadowed the spec'd MediaDescriptor.widthMm (both 12), was unread at runtime, and was cargo-culted from labelmanager where tapeWidthMm is a real multi-width discriminant. The LT-200B is single-width.
  • Remove LetraTagMedia.printableDots — it shadowed the engine's headDots / the PRINTABLE_DOTS const, and was unread at runtime. Printable head height is an engine fact, not a per-cassette one.
  • Dropped both from the interface, all 10 media.json5 entries, the compile-data.mjs validators, and the test assertions. compile-data still regenerates 10 entries cleanly.

Doc hygiene

  • INTEROPERABILITY.md: removed the source bullet citing decompilation of the official DYMO app; the wire facts remain attributed to prior art (ysfchn/alexhorn) + own on-the-wire capture. Dropped phantom advertising-data telemetry references.
  • DECISIONS.md D5 / PROGRESS.md: rewritten to record that the assumed BLE advertising-data telemetry was phantom and removed — the post-print [1B 52 code] notification is the only status source.
  • Changeset: corrected the stale __DebugEncoderOverrides description (mediaTypeByte is the only remaining knob).

CI-faithful gate (clean tree)

rm -rf dist → frozen install → typecheck → lint → prettier → test:coverage (71 core + 36 web pass, 100% lines) → build. All green. No dependency changes.


Also bundles a pre-existing unpushed chore commit, 4f9525d ci: bump GitHub Actions to latest majors (Node 24 runtime), which was already on local main ahead of origin.

mannes added 2 commits May 30, 2026 15:23
checkout/setup-node v6, pnpm/action-setup v6, action-gh-release v3,
codecov-action v6, repository-dispatch v4, pages artifact/deploy v5,
configure-pages v6. Clears Node 20 runtime deprecation warnings.
…status

Remediates the 2026-05-30 driver review.

- types/data: remove `LetraTagMedia.tapeWidthMm` (shadowed the spec'd
  `MediaDescriptor.widthMm`) and `printableDots` (shadowed engine
  `headDots` / the `PRINTABLE_DOTS` const). Both were unread at
  runtime — cargo-culted from labelmanager where tapeWidthMm is a
  real multi-width discriminant. Drop their compile-data validation
  and test assertions.
- INTEROPERABILITY.md: remove the source bullet citing decompilation
  of the official DYMO app; the wire facts are already attributed to
  prior art (ysfchn/alexhorn) + own on-the-wire capture. Drop the
  phantom advertising-data telemetry references.
- DECISIONS.md D5 / PROGRESS.md: rewrite to record that the assumed
  BLE advertising-data telemetry was phantom and removed; the
  post-print [1B 52 code] notification is the only status source.
- changeset: correct the stale __DebugEncoderOverrides description
  (mediaTypeByte is the only remaining knob) and the wire-format
  framing.

Gate green: typecheck, lint, prettier, test:coverage (71 core + 36
web), build.
@codecov
Copy link
Copy Markdown

codecov Bot commented May 30, 2026

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

@mannes mannes merged commit 2c2d06e into main May 30, 2026
4 checks passed
@mannes mannes deleted the review/drop-redundant-media-fields branch May 30, 2026 18:47
mannes added a commit that referenced this pull request May 30, 2026
* ci(release): pair npm publish with a GitHub Release

Mirror the sibling driver repos' "Publish & Release" workflow: add
workflow_dispatch, grant contents:write, guard that package versions
match the pushed vX.Y.Z tag, authenticate the publish with NPM_TOKEN,
and create a GitHub Release (generate_release_notes, make_latest) on
tag push. Previously the workflow only ran `pnpm publish` with no
GitHub Release.

* docs: remove implementation-phase planning markdown

Drop PLAN.md, PLAN-1.md, PLAN-2.md and the PROGRESS.md build log —
implementation-phase scaffolding now that the driver has shipped.
Cross-references in README.md and DECISIONS.md that pointed at
PLAN-2.md for deferred work are reworded to just note the deferral.
The durable docs remain: README, DECISIONS, INTEROPERABILITY, and the
docs/ tree (the canonical spec/truth home).

Also removes the stray untracked DRIVER_REVIEW-letratag-2026-05-30.md
left over from the merged #2 review.

* docs: trim spec-narration from code docblocks; regen API docs

Code comments now state local decisions, not the spec story — the
canonical wire-format/provenance narrative lives in
docs/protocol/letratag-bt.md, docs/{core,web}.md, DECISIONS.md, and
INTEROPERABILITY.md. Trimmed multi-paragraph protocol re-tellings down
to one-line doc pointers across core (protocol/status/types/debug/
preview) and web (discovery/printer), while preserving every
bench-confirmed constant, wire quirk, and "why" gotcha (e.g. the
2026-05-10 MTU bench, the code-5 1-5-1-5 alternation, the y+1 skip).

Comments only — no code/logic/type changes. typecheck, lint, prettier,
71 core + 36 web tests, and build all green. Regenerated the typedoc
API reference (docs/api/**) to match the leaner docblocks.

* release: 0.6.1

Bump @thermal-label/letratag-core and @thermal-label/letratag-web to
0.6.1 and generate CHANGELOGs from the release changeset. Removes the
orphaned 0.6.0 changeset (initial-phase-1.md) that was never consumed
when 0.6.0 shipped.

Delta since 0.6.0: LetraTagMedia drops the redundant tapeWidthMm /
printableDots fields, the LT-200B is marked verified on bluetooth-gatt
in the shipped registry, and code docblocks / the API reference are
leaner.

---------

Co-authored-by: Mannes Brak <info@mbtech.nl>
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