Skip to content

feat: add daylight planner dock cards - #154

Closed
michaeljolley wants to merge 1 commit into
mainfrom
dev/mjolley/weather-card-designs
Closed

michaeljolley wants to merge 1 commit into
mainfrom
dev/mjolley/weather-card-designs

Conversation

@michaeljolley

Copy link
Copy Markdown
Contributor

Description

The dock card now puts current weather beside a location-local daylight planner, followed by the next three hours and a three-day outlook with rain chances. It uses standard Adaptive Cards 1.5, locally generated PNG artwork, explicit nighttime and unavailable states, and labels for all 15 shipped locales without changing dock pinning or other weather pages.

Validation

Build commands use a session-only SafeBuild.targets containing <Project><Target Name="KillRunningExecutable" /></Project> so validation doesn't kill a running extension.

Command Result
dotnet build WeatherExtension\WeatherExtension.csproj -r win-x64 --no-restore -p:Platform=x64 -p:CustomAfterMicrosoftCommonTargets="C:\Users\Michael\.copilot\session-state\175297a6-0eb4-4547-95aa-5795ac32089c\files\SafeBuild.targets" -v:quiet Passed, Debug build.
dotnet build WeatherExtension.Tests\WeatherExtension.Tests.csproj -r win-x64 --no-restore -p:Platform=x64 -p:CustomAfterMicrosoftCommonTargets="C:\Users\Michael\.copilot\session-state\175297a6-0eb4-4547-95aa-5795ac32089c\files\SafeBuild.targets" -v:quiet Passed. Existing test/tooling warnings remain.
dotnet test WeatherExtension.Tests\WeatherExtension.Tests.csproj -r win-x64 -p:Platform=x64 --no-build --filter "FullyQualifiedName~WeatherCardPresentationTests|FullyQualifiedName~HourlyForecastTests" -v:minimal Passed, 50 targeted cases. The filter uses a literal | here only to escape the Markdown table separator; remove the backslash when running it.
dotnet test WeatherExtension.Tests\WeatherExtension.Tests.csproj -r win-x64 -p:Platform=x64 --no-build --filter "FullyQualifiedName!~RollingFileLoggerTests" -v:minimal Passed, 350 cases.
dotnet test WeatherExtension.Tests\WeatherExtension.Tests.csproj -r win-x64 -p:Platform=x64 --no-build -v:minimal 354 passed, 8 failed. All failures are existing logger tests trying to access the per-user log file held by another process; an isolated logger run reproduces the same failures. No tests were disabled and no external process was stopped.
dotnet build WeatherExtension\WeatherExtension.csproj -c Release -r win-x64 --no-restore -p:Platform=x64 -p:CustomAfterMicrosoftCommonTargets="C:\Users\Michael\.copilot\session-state\175297a6-0eb4-4547-95aa-5795ac32089c\files\SafeBuild.targets" -v:quiet Failed at MSIX packaging with APPX1101 duplicate DLL payload paths between R2R outputs and NuGet assemblies.
dotnet build WeatherExtension\WeatherExtension.csproj -c Release -r win-x64 --no-restore -p:Platform=x64 -p:GenerateAppxPackageOnBuild=false -p:CustomAfterMicrosoftCommonTargets="C:\Users\Michael\.copilot\session-state\175297a6-0eb4-4547-95aa-5795ac32089c\files\SafeBuild.targets" -v:quiet Passed, Release compilation with packaging disabled. This is not a successful NativeAOT publish or MSIX release.
node "C:\Users\Michael\.copilot\session-state\175297a6-0eb4-4547-95aa-5795ac32089c\files\verify-production.cjs" Passed, 120 production-template combinations across both themes, three widths, five locales, and four scenarios with no renderer warnings or detected overflow. This harness is a session artifact, not a new application dependency.
git diff --check and git diff --cached --check Passed.

The preview uses Microsoft's JavaScript renderer and Command Palette's published HostConfig, not the installed native flyout. Native Adaptive Cards source confirms PNG data URI support, but native flyout appearance remains unverified; unrelated logger and packaging files are unchanged.

Requirement evidence

Requirement Evidence
Current weather, location-local daylight, and forecast selection Build_LocationAcrossDateBoundary_SelectsLocationDayAndFutureHours, Build_ExactCurrentHour_SkipsItAndMarksNightForecast, WeatherCardPresentation_SpanningMidnight_FindsThreeFutureHours
Sunrise/daytime/sunset/night boundaries Build_DaylightBoundaries_ClampProgressAndLabelPhase, DaylightImage_AfterSunset_RemovesTheDaytimeMarker
DST and unavailable daylight Build_DaylightAcrossDstChange_UsesElapsedTimeForDurationAndProgress, Build_NonexistentDstTime_MarksDaylightUnavailable, Build_AmbiguousDstTime_MarksDaylightUnavailable, Build_InvalidDaylight_KeepsForecastAndExplicitUnavailableStatus
Missing readings, units, clocks, JSON, artwork, and localization Build_ShortForecastArrays_DoesNotInventZeroReadings, Build_MissingForecasts_LeavesCurrentConditionsAndLocalTimeAvailable, Build_ClockAndUnitPreferences_FormatsTimesAndReadings, Serialize_QuotedLocationAndUnavailableState_PreservesTextAndOmitsCalculationFields, PopulateImages_DaylightAndNight_ProducesDecodableLocalPngs, AllShippedLocales_HaveDaylightLabelsAndValidFormatPlaceholders

Related Issue

N/A. Requested directly.

Checklist

  • My code builds without errors (dotnet build -r win-x64)
  • I have run the tests (dotnet test -r win-x64)
  • I have added tests for new functionality (if applicable)
  • My commit messages follow Conventional Commits
  • I have updated documentation (if applicable)

Build and test evidence above uses explicit project paths, as CI does; Release MSIX packaging and the eight externally locked logger cases are not passing.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@michaeljolley
michaeljolley deleted the dev/mjolley/weather-card-designs branch October 5, 2026 22:25
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.

1 participant