Skip to content

SnowSignal v1.0.0-beta.3 — polish release#4

Merged
DawsonCodes merged 2 commits into
mainfrom
feature/v1.0.0-beta.3-polish
Jun 6, 2026
Merged

SnowSignal v1.0.0-beta.3 — polish release#4
DawsonCodes merged 2 commits into
mainfrom
feature/v1.0.0-beta.3-polish

Conversation

@DawsonCodes

@DawsonCodes DawsonCodes commented Jun 6, 2026

Copy link
Copy Markdown
Owner

SnowSignal v1.0.0-beta.3 — polish beta (not a stable release)

A focused polish pass on the existing transparent, deterministic engine. No backend, no framework, no build step, no new runtime dependencies, no analytics/tracking. Stays fully static under GitHub Pages /snowsignal/, and beta.2 preferences, saved/recent locations, and share links keep working.

What changed

  1. Open-source polishpackage.json renamed to snowsignal + "license": "MIT" + version bump; new CONTRIBUTING.md; README Open source section; compact footer MIT License + View source links. Root LICENSE (MIT, © 2026 DawsonCodes) preserved exactly.
  2. Wider desktop layout — ~1080px workspace, full-width search + school controls on top, two-column result workspace (factor breakdown beside weather details) on wide screens. Clean single-column mobile, no horizontal overflow, not edge-to-edge on ultrawide.
  3. Schedule context panel — weekend / summer-break / winter-break reminders moved into a separate compact, expandable card, hidden until a result exists, clearly labeled heuristic; dismiss preserved. Engine logic unchanged.
  4. Themes simplified to System / Light / Dark (removed Midnight snow + unused frost/slate tokens). Legacy midnight/midnight-snow/frost/slate preferences migrate to Dark. Header sun/moon toggles Light↔Dark only; a read-only System detected: Dark/Light badge shows while on System. Atmosphere stays independent and is tuned for both themes.
  5. Accent-hue customization — constrained hue slider (locked saturation/lightness) driving --accent-h; applied to accent, borders, ambient glow. Reset accent included; status colors stay distinct. Persisted in localStorage.
  6. Wider tabbed Settings modal (~760px): Appearance / Weather / Data / About, accessible tab semantics + arrow-key nav, focus trap / Esc / X / click-outside preserved, pills instead of a radio wall.
  7. No unnecessary animation replays — entrance animations run only after a new successful forecast; theme/atmosphere/accent/motion/unit and scoring tweaks update in place.
  8. Winter-weather plausibility gate — isolated hasMeaningfulWinterHazard(); benign weather resolves closure & delay to 0% with an explanation. Sensitivity / warm wind / month can't create risk; out-of-season storms still count.
  9. Date & freshness header — location-local date, forecast window, and a timezone-aware "Updated …" stamp.
  10. Collapsible Weather details — temp/low/high, window snowfall, gusts, snow depth, alert status, hourly outlook with an accessible text equivalent. Collapsed by default on small screens.
  11. Honest local estimate counter — device-local, footer + About, with reset.
  12. Loading/error states — friendlier messages (no raw errors), a Try again action that re-runs the last action, coordinate fallback preserved.
  13. Footer cleanup — brand, © 2026, MIT License, View source, weather + alert attribution, "Client-only · No tracking", and the not-affiliated disclaimer.
  14. Migration audit — retired theme code removed only after migration is covered; relative paths intact; no debug leftovers.
  15. Versioning/docs1.0.0-beta.3 across package.json, README, CHANGELOG, ROADMAP, and the in-app About tab.

Tests

node --test94 passing. Added/updated coverage: plausibility gate (warm/zero, sensitivity-alone, warm-wind-alone, real hazards, out-of-season), theme migration, accent + estimate-counter persistence/reset, date/freshness formatting, animation-replay prevention (DOM-stub), tabbed/wider modal + accent props + removed-theme + schedule-context CSS guards, MIT/version/changelog/contributing meta. Existing engine/weather/calendar/storage/url/atmosphere/relative-path tests still green.

Manual checks

  • Served locally; ES-module MIME text/javascript, CSS text/css, all assets resolve via relative paths.
  • No console errors or debug leftovers in source.

Limitations / notes

  • The result date uses the location's wall-clock date derived from the forecast's UTC offset (falls back to browser zone); the Updated stamp uses the location IANA timezone.
  • Accent uses a hue slider per the chosen design; status colors are intentionally fixed.

@DawsonCodes DawsonCodes marked this pull request as ready for review June 6, 2026 20:30
@DawsonCodes DawsonCodes merged commit f3dd369 into main Jun 6, 2026
2 checks passed
@DawsonCodes DawsonCodes deleted the feature/v1.0.0-beta.3-polish branch June 6, 2026 20:31

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 053a20624e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread css/tokens.css
/* default (light) palette */
color-scheme: light;
--accent: hsl(var(--accent-h) 83% 53%);
--accent-strong: hsl(var(--accent-h) 85% 60%);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep selectable accent hues readable in light mode

When the user selects a yellow, green, or cyan accent in light mode, this fixed 60% lightness makes --accent-strong nearly disappear against white/light surfaces; for example, hue 60 has only about a 1.2:1 contrast ratio. Since this token colors all links plus Weather details headings, selected settings tabs, and selected pills, those controls become difficult to read. Use a darker light-theme foreground token or otherwise constrain/adjust the selectable hues to preserve text contrast.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants