Changelog
Every release of geotechCLI, newest first. The most recent releases are expanded; older ones are collapsed to keep the history readable — open any of them, or search across all 548 entries at once.
0.4.146 Release
fixpile: a measured undrained shear strength was being discarded. The method is auto-selected from the dominant soil, so a mostly-sand profile resolved to spt-meyerhof and then read N/2 for every clay layer. Su could be varied from 25 to 200 kPa, an eightfold change in the governing parameter, without moving the answer at all. For soft clay this was unconservative: 1563 kN returned where the measured strength supports 916 kN, 71% too high. A measured Su now governs its own layer, and so does the pile base; an explicit --method is still honoured exactly as given
fixseepage: the reported exit gradient was the average gradient H/L. The gradient at the downstream face is always the larger of the two, which is precisely why piping initiates there, so the factor of safety against piping was systematically optimistic in a life-safety check. It is now derived from the engine own Dupuit solution. For a 10 m to 2 m head across 8 m the exit gradient goes from 1.00 to 3.00 and the piping factor of safety from 0.97 to 0.32, so the previous figure was three times optimistic
fixclassify: organic soils were unreachable. The result type declared an organic group but no code path could return it and there was no organic input, so peat and organic clays were reported as MH or CH. New --ll-ratio classifies OL and OH per ASTM D2487 when LL(oven-dried)/LL(not dried) is below 0.75, and --organic classifies peat as Pt at 75% organic content or more. Inorganic soils are unaffected
fixpile: two citations did not match the code. The base factor was labelled Berezantsev (1961) but evaluates Prandtl-Reissner, which under-predicts base resistance for deep piles, and the alpha correlation was labelled API RP 2GEO but is the Tomlinson total-stress form keyed on Su alone. Both are now documented for what they are, alongside the engine standing limitations: working stress only, compression only, no group effects
featGolden-value coverage extended to 61 tests spanning six engines. Eight of the seventeen new tests fail against the previous code, verified before the fixes were written
0.4.145 Release
securityDependency security: 20 advisories (13 high) down to 8 (1 high). Next.js 15.5.18 to 15.5.22 fixes 8 advisories that mattered most because Next is the runtime of the deployed site, not build-only tooling: SSRF in Server Actions and in rewrites, cache confusion of response bodies, unauthenticated disclosure of internal Server Function endpoints, unbounded Edge Server Action payloads, and DoS in Server Actions and image optimization
securityAlso upgraded: postcss to 8.5.23 (arbitrary file read, source-map path traversal, stringify XSS) and with it @tailwindcss/postcss; sharp to 0.35.3, which ships to npm users via @geotechcli/core; wrangler to 4.114.0, clearing miniflare, undici and ws; plus js-yaml, tmp, form-data and vite
securitybrace-expansion is deliberately held at 5.0.5: 5.0.8 fixes the advisory but removes the default export, and minimatch inside the OpenNext build chain imports it as a default, so forcing the upgrade breaks the Cloudflare build. The nested 1.x and 2.x copies are already at their patched releases
fixThe CLI startup banner now points at www.geotechcli.com instead of beta.geotechcli.com. The hosted-beta proxy endpoint is unchanged
0.4.142 Release
fixLiquefaction CRR was a mis-transcribed Boulanger & Idriss (2014) Eq. 2.24: the four powers of (N1)60cs were folded onto a single variable with the wrong divisors. Resistance was overstated 2.8x at (N1)60cs = 20 and 39x at 30, and the curve crossed CRR = 1.0 near 23, beyond which nothing could ever be flagged as liquefiable. The published form is restored, capped at 37.5. If you ran triggering analysis on an earlier version, re-run it
fixAdded the rest of the same reference: magnitude scaling factor (Eqs. 2.19-2.20, exactly 1.0 at M 7.5), overburden correction Ksigma (Eqs. 2.16-2.17, capped at 1.1), the iterative CN of Eq. 2.15b and fines correction per Eq. 2.11. Results now report sigma-v0-prime, CN, rd, MSF, Ksigma and post-liquefaction volumetric strain
fixbearing --method hansen returned Vesic numbers. The methods differ in N-gamma and in their shape factors, so selecting Hansen silently produced Vesic capacity. Each method now computes its own factors, and Meyerhof gets its own N-gamma
fix--shape square and --shape circular were ignored unless --length was also given, so shape factors fell back to a strip footing. Shape now resolves B/L directly and still honours an explicit length
fixSlope stability read only the first soil layer, and waterTableDepth / saturatedUnitWeight were inert because an inverted pore-pressure test left u = 0, so a rising water table never reduced the factor of safety. It also was not Bishop: it forced absolute alpha, divided by m-alpha twice, and sliced the full chord instead of the daylighted arc. Rewritten, it now lands within 3.7% of Taylor stability chart values (was ~26% low), and the Ordinary/Fellenius method runs for the first time
featPinned all three engines with 44 golden tests asserting published table values rather than directions. 25 of the 44 fail against the previous code, verified by reverting the sources and re-running