Skip to content

Latest commit

 

History

History
168 lines (127 loc) · 11.1 KB

README.md

File metadata and controls

168 lines (127 loc) · 11.1 KB

Documentation

Verified deployment (2026-10-17)

TrueNAS job 19348 deployed release 20261017-location-recovery, application source 48f86f2, immutable image sha256:a0c46d17ed8e10afac9deacfc9ced42dd13c5213d0ef5f2b5321bd5ff7c6ac13. CI attempt 1 passed all gates with zero High/Critical findings. Native qualification passed 16/16 screenshots and 36 Python checks, including the three newly supplied HEICs, with all three OCR engines and no overlays. One three-image trial took 64.34 seconds sequentially versus 40.90 seconds at image concurrency two, with identical text and review decisions; these timings exclude Google lookup.

The public app serves the verified release. Eight CPUs/8 GiB, UID 10001, read-only root, no host ports and retained data mounts are preserved. The health probe, TAP redirect, signed-out route/CSRF boundaries and mobile browser checks passed. Local checks passed 191 Java and 29 frontend tests. The browser interactions used the digest-proven packaged template with mocked APIs; live login release and runtime image were checked separately. Both recorded failing Google responses resolve against the packaged geocoder in one query each using offline replay. No new Google requests or vehicle commands were issued during this release. See the complete release record.

Historical deployment (2026-09-28)

TrueNAS job 212741 deployed 20260928-jlink, source commit 0fbb774, image sha256:a62e3e8ff5390d2665030bd3306b7608c42bb0cde49acaad505e6bfd70df34bd. The Java 25 jlink application runs as UID 10001 with 4 GiB and two CPUs. Existing data remains mounted; the root filesystem is read-only and no host ports are published. The native TrueNAS qualification passed all 11 images and 28 expected rows, including both original HEICs, at a maximum 1.12 GiB memory peak.

The public browser smoke at iPhone width passed two uncached raw HEICs in 63.5 seconds, malformed input rejection, upload control restoration, duplicate-submit protection, TAP delegation, and unchanged saved-session data. No geocoding of personal addresses or vehicle commands occurred. See the complete release evidence.

Historical deployment (2026-09-27)

TrueNAS job 209049 deployed 20260927-heic, image sha256:191f711504cbb02290aa666493f6bfacb54f6a76a576b3059b6982e226ef414c. HEIC/HEIF uploads now convert automatically on the server before the three local OCR engines run.

Both original iPhone HEIC files yielded eight exact ordered rows with all three engines agreeing. Nine strict screenshot regressions passed: 20 correct rows, no missing or extra rows. Java/Python/JavaScript checks passed 116/24/7. Fresh TAP consent loaded three vehicles. The public upload accepted two uncached raw HEIC files (HTTP 200, 69.9 seconds) and rejected malformed HEIC (HTTP 400). The saved session was unchanged during the smoke test. The existing data volume is retained, no host port is published, and no vehicle command or personal-address geocoding was used. Physical iPhone hardware has not been tested.

See release record, machine-readable evidence, preceding OCR/security qualification, closed security findings, and iPhone instructions.

Historical deployment (2026-09-26)

The following records the superseded baseline; current verification is above.

Deployed and source authentication status

Status: READY (September 26, 2026). Provider job 206100 and TeslaRouter auth job 206108 succeeded; fresh public TAP consent/callback after router restart, current-entitlement checks, and three scoped /api/v1/vehicles reads passed. TrueNAS job 206218 succeeded, and the router runs pinned image ghcr.io/javadevjt/routelisttotesla@sha256:023375e4c640da1689a1982e91347c7d6b4f0828fee2d3275263ec5faca8fccd (tag 20260926-tap-auth-ui ); full configuration readback matched, ix-routelisttotesla_route-data is mounted at /app/cache , and port 10088 is active. Browser smoke at 390x844 desktop Chromium viewport confirmed parseable served scripts, three authorized vehicles and three picker options, fixture upload HTTP 200 with 4/4 geocoding, four visible .address-item rows, and cache-check HTTP 200. The browser forced only the cache miss needed for upload coverage and intercepted one /route/session/save ; the saved fingerprint remained unchanged. No auto-started RUNNING job, manual Add control, forbidden mutation, or vehicle command occurred; no billing charge was made. Physical iPhone/car and vehicle acceptance remain untested. Evidence: upload screenshot and review screenshot .

The deployed UI uses Continue with TAP at /oauth2/authorization/tap and callback /login/oauth2/code/tap ; see TAP setup .

Build and browser checks

The clean Maven package passed 77 tests, with 0 failures, 0 errors, and 0 skipped. The Thymeleaf page-rendering regression passed, and the packaged JAR SHA-256 is 8b298d9a2d685449f8bc23a65f2b00519a9ff1008cfad7de17ee173c8a747229 . The image uses Eclipse Temurin 21 JRE on Ubuntu 24.04 Noble.

Synthetic browser checks at 390 × 844 passed for upload ordering, duplicate-image handling, inert markup, one-request pending-command behavior, and holding edits through reload.

The final authenticated RouteList UI smoke at 390 × 844 desktop Chromium returned HTTP 200 for the fixture screenshot upload and displayed four extracted/geocoded address rows in review. The fixture route was not saved; zero vehicle commands were issued.

The user confirmed APT 330. Independent transcription verified that the historical Java output matches all 28 visible rows across seven images. Earlier 27/28 counts used the wrong label. See the OCR benchmark record.

Vehicle and arrival boundaries

Earlier TAP provider job 205730 was healthy; its authenticated vehicle read returned two scoped vehicles at that time. The current post-restart smoke returned three scoped vehicles (above). The TAP credential expires at 2026-12-24T17:35:44Z and must be rotated through TAP before expiry.

Per-field timestamp fields were verified with a live GET. Gear registration and parsing are configured as intended, and both cached vehicles report REGISTERED ; Tesla-side field readback was not independently verified. No vehicle commands or wakes were issued, and no physical navigation acceptance was performed.

Arrival confirmation requires a GPS timestamp strictly later than the navigation command and no more than 10 seconds old when Park is accepted. The existing 60-second GPS freshness check remains in force. A held-Park state supports a location-only packet under the same boundary gate.

Proxy and release status

Nginx Proxy Manager host #23 is configured for teslarouter over HTTPS with the wildcard certificate. The deployed proxy configuration is running with the full configuration preserved; its SHA-256 is 752c5beb8ff6c53aec913b7f0759e679c5e4f32ea607f54284de6bca4a0fa361 .

The desktop Chromium smoke does not establish physical-iPhone or car compatibility or physical vehicle navigation acceptance; no vehicle command or wake was issued.