Conversation
…n-fix fix(frontend): correctly identify millisecond timestamps
…gent feat(azure): build using self hosted amd64 agent
…gent fix(azure): improve build process
✅ Deploy Preview for viseron canceled.
|
There was a problem hiding this comment.
Pull request overview
This PR syncs changes from master into dev, primarily updating frontend timestamp handling and modernizing the Azure Pipelines build/agent infrastructure (agent images, architecture selection, and pipeline disk cleanup behavior).
Changes:
- Update unix timestamp parsing to better detect ms-vs-s and normalize values before converting to Dayjs.
- Refactor Azure agent image + startup logic to support multiple architectures and Docker-in-Docker TLS connectivity.
- Adjust Azure Pipelines templates to use self-hosted pools, reduce Node memory limits, and run cleanup steps only when disk is low.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/lib/helpers/dates.ts | Changes unix timestamp normalization before converting to timezone-aware Dayjs. |
| docker/Dockerfile.azure | Makes the Azure agent image architecture-aware and configures Docker CLI for DinD over TLS. |
| docker/azure-agent-start.sh | Maps TARGETARCH to Azure agent platform identifiers for correct agent package selection. |
| azure-pipelines/templates/cleanup.yaml | Adds a pre-check and conditions cleanup steps on available disk space. |
| azure-pipelines/templates/build.yaml | Switches build jobs to named pools (e.g., amd64, rpi5) and lowers NODE_OPTIONS memory. |
| azure-pipelines/docker-compose-build.yaml | Adds an amd64-azure-agent image build and unifies rpi5 agent to the shared Dockerfile with updated TARGETARCH. |
| azure-pipelines/azure-pipelines-viseron.yml | Removes explicit docker pull steps before creating the multi-arch manifest. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (Math.abs(timestamp) > 9999999999) { | ||
| timestamp = Math.floor(timestamp / 1000); | ||
| } | ||
| return dayjs.unix(timestamp).tz(); | ||
| return dayjs.unix(Math.round(timestamp)).tz(); |
There was a problem hiding this comment.
getDayjsFromUnixTimestamp now rounds the timestamp to whole seconds (Math.round(timestamp)), which changes behavior for callers that pass fractional seconds (e.g. cursor/time interpolation) and can shift times forward/back by up to 1s. Consider preserving sub-second precision by passing the (possibly divided-by-1000) value through unchanged, or if integer seconds are required use truncation (Math.trunc) rather than rounding to avoid time drift.
No description provided.