What changed, and why. Current version 2026-08-24.14.
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-24.14 · 2026-08-24
Vancouver finally reaches the San Juans
Three new routes from Coal Harbour into US waters — Friday Harbor, Roche Harbor and Echo Bay on Sucia — plus their return legs. Until now every Vancouver departure landed in Canada, so a Vancouver to Seattle trip had no first leg here at all. It does now: Coal Harbour to Roche or Friday Harbor is a comfortable day, and the rest of the library takes you on from there.
A direct Vancouver to Shilshole route was asked for and turned down, on measurement rather than taste. It is about 125 miles — nearly eighteen hours at seven knots against fourteen hours of August daylight — so there is no date and no ordinary boat for which it could ever return a plan that arrives before dark. It is also not a hop anyone may legally make without clearing customs on the way. Two proper days is not a workaround; it is the trip.
Friday Harbor and Roche carry two gates each, First Narrows on the way out and Active Pass thirty-odd miles later, so both are starred. Echo Bay never enters the Gulf Islands — it runs straight down the Strait of Georgia — so it has one gate and a long exposed crossing instead, and no star.
Two of the three needed no new chart work: they splice tracks already in the library, with the Bedwell customs detour dropped from the Friday Harbor line because that is the northbound Canadian clearance and these run south. Every join was tested against the coastline before anything was built on it.
Echo Bay genuinely needed a supplied track, which was worth proving rather than assuming. Every approach that could be built from water already in the library ran across land, because Echo Bay opens south and Sucia is in the way from the north-west.
Documentation caught up at the same time. The README had a “Shipped” paragraph naming about twenty routes while the library held a hundred and eighty; it now describes the SHAPE of the coverage and leaves the counting to the parts of the app that are generated and cannot go stale. The route-building section gained the rule that has cost the most to learn here: geometry comes from charted tracks, never from typing coordinates, because a waypoint dropped a few hundredths of a degree inland once produced two confident and completely wrong conclusions that whole regions could not be routed.
2026-08-24.11 · 2026-08-24
A star means currents to time, not rapids to fear
A star beside a route now means the passage has more than one CURRENT to optimise for. It used to mean more than one named gate, and those are not the same set. Friday Harbor to Shilshole transits one gate, Cattle Pass, and then spends forty miles in Admiralty Inlet on a different station with its own slack — not dangerous, but it decides whether the day takes nine hours or eleven. Counting only the frightening water left it unmarked, which was plainly wrong. 44 routes are marked now, up from 8, and none lost a star.
What the stars mean is written down in the notes, under “What the stars mean in the route list”, along with the threshold: a current counts when it is a named gate the route actually transits, or a station driving at least eight miles at 0.6 or more of full strength along your course.
Two better-sounding definitions were tried and thrown away. Weighting by distance — how many miles a stream drives, times how hard — measures how many HOURS a current is worth rather than how many decisions it forces, and it ranked Refuge Cove to Dent as a single-current passage while promoting long open crossings. Merging stations that share a slack fails the same way: Gillard and Dent turn within 9 minutes of each other, but the boat still needs an hour to get from one to the other, so they remain two things to time.
The chart of the whole library stopped printing place names on top of each other. Collisions were being measured between the anchor DOTS, which says nothing about whether the words overlap, so in the San Juans — the densest corner of the library — Sidney, Friday Harbor and Cap Sante had been stacked into one unreadable smear for as long as the chart existed. Sixteen legible names now where there were fourteen overlapping ones.
The store artwork had been claiming 55 routes since the middle of August, and its tagline named Neah Bay and Nanaimo as the edges of the coverage when neither had been true for weeks. The route count is generated and stayed honest on its own; the place names were typed by hand and went stale in silence.
2026-08-24.6 · 2026-08-24
Two gates stop pretending one departure caught both, and the app goes looking for a better hour
A route with more than one gate now shows the whole chain: each gate in order, when you reach it, how far off THAT gate’s own slack you land, and whether the windows can be met together at all. Each gate has its own slack at its own station, and they drift apart by about fifty minutes a day, so on most days no single cast-off catches them all. That is a fact about the pair, which is why a tide table cannot tell you it.
Coal Harbour to Sidney is the passage this was built for — First Narrows in the first hour, Active Pass thirty-five miles later — and on a sample August day the two ideal departures are an hour apart, leaving First Narrows 175 minutes off slack and Active Pass 110 the other way. The card says so plainly instead of quoting one slack time and leaving the arithmetic to the skipper.
The app now also searches the day for the departure that gives the gates the easiest water, and offers it with the cost attached. Refuge Cove to Dent Island is the case that earns it: the recommended cast-off reaches the three rapids 15, 30 and 55 minutes off their slacks, and a departure nineteen minutes slower puts every one of them in easy water. It is an alternative, never a correction — the recommendation still optimises for duration and daylight.
Two mistakes worth recording, both the same shape and neither of them arithmetic. The chain note first said “this plan gives slack to First Narrows” at the moment First Narrows was 175 minutes off slack — a confident statement of the opposite of the truth, with correct figures printed directly above it. Then the search recommended an hour 45 minutes off slack over one 39 minutes off, citing the minutes as its reason. Both times the numbers were right and the sentence describing them was wrong, which is why the tests here check the prose against the figures rather than the figures against themselves.
False Creek joins the library, to Snug Cove and to Silva Bay. It makes a nice contrast: Coal Harbour is two miles away and every departure from it has to time First Narrows, while False Creek sits outside the narrows and never transits the gate at all.
The chain travels with Copy plan now. A pasted plan for a two-gate passage that lists one slack time is the exact thing this feature exists to stop.
2026-08-23.1 · 2026-08-23
Vancouver and the Sunshine Coast, and a conclusion drawn twice and wrong twice
Ten new pairs reaching from Coal Harbour to Princess Louisa Inlet, on three Canadian current stations that had been published all along and never wired up: First Narrows, Second Narrows and Sechelt Rapids.
The gate strengths are derived from the published Canadian data rather than from the brief that asked for them, and the difference matters. The measured peak at First Narrows came out materially stronger than the figure the work had been scoped against — enough to move it from a pass you time loosely to one that has to be taken near slack. Where a source gives a number, the source wins over the brief.
The geometry came from charted tracks, and that mattered more than anything else here. TWICE I reported that Howe Sound, Sechelt and Jervis could not be routed because hand-placed waypoints crossed modelled land, and that the whole area was blocked pending work that would have put the existing routes at risk. Every supplied track cleared with nothing overland at all. Point Atkinson is at 123.265 W and I had placed it at 123.20, which is a street in West Vancouver. A charted track is evidence about the water; a hand-placed waypoint is evidence about the person placing it.
Malibu Rapids, at the entrance to Princess Louisa, publishes no current data whatever — every series, every year, empty. It falls back to the Sailing Directions rule instead: slack at Point Atkinson high water plus 25 minutes, and the app says that is what it is doing.
The 22 short Desolation Sound hops now say plainly that there is no tidal gate on them, rather than staying silent and letting the reader assume one was checked. Their only station is 55 nm away across the Strait of Georgia and has no bearing on Homfray or Lewis Channel; it is attached because every route needs one.
2026-08-22.18 · 2026-08-22
The Swinomish channel stops being a guess and starts being a measurement
The current in Swinomish Channel is now modelled from the head — the height difference between the tide gauges at each end — and calibrated against a 2006 USGS survey, the only current measurements ever made in that cut. It reproduces both the peak speed the survey measured and its five-and-a-quarter-hour lag behind the tide.
A verdict reversed in public. I had rejected the physical transfer-function model on the strength of pilotage figures and kept a simpler law. The USGS measurements reversed that: the simple law cannot produce the observed lag at all, and the model I had thrown out reproduces it. The old reasoning is left in the notes rather than quietly deleted.
The forecast model that used to supply channel velocity has been demoted to a boundary correction. Its finest published grid is about 100 m and the maintained channel is 30 m wide, so whatever it was resolving, it was not this cut — a correlation of 0.32 with structure left in the residual.
The channel now has a tide with no signal and no forecast horizon: 37 harmonic constituents embedded for both gauges, so the head can be computed for any date, forever, offline. The error in the head is 9 mm.
Every peak in the old channel estimate had been clipped by about a third. The slack detector rejected genuine maxima because two samples ten minutes apart near a smooth peak differ by six thousandths of a knot, which read as “not rising”.
The Rainbow Bridge clearance now moves with the tide instead of being one number — about 14 ft of swing across the range, computed from the La Conner prediction for the minute you pass under it. It is shown, never enforced: the app does not know your air draft. It also warns that cables have been reported over the channel about 3 ft below the span, which for a tall rig is the real limit.
The deploy had stopped finishing inside its time limit. The test suite was planning every day of every route three times over; once was enough. Twelve minutes down to just over one.
Pirates Cove finally has its reverse from Nanaimo, and “one-way” stopped being something a route is allowed to be.
2026-08-22.17 · 2026-08-22
A picker in two halves, and Bainbridge gets the routes it is actually good at
The route list is now explicitly two halves. HOME PORTS answers “I am here, where can I go” — Shilshole, Bainbridge, Edmonds, Everett. CRUISING GROUNDS answers “I want to go there, how do I get there”. They were already ordered that way but nothing said so, and in a dropdown “From Everett” and “Strait of Georgia” read alike.
Inside every group the pairs are now ordered shortest first, so the day-sails sit above the two-day passages — roughly the order a skipper decides in. A route and its reverse stay together and the south-going one still leads.
Bainbridge finally has the routes it is actually good at. Blake Island is 5.8 nm from Eagle Harbor against 10.1 from Shilshole, and Bremerton is 10.5 through Rich Passage. Every Bainbridge route before this was a northern one, which is its WORST case — three miles longer than the same passage from Shilshole, because the first hour is spent getting back to water Shilshole starts on. A home port whose only listed routes are its worst case reads as a weak one.
Rich Passage is modelled as narrow, dog-legged and busy rather than as a tidal gate. The Seattle–Bremerton ferries run it at speed and meeting one in the bend is the real problem; the stream matters but is not what makes the passage.
Caught by an invariant: the two short Bainbridge routes had inherited wind sampling points from the Shilshole runs, whose distances lie past the end of a six-mile passage. A wind point beyond the route samples weather the boat never reaches, and its reverse lands at a negative mile.
2026-08-22.16 · 2026-08-22
Poulsbo from four home ports, and Edmonds through the cut
Bainbridge, Edmonds and Everett all reach Poulsbo now, and all three splice onto the CHARTED Agate Passage line rather than re-deriving it — get to Point Monroe or Port Madison, then the operator’s own chart does the gate.
Bainbridge goes NORTH-about, round the top of the island. South-about through Rich Passage is two miles longer and misses Agate entirely, which is the wrong trade on the one route where the gate is the whole day.
Everett to Poulsbo is the awkward one and the notes say so: twenty-eight miles where the two ends want different water. The ebb carries you out of Possession Sound and down the basin; the flood is what sets you through Agate at the far end.
Edmonds now has the inside route too — La Conner and Anacortes through the Swinomish Channel, spliced onto the Everett chain exactly as the Shilshole routes already are. Edmonds sits essentially on the library’s own “Off Edmonds” mark, so the inside trunk from there is the northern remainder of a chain that was already calibrated.
The picker is reordered. Home ports first — Shilshole, Bainbridge, Edmonds, Everett — because that is the question people actually open the app with. Everything after runs south to north: South Sound, Tacoma, Juan de Fuca, the Gulf Islands, Georgia, Desolation, and the rapids beyond. Read top to bottom it is an itinerary.
Caught while building, and worth knowing: a route from Everett cannot pass THROUGH the Edmonds marina entrance. It only cleared the land check on the Edmonds routes because a route’s own dock is exempt from it — a boat transiting has no such excuse, and the chain now stands offshore.
Also caught: two different legs in two different routes were both called “Into Port Madison”, approached from opposite directions, and needed opposite current signs. Same name, opposite geometry — renamed so the timeline and anything keyed on leg name can tell them apart.
2026-08-22.14 · 2026-08-22
Swinomish stops having one tide, and two more home ports
The Swinomish Channel joins two DIFFERENT tidal regimes — Skagit Bay swings about 11.5 ft against Padilla Bay’s 8.4, and turns roughly half an hour later — so there is no single Swinomish tide height for a transit. The depth check now reads each controlling point on its own gauge and reports the worst: the south entrance on the Skagit gauge, the cut on La Conner, the north entrance on Padilla. Before this, both halves of a two-leg transit were checked against the mid-channel gauge, including the leg that ends at Padilla.
The card now says WHICH point is shallowest and when you are there — “Shallowest: Skagit Bay entrance, 14:22” — because a skipper who knows where the pinch is can do something about it, and one given a bare number cannot.
Each controlling point is scored on the least water over the stretch of the passage it owns, not on the tide at one instant. Reading an instant is more precise and less safe: a transit falling into a low reads comfortably at its midpoint and grounds near the end.
Beyond NOAA’s channel-model horizon the cut is no longer modelled as still water. The tide-derived estimator used to run only when the model produced nothing at all, so any usable run — even a stale cached one — disabled it, and every hour past the model’s 72-hour reach integrated at zero. It now splices: model where it reaches, labelled estimate beyond.
The Port of Skagit’s local rule — north around high water, south around low, slack two and a half to four hours after — is now shown on the card as a CHECK on the model, and says so in the hazard colour when the two disagree. This is the water the app is least sure of, and the disagreement is the useful signal.
“Flood = north” is retired as a description of this channel. The stream does not reverse at local high or low, and it can be setting opposite ways at the two ends.
Twenty new routes from two more home ports: Edmonds and Bainbridge (Eagle Harbor at Winslow), to Anacortes, Roche Harbor, Sucia, Victoria and Sidney. Every northern passage from Edmonds is about 6.7 nm SHORTER than the same passage from Shilshole — most of an hour, and often the difference between catching the Admiralty flood and waiting for the next one. From Bainbridge every one is about 3 nm LONGER, because you spend the first hour getting back to water Shilshole starts on.
Those twenty cost almost no new geometry, which is worth recording: every northern destination converges at Point No Point whichever Puget Sound marina it is bound for, and forcing a route through that mark costs 0.06 nm from Edmonds and 0.28 from Bainbridge. So a new home port is one different leg on the end of a chain that is already calibrated, not a new library.
2026-08-22.10 · 2026-08-22
Seymour Narrows, Hole in the Wall, and a route that came off a chart
Campbell River to Chatham Point, through Seymour Narrows — the fastest water TidePush plans. Seymour is treated as speed-aware rather than slack-only, because it is wide, deep and well charted and capable boats transit it away from slack as routine. What it carries instead is the lowest absolute ceiling of any gate in the library: past that, the plan stops recommending the transit whatever the boat, because Ripple Rock is still under it and the overfalls over it are indifferent to horsepower.
Big Bay to the Octopus Islands, through the Yucultas and Hole in the Wall. Two slack-water gates seven miles apart that do not turn together, which is the whole planning problem of that day — southbound is the flood transit of the Yucultas and the ebb transit of the Hole, and a cast-off that suits one can put you at the other an hour wrong.
That route’s track came off a charted Navionics route rather than out of the water-graph solver. It matters here more than anywhere else in the library: Hole in the Wall is about two hundred metres wide, and a fairway found by searching a simplified coastline would be arithmetic on a polygon rather than pilotage. Every segment of the charted line was checked against the shipped coastline and none of them touches land.
Two routes that were asked for are NOT here, and the reasons are worth stating. The Okisollo Upper and Lower Rapids have no published CHS current station — the whole 1,573-station Canadian list has none anywhere in Okisollo — so a route through them could be drawn but not gated, and a rapid with no gate is worse than no route. And the Calm Channel to east Cordero run is substantially water the library already covers, with one genuine question about which side of the Cordero Islands the fairway passes that wants a chart rather than a guess.
Verified while building: the simplified coastline does NOT close any of these channels — Hole in the Wall models at 207–244 m against a real 200, and Seymour at 740 m against a real 750. It does under-resolve Beazley Passage, where the model leaves less water than the real navigable slot, which is why nothing new was built through Surge Narrows this time.
2026-08-21.17 · 2026-08-21
Usage counting learns to tell a real skipper from the author testing
The Yucultas, Gillard Passage and Dent Rapids can now be planned all the way to Dent Island Lodge, from Refuge Cove and from Prideaux Haven. Eighteen new passages in all, including Thulin Passage out of Lund, Powell River to Lund, and the short hops between Prideaux Haven, Tenedos Bay, Squirrel Cove and Refuge Cove.
Fixed, and it was a real one: the Big Bay passage routed WEST through Gillard Passage and then back east to the anchorage. Big Bay lies east of the pass — CHS puts its gauge at 125.135 W against Gillard’s 125.157 W — so the plan sent boats through the fastest gate in the library, twice, on a day whose entire purpose is to stop short of it. It now runs Yucultas, Big Bay, Gillard, Dent, in that order.
Two sign errors caught by the same audit: a leg between the Yucultas and Gillard claimed the flood helped a northbound boat, and slipped past the geometry check by one degree of relative bearing.
The usage counting behind the admin page was rebuilt. It counted plans and nothing else, which meant a total of 1,741 could not be separated into "eleven real boats" and "one developer with a hot reload" — and so answered nothing at all.
It now records a random first-party visitor id kept in the browser, a session id, the source IP, an approximate IP-derived location, and the device and browser class. That makes it possible to say how many people are actually out there, whether they come back, and whether they are anywhere near the water this app plans passages on.
Developer traffic is classified explicitly — by admin session, a per-browser flag, or an address in a configured allowlist — and excluded from the numbers by default. Deliberately NOT by boat: most Hallberg-Rassy 40 traffic today is the author testing, and making that the rule would permanently misclassify the first real HR40 owner who finds the app.
Records written before any of this existed are reported as Unknown / Legacy: counted in the total, excluded from every rate, and never retro-classified. Guessing which of them were the developer would put a guess in the data where a measurement should be.
Day buckets moved from UTC to Pacific. A plan made at five in the afternoon in Seattle belongs to that afternoon, not to the following morning in Greenwich — which is where a whole evening of use had been landing.
The privacy wording changed with it, in the app, in the terms and on the About page. "Anonymous counts only" is no longer true, and saying it anyway would be worse than the collection it was describing. There is still no advertising use, no third-party tracker, and no fingerprinting.
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. 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 — scaled so an ordinary spring lands where the guides say the cut runs, rather than by curve-fitting to a model that disagreed with itself.
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 margin on stated draft.
A two-ended channel-current model was built, measured against the NOAA model, and rejected: it correlated poorly and understated the peaks badly. 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.