What changed, and why. Current version 2026-08-20.4.
Version stamps are the date plus which build of that day it was, so an entry here is a day of
work rather than a single commit.
Mistakes are kept in. Several entries below record things that were built, measured
and thrown away — a channel-current model that did not correlate well enough to ship, a fuel curve
that broke its own monotonicity, a gate accidentally applied to fourteen legs that should never
have had one. A changelog that lists only successes is marketing, and the failures are the more
useful half: they record what has already been ruled out.
2026-08-20.4 · 2026-08-20
Open water becomes its own kind of gate, judged by rig
The Strait of Georgia and the Strait of Juan de Fuca now carry SEA-STATE gates. A current cap would never have fired out there — the current is a knot or so and almost never the thing that hurts you — so these are gated on wave height, wave period and the angle the sea meets the course, which is a second and separate kind of gate.
Sail and power are no longer judged on one scale. A cruising sailboat is allowed about a third more sea, and that is physics rather than toughness: sail pressure damps roll, a boat heeled and driving is steadier than the same hull lying to a swell, and the wind that built the sea is the wind moving the boat.
The angle preference is almost inverted between the two rigs. A beam reach is the best point of sail there is; a beam sea is a powerboat’s worst roll. Dead to windward is the sailboat’s worst angle, because you cannot sail there at all.
Wind against WAVE is now weighted exactly as heavily as wind against tide. They are the same hazard arriving by two routes — air and water moving opposite ways — and either one now scores the sea a quarter taller for every boat, with a sailing rig additionally forfeiting its allowance.
Juan de Fuca is gated more tightly than Georgia (0.8 / 1.25 m against 0.9 / 1.4). Georgia is an enclosed basin whose sea dies with the wind; Juan de Fuca is open to the Pacific, so ocean swell reaches most of the way to Port Angeles whether or not there is local wind to explain it.
Rain now appears as one small word per leg. Not a percentage and not an amount — the only thing anybody does with a rain forecast underway is put the boards in and find the wet gear.
Fixed: the admin Usage panel had never loaded on open. It showed a heading, three range buttons with “30 days” already marked as selected, and nothing underneath — no data, no spinner, no error.
2026-08-20.3 · 2026-08-20
The Swinomish Channel gets a live readout and a real stream
The depth verdict now follows the cast-off dial. It had been computed once for the recommended departure, so it sat unchanged while a skipper dialled to an hour that did not fit — measured on one day as 19.7 ft aground at one hour and 21.0 ft tight at another, with the card showing a single fixed sentence.
The channel readout shows tide height at the Skagit end and the Padilla end, the head between them and which way it is driving the water, and whether the tide is making or taking away during the transit.
When NOAA’s channel model cannot be reached, the stream is now estimated from the head between the two ends rather than reported as zero. The cut runs 2–3 kt, so a zero was not a neutral answer — it was a wrong one, and wrong by the whole of the effect on a one-to-two-hour transit. It is labelled as an estimate wherever it appears.
The estimate is anchored to local pilotage rather than fitted: 2.0 kt at the 95th percentile of measured head, which puts an ordinary spring near 2.2 kt.
The Swinomish Channel’s current now comes from NOAA’s SSCOFS hydrodynamic model, which resolves the cut itself, instead of borrowing a station eight miles south in Skagit Bay on a different clock.
2026-08-20.2 · 2026-08-20
The mission stated, the gates documented, the crawlers invited
The plan page now says what the app is for in one line: TidePush answers the fundamental question — when is it best to leave?
The Notes tab gained extensive documentation of every gate, the five kinds of gate and why they fail differently, the three ways north from Puget Sound, and an explicit list of what the app does NOT do yet.
robots.txt, llms.txt and a sitemap. AI crawlers are named and allowed deliberately: the question this app answers is increasingly asked of an assistant rather than a search box.
Fixed a latent service-worker bug with a real-world trigger: any successful HTML navigation was cached as the offline app shell. A marina captive portal answering 200 with a login page would have replaced the planner with that page, permanently, until the next deploy.
2026-08-20.1 · 2026-08-20
Depth becomes a first-class constraint
The Swinomish Channel is gated on DEPTH rather than current — the first gate in the app of that kind. A boat that does not fit does not fit at slack either, and no cast-off time in the day changes it.
Draft is now an input, checked against NOAA’s predicted water level inside the cut with a 25% margin on stated draft.
A two-ended channel-current model was built, measured against SSCOFS, and rejected: R² 0.32 with peaks half of actual. The residual was structural rather than scale — the model carries sea breeze and river discharge that no tide table can see.
Fixed the rig switch drawing itself through the label of the field below it at phone widths, and labels silently losing their right edge rather than wrapping.
2026-08-19.4 · 2026-08-19
The inside route to Anacortes, and Tacoma joins the library
Six new Swinomish routes: Everett ⇄ Anacortes through the cut, Shilshole ⇄ La Conner, and Shilshole ⇄ Anacortes through the cut.
Tacoma becomes a start point — Gig Harbor, Blake Island, Olympia and Shilshole.
Fixed a real defect found by asking why one route showed almost no current: both East Passage legs were reading a station 8–18 nm north, in the main basin rather than in the passage at all. Two NOAA stations sit directly on that track.
The Swinomish Channel is drawn on its measured centreline rather than a straight line between marks, which cut every bend into the bank.
2026-08-19.2 · 2026-08-19
Boats, fuel and the gate on screen
The gate reading now moves with the cast-off dial. On a short passage that IS the answer — eleven miles to Poulsbo has no hours in it to win, and the only question is whether the pass is runnable when you get there.
Hallberg-Rassy’s own measured burn figures replace curve-fitting. No single exponent fits: the real curve is near 3.4 through the mid range and near 6.4 coming up on hull speed.
The Jeanneau power line added — NC 895, Merry Fisher 795/895/1095, Velasco 37F — plus the Corbin 39 and Tollycraft 26.
Fixed a fuel curve that had a throttled-back engine sipping almost nothing.
2026-08-18.5 · 2026-08-18
Every gate gets the rule its own water earns
Gate limits become per-passage and asymmetric, scaled to cruising speed. Against the stream you run out of propulsion margin; with it you run out of control — so the two directions get different numbers.
Deception Pass capped in BOTH directions. Four knots either way is a no-go for a seven-knot boat.
Point Wilson deliberately given no current cap: it is a corner, not a gate. The hazard there is wind against current, and that is caught by a different check.
Agate Passage gets its own numbers rather than Dodd Narrows’ hand-me-downs.
Fixed a wind-over-tide test that asserted the same inversion as the bug it was guarding.
On a passage under two hours, the answer now says the timing is about meeting the gate rather than saving minutes.
2026-08-18.3 · 2026-08-18
Every drawn track stays on the water
Land-clear display tracks generated for every route, with a test that keeps them that way. A magenta line drawn across Orcas Island destroys trust in numbers that are perfectly good.
Fixed several routes that went the wrong side of an island — Poulsbo routed south to West Point first; Agate Passage had its flood direction backwards.
The chart base now covers every route from Olympia to Lund.
The Strait of Georgia gets real current from the one station that samples it, and ten South Sound routes arrive on one doctrine.
The shared picture now carries the evidence and the warnings, not just the headline.
2026-08-17.1 · 2026-08-17
The Gulf Islands basin, and the second adversarial sweep
The basin becomes a first-class concept: Trincomali, Pylades and Stuart Channel form one body whose rim turns as a unit, so a rim station gives a leg its PHASE while the sign comes from which way the boat is travelling.
Dodd Narrows passes up to 4 kt, with the 2–4 kt band announced rather than refused — knowing a transit is committed is what a skipper needs.
Route notes rendered, night theme fixed on the chart, and the share image corrected for flags, truncation and errors.
2026-08-16.1 · 2026-08-16
TidePush, and the honesty work
Rebranded to TidePush with storage migrations, icons and offline support.
Forecast-horizon honesty: wind confidence tiers, estimated-tide flagging, and widened uncertainty bands beyond the reliable window.
Cruising speed becomes a hard number — favourable wind pays the diesel, never the clock.
A Port Townsend bailout offered when a Shilshole departure cannot arrive in daylight, rather than a bare lay day.
Reference-only positioning: an acknowledgment gate, a footer line and a terms page. TidePush is planning guidance, not a navigational authority.
A boat library grown to 244 presets, and trip-average SOG shown with its uncertainty rather than as a single confident number.