Sitelet https://github.com/msgwing/ZeroSMTP/pull/245
Skip to content

docs: add Toshiba OAuth compatibility - #245

Merged
msgwing merged 3 commits into
msgwing:mainfrom
Mohitingale13:docs/add-toshiba-oauth
Aug 23, 2026
Merged

msgwing merged 3 commits into
msgwing:mainfrom
Mohitingale13:docs/add-toshiba-oauth

Conversation

@Mohitingale13

@Mohitingale13 Mohitingale13 commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR change?

Addresses #241
Adds Toshiba printers and MFPs to the device compatibility dataset with a check-advisory OAuth 2.0 classification.

Research & Evidence

Toshiba Tec has published a dedicated advisory regarding Microsoft 365 Exchange Online's deprecation of Basic Authentication. Importantly, Toshiba provides a model-by-model compatibility matrix rather than a single unified firmware floor.

The advisory explicitly details:

  • Dozens of compatible e-STUDIO models, noting their respective firmware release dates.
  • Intermediate cases where only email reception is supported (e.g., e-STUDIO 3508LP series).
  • Models pending future updates.
  • Several older models (e.g., 301DN, 302DNF, 1058, 1208) that are explicitly marked as "Not compatible."

Primary evidence:
https://www.toshibatec.com/information/20260113_01.html

Implementation

  • Added Toshiba to data/devices.json with status: "check-advisory".
  • Because Toshiba maintains a moving, authoritative compatibility matrix for its hardware, check-advisory is semantically correct. It points the user to the vendor's matrix without creating a stale duplicate in our dataset.
  • Left models empty, consistent with the check-advisory pattern.
  • Regenerated docs/DEVICE-COMPATIBILITY.md and the Toshiba device page.
  • Verified data/devices.json ends with a trailing LF and ran the build-device-table.py --check validation.

@msgwing
msgwing merged commit 542ab9f into msgwing:main Aug 23, 2026
24 checks passed
msgwing added a commit that referenced this pull request Sep 1, 2026
`czeka-czlowiek` i `zalegle-zewnetrzne` pytaja GitHuba o `state: 'open'`.
Scalony pull request jest zamkniety, wiec praca przyjeta i nieodnotowana
byla dla calego nadzoru niewidzialna z definicji - a to jedyne miejsce,
w ktorym konczy zycie wklad kontrybutora.

Zmierzone na wszystkich 14 scalonych wnioskach od ludzi z zewnatrz:
piec nie ma ani jednego naszego slowa (#238 i #245 od dziewieciu dni),
jeden ma ostatnie zdanie ich (#300), retencja 2 z 5, @slegarraga milczy
od 26 dni. Zlecenie tego zadania wymienialo jeden zalegly wklad.

Bramka nie liczy komentarzy, tylko sprawdza ich autora, i to zmienia dwa
wyniki: #362 (@lesbass) ma komentarz, ale napisal go inny kontrybutor,
wiec jest dlugiem; #83-#85 (@slegarraga) nie maja komentarza od nas,
tylko recenzje z trescia, wiec dlugiem nie sa.

Cisza kontrybutora liczona od JEGO ostatniej czynnosci, nie od naszego
scalenia - inaczej wlasne klikniecie byloby dowodem, ze on wciaz z nami
jest. Na @slegarraga roznica wynosi piec dni.

Czego to zadanie celowo nie robi: nie pisze podziekowan (automatyczne
"dziekujemy" mowi czlowiekowi wprost, ze po drugiej stronie nie bylo
nikogo), nie zaczepia nikogo, kto ucichl (prog 21 dni jest wybrany, nie
wyliczony - n=2 odstepy od jednej osoby - wiec uspienie nigdy nie zaklada
zgloszenia samo), nie przypisuje wlasciciela.

Logika w tools/contributor-care.js, testowana na prawdziwych danych tych
14 wnioskow, importuje regule "kto napisal ostatni" z unanswered-external.js
zamiast trzymac jej druga kopie. Sprawdzona przez zepsucie: odwrocenie
progu dojrzalosci wywraca 4 z 16 testow, odwrocenie testu autorstwa 8 z 16.
msgwing added a commit that referenced this pull request Sep 1, 2026
`czeka-czlowiek` i `zalegle-zewnetrzne` pytaja GitHuba o `state: 'open'`.
Scalony pull request jest zamkniety, wiec praca przyjeta i nieodnotowana
byla dla calego nadzoru niewidzialna z definicji - a to jedyne miejsce,
w ktorym konczy zycie wklad kontrybutora.

Zmierzone na wszystkich 14 scalonych wnioskach od ludzi z zewnatrz:
piec nie ma ani jednego naszego slowa (#238 i #245 od dziewieciu dni),
jeden ma ostatnie zdanie ich (#300), retencja 2 z 5, @slegarraga milczy
od 26 dni. Zlecenie tego zadania wymienialo jeden zalegly wklad.

Bramka nie liczy komentarzy, tylko sprawdza ich autora, i to zmienia dwa
wyniki: #362 (@lesbass) ma komentarz, ale napisal go inny kontrybutor,
wiec jest dlugiem; #83-#85 (@slegarraga) nie maja komentarza od nas,
tylko recenzje z trescia, wiec dlugiem nie sa.

Cisza kontrybutora liczona od JEGO ostatniej czynnosci, nie od naszego
scalenia - inaczej wlasne klikniecie byloby dowodem, ze on wciaz z nami
jest. Na @slegarraga roznica wynosi piec dni.

Czego to zadanie celowo nie robi: nie pisze podziekowan (automatyczne
"dziekujemy" mowi czlowiekowi wprost, ze po drugiej stronie nie bylo
nikogo), nie zaczepia nikogo, kto ucichl (prog 21 dni jest wybrany, nie
wyliczony - n=2 odstepy od jednej osoby - wiec uspienie nigdy nie zaklada
zgloszenia samo), nie przypisuje wlasciciela.

Logika w tools/contributor-care.js, testowana na prawdziwych danych tych
14 wnioskow, importuje regule "kto napisal ostatni" z unanswered-external.js
zamiast trzymac jej druga kopie. Sprawdzona przez zepsucie: odwrocenie
progu dojrzalosci wywraca 4 z 16 testow, odwrocenie testu autorstwa 8 z 16.
@msgwing

msgwing commented Sep 1, 2026

Copy link
Copy Markdown
Owner

@Mohitingale13 — same admission as on #238: merged nine days ago, never acknowledged, and the cause was a blind spot in our own tooling rather than anything about the contribution. Closed in #412.

Toshiba is now in data/devices.json and has its own generated page at docs/devices/toshiba-printers-and-mfps.md. Sharp and Toshiba together were two of the vendors most likely to turn up in a scan-to-email estate and we had neither. That is the gap this closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants