Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
227 commits
Select commit Hold shift + click to select a range
60f27e7
chore: v2 rewrite skeleton (Phase 0)
claude May 9, 2026
3aaa7ef
feat(core): land Phase 1 — types, decoders, JSON catalogue loader
claude May 9, 2026
2991a0e
feat(connection): land Phase 2 — connection layer with six transports
claude May 9, 2026
3ed8fdb
feat(connection): add OpenAsync/CloseAsync; codify dual-method rule
claude May 9, 2026
8796306
feat(connection): progress events on long-running ops; extract TOBDBa…
claude May 9, 2026
a632715
feat(adapter): land Phase 3 — TOBDAdapter with detect / init / write
claude May 9, 2026
312d762
fix(adapter): close all five Phase 3 honest-review flags
claude May 9, 2026
d505f61
feat(protocol): land Phase 4a — wire codecs (UDS / KWP / ISO15765 / J…
claude May 9, 2026
1a32be4
feat(protocol): land Phase 4b — TOBDProtocol component + sample 03-Re…
claude May 9, 2026
6c0af17
fix(protocol): close Phase 4a/4b honest-review flags before 4c
claude May 9, 2026
098ca11
feat(protocol): land Phase 4c — J1939 transport state machine (TP / ETP)
claude May 9, 2026
4c72b7c
fix(j1939): close Phase 4c honest-review flags before 4d
claude May 9, 2026
6eb128b
feat(protocol): Phase 4d in-progress — DoIP header, messages, transpo…
claude May 9, 2026
caca262
feat(protocol): close Phase 4d — TOBDDoIPClient + facade + tests + re…
claude May 9, 2026
beef5dd
feat(protocol): land Phase 4e — SecOC (CMAC-AES128 + freshness + key …
claude May 9, 2026
6d11025
fix(secoc): make AES S-box lookups constant-time (close Phase 4e flag 1)
claude May 9, 2026
a487ae6
feat(protocol): land Phase 4f — LIN, FlexRay and MOST frame layers
claude May 9, 2026
da32566
feat(phase-4g): close out Phase 4 — palette registration, integration…
claude May 9, 2026
ae96fc3
feat(service): land Phase 5 — TOBDLiveData / TOBDDTCs / TOBDVIN / TOB…
claude May 9, 2026
c9e0ccb
fix(service): close every Phase 5 deferral except the hardware loop
claude May 9, 2026
9b33bc8
feat(coding): land Phase 6 — UDS coding & flashing components
claude May 9, 2026
9048f95
fix(coding): close every Phase 6 follow-up
claude May 9, 2026
2b67374
feat(phase-7): land calibration & speciality buses
claude May 9, 2026
f89f9db
fix(phase-7): close every Phase 7 follow-up
claude May 9, 2026
43a1d07
feat(phase-8): land coding — vendor-agnostic write surface + per-OEM …
claude May 9, 2026
0490d40
fix(phase-8): close five of six Phase 8 follow-ups
claude May 9, 2026
37a7903
feat(phase-9a): UDS transfer state machine + J1939 memory access
claude May 9, 2026
5aa547b
feat(phase-9b): pipeline scaffolding — voltage gate, checkpoint, phases
claude May 9, 2026
2552b08
feat(phase-9c): flash pipeline orchestrator + safety surface
claude May 9, 2026
49a5260
feat(phase-9d): signature verification — BCrypt / OpenSSL / HSM / PQC
claude May 9, 2026
c549ece
feat(phase-9e): OEM bootloader handshakes — VAG/BMW/Ford/HMG/Mercedes…
claude May 9, 2026
074acbe
feat(phase-9f): safety doc, samples 27/28/29, Phase 9 close-out
claude May 9, 2026
d71a5b5
fix(phase-9): close follow-ups 1-4
claude May 9, 2026
7cb1e73
feat(phase-10): Recorder / Replayer pair
claude May 9, 2026
835680b
feat(phase-10-followups): gzip, MaxGapMs, ProtocolMock, Redactor
claude May 10, 2026
5cca802
chore(phase-11): asset generator scaffold (gpt-image-2)
claude May 10, 2026
191049d
chore(phase-11): brand-aware asset generator
claude May 10, 2026
b6d4e1b
chore(phase-11): brand-aligned dry-run icon (TOBDConnection)
claude May 10, 2026
8b1f498
chore(phase-11): looser palette rules + regen dry-run
claude May 10, 2026
e15ea07
chore(phase-11): solid colour rule for small details
claude May 10, 2026
e112e13
chore(phase-11): switch to Fluent / Office icon style
claude May 10, 2026
24349e0
chore(phase-11): expand manifest to full asset set
claude May 10, 2026
f873c2a
chore(phase-11): first batch of generated icons (16/32)
claude May 10, 2026
285a1fc
chore(phase-11): regen TOBDAdapter without logo + 3 new icons
claude May 10, 2026
9098ef0
chore(phase-11): more generated icons (KWPWriteID, AuditLog, Session,…
claude May 10, 2026
c34c5b0
chore(phase-11): finish base set + per-asset references
claude May 10, 2026
780d2b6
chore(phase-11): OEM CP icons (VAG/BMW/Mercedes) with brand logos
claude May 10, 2026
1dcc59f
chore(phase-11): TOBDComponentProtectionStellantis with brand mark
claude May 10, 2026
c3c4a35
chore(phase-11): tighten VAG + Stellantis prompts
claude May 10, 2026
0fb53a4
chore(phase-11): regen VAG and Stellantis with sharper marks
claude May 10, 2026
f7bcef5
chore(phase-11): VAG/Stellantis prompts now ask for chrome car-badge …
claude May 10, 2026
c74d11b
chore(phase-11): VAG + Stellantis as chrome car-badge emblems
claude May 10, 2026
c4254bf
chore(phase-11): brand mark template + smaller Stellantis A
claude May 10, 2026
eb6a3d0
chore(phase-11): brand mark + smaller Stellantis A
claude May 10, 2026
b9fbaf2
chore(phase-11): regen splash + about against new brand mark
claude May 10, 2026
d493341
chore(phase-11): redesign brand mark — diagnostics + coding emblem
claude May 10, 2026
714cf6f
chore(phase-11): describe new mark in splash + about prompts
claude May 10, 2026
75f4e31
chore(phase-11): regen splash + about against new layered mark
claude May 10, 2026
23c1e52
chore(phase-11): add remove-bg.py — strip white backgrounds
claude May 10, 2026
e77ebf6
chore(phase-11): strip white backgrounds — transparent PNGs
claude May 10, 2026
9457294
fix(phase-11): redo BMW background via remove.bg (type=other)
claude May 10, 2026
2444753
fix(phase-11): redo VAG / Mercedes / Stellantis with type=other strip
claude May 10, 2026
5af2968
chore(phase-11): dark gunmetal CP shield base for clean stripping
claude May 10, 2026
2397ebd
fix(phase-11): regen 4 OEM CP icons on dark shield + clean strip
claude May 10, 2026
9ad4e83
chore(phase-11): respec CP shield template per requirements
claude May 10, 2026
c2d6fa6
fix(phase-11): regen 4 OEM CP icons on respec'd shield base
claude May 10, 2026
116f3df
feat(phase-11): wire PNG assets into design-time package
claude May 10, 2026
ceb970d
feat(phase-11): switch icons to PNG resource type, simplify splash/ab…
claude May 10, 2026
64d29f6
feat(phase-11): splash + about on charcoal canvas; rebuild .res
claude May 10, 2026
b115a2b
docs(phase-11): add Phase 11 review
claude May 10, 2026
eea5d33
chore(phase-12-sweep): pass 1 — rewrite history header phase tags
claude May 10, 2026
c6c198a
chore(phase-12-sweep): pass 2 — clear all phase/plan refs from src/
claude May 10, 2026
38653d4
chore(phase-12-sweep): pass 3 — clear all phase/plan refs from tests,…
claude May 10, 2026
0014a24
feat(phase-13): property + component editors with DFM-backed dialogs
claude May 10, 2026
8b03b3a
feat(phase-13a): COM port picker + connection/adapter/protocol live-t…
claude May 10, 2026
5b3378c
feat(phase-13b): IDE starter wizard with 7 templates
claude May 10, 2026
29168e6
feat(phase-13c): multi-step wizard with option groups
claude May 10, 2026
b7614ab
feat(phase-13d): 19 new option-aware starters
claude May 10, 2026
2acad7a
docs(phase-14a): foundation docs — README, architecture, components, …
claude May 10, 2026
5238632
docs(phase-14b): rewrite top-level samples/README
claude May 10, 2026
ed3cc9e
docs(phase-15): release prep — changelog, release notes, GetIt manifest
claude May 10, 2026
7193013
docs: v1 -> v2 gap analysis
claude May 10, 2026
6e503c7
docs: v2 port-from-v1 backlog (rewrite-with-understanding)
claude May 10, 2026
3aaf87b
feat(P-A3): VIN decoder rewrite with WMI / VDS / VIS breakdown
claude May 10, 2026
cf22f68
feat(P-B3): TOBDVehicleHealth composite roll-up component
claude May 10, 2026
d274107
feat(P-A1.1): radio-code foundation — components + class registry
claude May 10, 2026
c1ce0d8
feat(P-A1.2): European premium radio-code components — OnCalculate stubs
claude May 10, 2026
68aa274
feat(P-A1.3): French/Italian radio-code components — 4 real algorithm…
claude May 10, 2026
4b8e024
feat(P-A1.4): British radio-code components — 4 stub components
claude May 10, 2026
177593b
feat(P-A1.5): Asian radio-code components — Hyundai real + 10 stubs
claude May 10, 2026
f60af19
feat(P-A1.6): American radio-code components — 4 stub components
claude May 10, 2026
7b406c5
feat(P-A1.7): Aftermarket radio-code components — Becker DBs real + 3…
claude May 10, 2026
fa841ab
feat(P-A1.8): Volvo stub + algorithms doc
claude May 10, 2026
fc05ea9
feat(P-A1.6): TOBDRadioCodeFordV — bundled 999K-entry database
claude May 10, 2026
295d34b
feat(P-A1.6): TOBDRadioCodeFordM upgraded to real algorithm
claude May 10, 2026
d41a675
feat(P-A1.9): EEPROM extractor component family
claude May 10, 2026
3c839eb
feat(P-A1.10): TOBDVWRadioSAFE skeleton (KWP1281 codec pending)
claude May 10, 2026
a888747
feat(P-A2.1): KWP1281 codec - full surface
claude May 10, 2026
2881027
feat(P-A2.2): KWP1281 K-line transports (Serial + ELM327)
claude May 10, 2026
0f813c7
feat(P-A2.3): TP2.0 + ISO-TP transports + J2534 PassThru host stack
claude May 10, 2026
fcb8f14
feat(P-A2.4): wire KWP1281 codec/transport into TOBDVWRadioSAFE
claude May 10, 2026
5c4a050
feat(P-A3): VDS feature decoder + vPIC-shaped rule engine + ETL
claude May 10, 2026
7ac9b9b
data(P-A3): real NHTSA vPIC bulk dump (2026_04) + perf index
claude May 10, 2026
3aaf633
feat(P-A3): TOBDVINInspector - non-visual decoder component
claude May 10, 2026
47264cc
feat(P-A4): TOBDDriveCycleAdvisor + drive-cycle catalog
claude May 10, 2026
2c0eeb2
feat(P-A5): EV battery framework (component + catalogue + types)
claude May 10, 2026
a28e0ae
data(P-A5): add Nissan Leaf + BMW i battery catalogues +
claude May 10, 2026
08fc4d9
feat(P-A6): key adaptation - Ford / HMG / BMW / Toyota
claude May 10, 2026
b25cfd7
feat: TComponent wrappers for KWP1281 / TP2.0 / J2534
claude May 10, 2026
c332d8a
feat: catalogue components (TOBDVINCatalog /
claude May 10, 2026
eccfba3
feat(P-A7 step 1): per-category IDE wizards (10 entries)
claude May 10, 2026
8ccd2c3
fix(P-A7): vendor name out of starter / wizard visible strings
claude May 10, 2026
15dc083
feat(P-A7 step 2): pre-wired DataModule starters (7 templates)
claude May 10, 2026
c9dbba9
feat(P-A7 step 3): polished radio-calc form template
claude May 10, 2026
543b52c
feat(P-A7 step 4): splash + About enumerate full wizard inventory
claude May 10, 2026
4264dca
chore: strip phase-id mentions from code comments
claude May 10, 2026
1426be2
chore(audit): docs sync + dead-file purge
claude May 10, 2026
a25578b
chore(audit): rename FordV unit + strip user-visible TODOs +
claude May 10, 2026
6bb3368
test(audit): service-component lifecycle + radio-code DB +
claude May 10, 2026
94d341d
test(audit): Speciality smoke + drive-cycle decoder harness
claude May 10, 2026
71b8fac
docs(audit): Phase 12 — Tier-A backlog review
claude May 10, 2026
0ae1f96
docs(samples): 10 new samples for the recently-shipped surface
claude May 10, 2026
367f8fa
docs(readme): rewrite for shipped surface
claude May 10, 2026
2c297b2
docs(P-A2): visual UI plan with full inventory + design lockins
claude May 10, 2026
f17bad1
docs(P-A2): add universal quality bar (mandatory acceptance criteria)
claude May 10, 2026
47ed4fb
feat(A2.1): visual UI foundation (TOBDTheme + custom control bases + …
claude May 10, 2026
4e93c35
feat(A2.2): 5 core gauges + LiveData direct-binding + LiveBindings
claude May 10, 2026
79d9bc8
feat(A2.3): 6 gauge variants — digital / bar-segment / delta / sparkl…
claude May 10, 2026
765b866
fix(service): wire LiveBindings refresh across 7 service components +…
claude May 10, 2026
ea06bdd
fix(protocol): multi-cast listener API + drain async before Adapter swap
claude May 10, 2026
f7b39f7
feat(A2.4): indicators + telltales (6 new visuals)
claude May 10, 2026
448e0d1
style: expand inline try/finally/except blocks across recently-shippe…
claude May 10, 2026
eb2c478
feat(A2.5): shift / gear + drag / lap timing + specialised gauges (10…
claude May 10, 2026
a171755
feat(A2.6): live-data panels (4 new visuals)
claude May 10, 2026
f43eeb2
feat(A2.7): info / vehicle widgets (4 new visuals)
claude May 10, 2026
59834f4
feat(A2.8): monitor / EV displays (4 new visuals)
claude May 10, 2026
286c8b9
feat(A2.9): session / progress + connection-state widgets (8 new visu…
claude May 11, 2026
2715226
feat(A2.10): input pickers (4 new visuals)
claude May 11, 2026
7c79dbd
feat(A2.11): flash control dashboards (3 new visuals)
claude May 11, 2026
2c47246
feat(A2.12): dyno math + charts + tuning + motorsport + commercial + …
claude May 11, 2026
35eb406
hardening(P-A2): address audit findings — shared GDIP, design-time gu…
claude May 11, 2026
1a0d74d
chore(assets): TOBDLED palette icon — smoke test for the A2 icon-gene…
claude May 11, 2026
d730203
chore(assets): P-A2 palette icons batch 1 (62 components)
claude May 11, 2026
e71ec2a
chore(assets): P-A2 palette icons batch 2 (3 components)
claude May 11, 2026
a4b83c0
chore(assets): P-A2 palette icons batch 3 (radio-code calculators + l…
claude May 11, 2026
9e088ee
chore(assets): icons batch 4 + manifest fixes for 6 problematic prompts
claude May 11, 2026
87aa6ef
chore(assets): manifest palette-only guardrail + icons batch 5
claude May 11, 2026
bce56bb
chore(assets): manifest neutral guardrail + icons batch 6
claude May 11, 2026
94b0e72
chore(assets): icons batch 7
claude May 11, 2026
b2e16b0
chore(assets): final icons batch — main P-A2 generator run complete (…
claude May 11, 2026
c11093b
chore(assets): icons retry pass — first 2 of 12
claude May 11, 2026
4a19004
chore(assets): icons retry pass — 10 of 12 redone (Peugeot + VWRadioS…
claude May 11, 2026
aba8ccf
chore(assets): final 2 retries (Peugeot + VWRadioSAFE)
claude May 11, 2026
a4013d5
chore(assets): remove-bg pass in progress — first ~10 icons stripped
claude May 11, 2026
6453623
chore(assets): transparent-background icons + rebuilt design-time .res
claude May 11, 2026
0e6b62e
fix(assets): regenerate TOBDLapTimer with explicit-opaque-foreground …
claude May 11, 2026
8262cef
chore(assets): radio-base template + manifest patch for vendor-radio …
claude May 11, 2026
fcb16ca
chore(assets): radio-code icons regen progress (mid-batch)
claude May 11, 2026
feaf437
chore(assets): 7 shared icon templates + 33 variant rewires (gauge-di…
claude May 11, 2026
51ca697
chore(assets): radio-code regen partial — 9 more vendors landed befor…
claude May 11, 2026
c15f2a9
chore(assets): new radio-base template + BMW sample (validation pendi…
claude May 11, 2026
8aa3abf
chore(assets): re-do BMW radio sample with the new radio-base templat…
claude May 11, 2026
dbfaaf9
icons: shield-style brand emblems on radio-code variants
claude May 11, 2026
1381431
icons: radio emblems face viewer straight-on (no tilt)
claude May 11, 2026
3058ff8
icons: rewire key-adapt template + isolate TOBDAdapter from panel
claude May 11, 2026
ebe8afd
icons: regen first batch of radio + key variants (shield-style emblems)
claude May 11, 2026
e4e1ccd
icons: regen more radio + key variants
claude May 11, 2026
6867e2a
icons: finish radio-code regen (shield-style emblems, all 46 variants)
claude May 11, 2026
d8827da
icons: re-strip backgrounds on Citroen/Opel radio variants
claude May 11, 2026
8d097b1
icons: add 6 shared base templates (gauge/lamp/chart/bar/heatmap/stee…
claude May 11, 2026
3f56de0
icons: regen 9 shared-template variants (gauge/chart/heatmap)
claude May 11, 2026
c917bd6
dt: rebuild palette icon .res (204 resources)
claude May 11, 2026
098a40e
plan: tick boxes for items implemented in the repo
claude May 11, 2026
193b3a9
phase 4/8/9: close substantially-done items
claude May 11, 2026
267723b
phase 5: add ClearDTC, OxygenMonitor, PIDList, DataSource bridge
claude May 11, 2026
aff48ec
phase 5: WWH-OBD + 6 samples + test fixture; tick remaining boxes
claude May 11, 2026
e317535
phase 5/8: reformat new units to match STYLE.md
claude May 11, 2026
84e8983
phase 6: UDS session hub + reset/read-memory/io-control
claude May 11, 2026
442af2d
phase 6: ReadDID + ReadDTC + ReadByPeriodic + DynamicDID
claude May 11, 2026
dfc6f7b
phase 6: KWP2000 (ISO 14230) diagnostic component family
claude May 11, 2026
90ccc18
phase 6: J1939 bus client + DM1..DM32 decoder; DoIP cross-refs
claude May 11, 2026
2d96fe1
phase 6: OEM-overlay registry + JSON catalogues
claude May 11, 2026
2b63b77
phase 6: 9 sample apps closing out the diagnostics surface
claude May 11, 2026
5927c0e
phase 7: tacho catalogue + 7 samples; tick PLAN against existing impls
claude May 11, 2026
c20ce55
phase 11: property editors + verbs + help keywords + install doc
claude May 11, 2026
5e40107
phase 12: per-component docs index + Phase-5/6 component pages
claude May 11, 2026
e6d22b9
strip 'Phase N' references from code comments
claude May 11, 2026
6d260f3
rename phase-suffixed test units + fixture classes
claude May 11, 2026
ce207ba
rename Tests.OBD.Service.NewComponents → Tests.OBD.Service.Extras
claude May 11, 2026
cf703b7
style: scrub remaining inline-var declarations; document new work
claude May 11, 2026
4428c88
ui: port TOBDTerminal + TOBDLogViewer + TOBDDtcList from v1 (native f…
claude May 12, 2026
619f733
ide: port v1 Form / DataModule / MainForm wizards (Tier 2)
claude May 12, 2026
138321a
ports: Tachograph signature/workshop + Logger + SecureSettings + Secu…
claude May 12, 2026
ea09a17
ui: port TOBDKnob + TOBDSegmentedSwitch + TOBDTrendGraph (native faces)
claude May 12, 2026
6a78758
oem: add manufacturer-extension framework; drop TOBDSegmentedSwitch
claude May 12, 2026
1470590
oem: add DUnitX coverage for the manufacturer-extension framework
claude May 12, 2026
17d8e39
oem: upgrade session model to v1 plan/step shape; realign extension base
claude May 12, 2026
cac2e59
oem: add Helpers (DID / Routine / ECU builders) for vendor catalogues
claude May 12, 2026
60a3d9b
oem: port JSON catalogue + extended-catalogue + DTC-catalogue loaders
claude May 12, 2026
c693636
oem: port CSV→JSON catalogue importer
claude May 12, 2026
973d955
oem: port GoldenCheck + HD (J1939 base) + SCN.Mercedes (XENTRY framing)
claude May 12, 2026
21575dd
oem: port Coding + RoutineControl + ServiceFunction
claude May 12, 2026
9b8f842
oem: port Session.Runner against v2's TOBDProtocol + adapter
claude May 12, 2026
36178ba
oem: enrich SeedKey to v1 fidelity + add OBD.OEM compat unit
claude May 12, 2026
e529997
oem: scrub version-narrative comments per style guide
claude May 12, 2026
fcd43a3
oem: enrich DTC catalogue to consume every shipped JSON field
claude May 12, 2026
8c94cad
oem: append History entries for DTC + Types enrichment
claude May 12, 2026
313b502
oem: wire key-platform catalogues into runtime lookup
claude May 12, 2026
e46658e
catalogs+kwp+radio: drop duplicates, ship Ford-V data, wire KWP IDs
claude May 15, 2026
6e7550e
oem: project rich catalogue data onto the lean public records
claude May 15, 2026
dda4c1e
oem: port VAG group (VW + Bentley)
claude May 15, 2026
34a9a56
oem: port BMW group (BMW + MINI + RollsRoyce)
claude May 15, 2026
6439453
oem: port Mercedes group (Mercedes + Smart)
claude May 15, 2026
d9ec23e
oem: add SecurityAccess client + extra public seed-key algorithms
claude May 15, 2026
9762d74
oem: port Stellantis + backfill seed-key starters
claude May 15, 2026
60c2733
oem: port Ford / GM / JLR / Aston Martin
claude May 15, 2026
3f993bc
oem: port EV group (Tesla + Lucid + Rivian + Polestar)
claude May 15, 2026
5458c36
oem: port Asian-1 group (HyundaiKia + Toyota + Honda + Mazda)
claude May 15, 2026
1915246
oem: port Asian-2 group (Nissan + Mitsubishi + Subaru + Suzuki + Isuzu)
claude May 15, 2026
72a53d6
oem: port French/Nordic group (Renault + Dacia + Volvo)
claude May 15, 2026
535074c
oem: port Exotics group (Ferrari + McLaren + Porsche)
claude May 15, 2026
af54514
oem: port Chinese group (BYD + Geely + GreatWall + NIO + Xpeng)
claude May 15, 2026
f9ce1a2
oem: port India + Russia group (Tata + Mahindra + Lada)
claude May 15, 2026
722f4f0
oem: port HD trucks (Cummins + DetroitDiesel + Iveco + MAN + PACCAR +…
claude May 15, 2026
8549f97
oem: port speciality groups (Agricultural + Marine + Motorcycles + Po…
claude May 15, 2026
af6d18e
oem: port remaining runtime infrastructure
claude May 15, 2026
3f9c22c
tests: DUnitX coverage for the new runtime infrastructure
claude May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
90 changes: 53 additions & 37 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,75 +1,91 @@
name: Bug report
description: Something is broken or behaves unexpectedly.
labels: ["bug"]
description: Something is broken or behaves incorrectly
title: "[bug] "
labels: ["bug", "triage"]
body:
- type: textarea
id: summary
- type: markdown
attributes:
label: Summary
description: One sentence — what's wrong?
validations:
required: true
value: |
Thanks for filing a bug. The more detail, the faster we can fix.

For security issues affecting flashing or signature verification,
do **not** file a public issue — see [SECURITY.md](../SECURITY.md).

- type: textarea
id: repro
id: what-happened
attributes:
label: Reproduction
description: |
Smallest steps to trigger the bug. Include component, adapter,
protocol, vehicle (year/make/model), and any relevant settings.
placeholder: |
1. Drop TOBDCircularGauge on a form
2. Set FramesPerSecond := 0
3. Run — gauge no longer updates after Value change
label: What happened?
description: A clear and concise description of the bug.
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected behaviour
label: What did you expect to happen?
validations:
required: true

- type: textarea
id: actual
id: repro
attributes:
label: Actual behaviour
label: Steps to reproduce
description: Numbered steps. Minimal sample project welcome.
placeholder: |
1. Drop TOBDConnection on a form
2. Set Transport := otSerial, SerialSettings.Port := 'COM3'
3. Set Active := True
4. Observe …
validations:
required: true

- type: input
id: delphi
id: delphi-version
attributes:
label: Delphi version
placeholder: "Delphi 12.1 Athens"
placeholder: "12 Athens / 11 Alexandria / 10.4 Sydney / 10.3 Rio"
validations:
required: true

- type: input
id: skia
id: package-version
attributes:
label: Skia4Delphi version
placeholder: "6.x"
label: Delphi-OBD version
placeholder: "v2.0.0-alpha.X / commit hash"
validations:
required: true

- type: input
id: os
attributes:
label: OS
placeholder: "Windows 11 23H2"
label: Operating system
placeholder: "Windows 11 24H2 / Windows 10 22H2"
validations:
required: true

- type: input
id: adapter
attributes:
label: Adapter (chip + firmware)
description: If hardware is involved.
placeholder: "ELM327 v1.5 clone / OBDLink MX+ / J2534 PassThru"

- type: input
id: vehicle
attributes:
label: Vehicle (year, make, model, ECU)
description: If hardware is involved.

- type: textarea
id: logs
id: log
attributes:
label: Logs / stack trace
label: Captured log
description: |
A `.obdlog` capture from `TOBDRecorder` is the gold standard.
Attach the file or paste a relevant excerpt.
render: text

- type: checkboxes
id: checks
- type: textarea
id: extra
attributes:
label: Pre-flight
options:
- label: I searched existing issues and this isn't a duplicate.
required: true
- label: I'm on the latest tagged release (or `main`).
required: true
label: Anything else?
43 changes: 28 additions & 15 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
name: Feature request
description: Propose a new feature or extension.
labels: ["enhancement"]
description: Suggest a new feature, component, or catalogue addition
title: "[feat] "
labels: ["enhancement", "triage"]
body:
- type: markdown
attributes:
value: |
Before opening, please skim [`PLAN.md`](../PLAN.md). If the feature
is already in scope for v1, tick the relevant box in your PR; if
it's a scope change, this issue is the right place to discuss it.

- type: textarea
id: problem
attributes:
label: What problem does this solve?
description: Describe the use case before the proposed solution.
description: User story shape — "as a developer building X I want Y so that Z".
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed solution
description: |
How should it work from a user's perspective? Pseudocode,
component sketches, API examples — whatever helps.
description: Component name, properties, events, methods if applicable.
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
validations:
required: false

- type: dropdown
id: roadmap
id: scope
attributes:
label: Does this fit an existing roadmap milestone?
label: Scope impact
options:
- "v2.1 Foundation"
- "v2.2 Components"
- "v2.3 Async & Logging"
- "v2.4 Distribution & Docs"
- "v2.5 Hardening"
- "v3.0 FMX & Mobile"
- "Backlog / not sure"
- "Within v1 scope (already in PLAN.md)"
- "Adds to v1 scope"
- "Post-1.0"
- "Not sure"
validations:
required: true

- type: input
id: spec
attributes:
label: Spec / standard reference
description: ISO / SAE / OEM document that backs the request, if any.
18 changes: 0 additions & 18 deletions .github/ISSUE_TEMPLATE/question.yml

This file was deleted.

30 changes: 21 additions & 9 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,30 @@ doesn't apply, write "n/a".

## How did you test it?

<!-- Bullet list. CI lint is not enough; tell us what you ran locally. -->

- [ ] `tests/Tests.dpr` runs green
- [ ] Manually exercised the affected components / examples
- [ ] `tests/DelphiOBD_Tests.dpr` runs green
- [ ] Manually exercised the affected components / samples
- [ ] CI hygiene job is green (file headers, VCL/FMX guard, JSON lint)
- [ ] N/A — explain:

## Roadmap & changelog
## Documentation

Per [`STYLE.md`](../STYLE.md), every public symbol carries XMLDoc.

- [ ] Every new or modified public type / method / property / event has
current XMLDoc
- [ ] File headers updated (history block append-only)
- [ ] [`PLAN.md`](../PLAN.md) updated if this PR affects scope or phasing
- [ ] [`CHANGELOG.md`](../CHANGELOG.md) updated under `[Unreleased]`

## Hardware risk (flashing / coding only)

<!-- If this PR touches src/Flashing/, src/Coding/, src/Signature/, or
the UDS write/transfer/memory components, fill these in. Otherwise
delete this section. -->

- [ ] Ticked the matching item in [`docs/ROADMAP.md`](../docs/ROADMAP.md)
(or this PR doesn't touch the roadmap)
- [ ] Added an entry under `[Unreleased]` in [`CHANGELOG.md`](../CHANGELOG.md)
(or this PR is non-user-visible — explain)
- [ ] Bench-tested on a real ECU. Vehicle / ECU model:
- [ ] Tests cover the behaviour against captured fixtures (no live-ECU
dependency in CI)

## Reviewer notes

Expand Down
Loading