Copilot
9efbdedab8
Fix: Disable helmet cross-origin headers causing blank page on HTTP access via IP ( #1026 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2026-01-26 19:16:08 +01:00
dependabot[bot]
de373ef455
chore(deps): bump qs from 6.14.0 to 6.14.1 ( #1018 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 21:24:49 +01:00
dependabot[bot]
93f4e08565
chore(deps): bump diff from 7.0.0 to 8.0.3 in /app ( #1017 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:46:01 +01:00
Copilot
c7d28da4ec
Redesign topic details sidebar with clickable navigation and improved mobile layout (WIP - demo video test regression) ( #1011 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com >
2026-01-12 09:16:22 +01:00
Copilot
36b4c0fce5
Improve UX: accessibility, field guidance, and error prevention ( #1010 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-28 08:50:49 +01:00
Copilot
4de52aba7c
Implement mobile-first navigation with tabs, server-side auto-connect, improve mobile UX ( #1008 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com >
2025-12-27 17:02:49 +01:00
Thomas Nordquist
8f86d272c7
Change base image from node:24-alpine to node:22-alpine
2025-12-24 19:40:15 +01:00
Copilot
2abba74e1c
Add concurrency groups to workflows to cancel superseded runs ( #1007 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 18:38:22 +01:00
dependabot[bot]
10d0b0fa77
chore(deps): bump ws from 7.5.9 to 7.5.10 ( #815 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-24 18:25:40 +01:00
Copilot
7e79a7601e
Add UI tests for clipboard copy and file download in Electron and browser modes ( #1004 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 18:13:43 +01:00
Thomas Nordquist
ef3343a912
Change base image from node:24-alpine to node:22-alpine
...
For armv7 copatibility
2025-12-24 18:11:30 +01:00
Copilot
ee1171f7af
Add security-focused tests for Login Page error messages ( #1005 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 18:02:44 +01:00
Copilot
1453934e29
Add mobile compatibility concept, Pixel 6 demo video infrastructure, and CI/CD workflow ( #1006 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 18:02:17 +01:00
Copilot
a3de71d939
Fix RPC import issue preventing Host input field from appearing in Electron mode ( #991 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com >
2025-12-24 16:57:08 +01:00
Thomas Nordquist
7e5b013448
Install Playwright before running browser tests
2025-12-24 16:49:46 +01:00
Copilot
fe790ecd39
Consolidate mosquitto startup into test scripts ( #1003 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 16:41:19 +01:00
Copilot
b5f6c7fa3f
Convert cutVideoSegments.sh from shell wrapper to native Node.js script ( #1002 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 16:07:55 +01:00
Thomas Nordquist
c6831212b4
Clean up test workflow configuration
...
Removed unnecessary options and environment variables for test containers.
2025-12-24 15:06:14 +01:00
Copilot
6612e10a66
Replace mosquitto service containers with detached process startup ( #1000 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 14:59:11 +01:00
Copilot
4eb58df233
Fix: Export GIF_SCALE in cutVideoSegments.sh ( #998 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 14:28:25 +01:00
Copilot
f854e12824
Fix mosquitto service container entrypoint argument syntax ( #999 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 14:27:07 +01:00
Copilot
92fe005e3b
docs: Add comprehensive styling conventions guide ( #968 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com >
2025-12-24 14:03:37 +01:00
Copilot
5f703695bb
Fix invalid cmd: syntax in GitHub Actions mosquitto service containers ( #996 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 13:28:55 +01:00
Thomas Nordquist
6f8ad41ef5
Change MQTT broker host in tests workflow
2025-12-24 12:42:12 +01:00
Copilot
1ec10bb007
Fix browser UI tests: Enable anonymous access for mosquitto 2 ( #994 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 12:05:02 +01:00
Thomas Nordquist
70e75061b2
Change MQTT broker host to localhost in tests
2025-12-24 10:11:41 +01:00
Copilot
c0b2950ecb
Configure MQTT broker hostname based on execution context ( #993 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-24 08:23:42 +01:00
Thomas Nordquist
f946ae39d7
Add bash shell specification for S3 upload step
2025-12-23 23:42:12 +01:00
Copilot
43ff3e81f0
Segment demo video by scene with embedded GIF segments ( #990 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 23:11:18 +01:00
Copilot
79a8cdf1fd
Refactor copilot instructions: add meta-directives and condense content ( #992 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 23:07:02 +01:00
Copilot
16c190818c
Set TESTS_MQTT_BROKER_HOST globally for all jobs with mosquitto services ( #989 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 22:38:32 +01:00
Copilot
de367e755f
Fix server build: Remove Electron dependency from events/index exports ( #987 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 21:46:40 +01:00
Copilot
6e355decbf
Replace react-vis with visx, add component testing infrastructure, and update Electron packages ( #959 )
2025-12-23 21:45:33 +01:00
Copilot
d4dbc36a8a
Set Content-Type header when uploading demo-video GIF to S3 ( #986 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 20:24:58 +01:00
Copilot
0e82a8baad
[WIP] Run mosquitto as a service for browser UI tests ( #985 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 19:57:26 +01:00
Copilot
0016f2d364
Remove redundant EventBus replacement pattern causing potential circular dependency ( #984 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 19:52:59 +01:00
Copilot
e6ecb77d01
Remove electron dependency from browser build by using platform-agnostic dialog types ( #982 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 19:21:14 +01:00
Thomas Nordquist
2afddb8d63
Change S3 file URL to include 'artifacts' directory
...
Update file URL path for S3 artifacts.
2025-12-23 19:19:21 +01:00
Copilot
dfdf473b27
Ensure Playwright browsers are installed in all GitHub workflow test jobs ( #981 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 16:29:02 +01:00
Thomas Nordquist
4fcdd47e65
Update S3 key path for uploaded artifact
2025-12-23 16:17:16 +01:00
Copilot
b2a8e84479
Remove S3 object tagging from demo video uploads ( #980 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 15:07:27 +01:00
Copilot
8d665e0e52
Run browser mode tests in Docker with authentication instead of Electron ( #972 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com >
2025-12-23 15:02:46 +01:00
Copilot
9e1c229a5d
Remove --acl from S3 upload for BucketOwnerEnforced buckets ( #979 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 14:48:29 +01:00
Copilot
0d34f86893
Fix S3 upload by using s3api put-object instead of s3 cp ( #978 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 14:26:12 +01:00
Copilot
73c48f388b
Fix glibc incompatibility in demo-video workflow ( #977 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 13:47:51 +01:00
Copilot
a36a630466
Align license references with LICENSE.md (CC BY-SA 4.0) ( #973 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 13:30:15 +01:00
Copilot
fe6ccc8e16
Install AWS CLI in demo-video workflow job ( #976 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 13:15:27 +01:00
Copilot
d91718cf80
Replace ramonpaolo/action-upload-s3 with aws-actions/configure-aws-credentials + AWS CLI ( #975 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 12:21:19 +01:00
Thomas Nordquist
66610bcb54
Add zip option to S3 upload step in tests.yml ( #974 )
2025-12-23 11:54:57 +01:00
Copilot
7437c796a0
Add S3 object expiration and PR comment posting for demo videos ( #970 )
...
Demo videos from PR builds now expire after 90 days and are posted
directly to PR threads. Uses object tagging with S3 lifecycle policies
for automatic cleanup.
## Changes
**Workflow** (`.github/workflows/tests.yml`)
- Replace `hkusu/s3-upload-action@v2` with
`ramonpaolo/action-upload-s3@main` for tagging support
- Tag uploaded objects: `expiration=90days`, `Source=github-actions`,
`Type=pr-demo-video`
- Generate unique filenames: `pr-{number}-{timestamp}.gif`
- Post PR comment with embedded video using `actions/github-script@v7`
**Documentation** (`CI_CD.md`)
- S3 lifecycle policy configuration (filters on `expiration=90days` tag)
- IAM permission requirements: `s3:PutObject`, `s3:PutObjectTagging`
## S3 Lifecycle Setup Required
```json
{
"Rules": [{
"ID": "ExpirePRDemoVideosAfter90Days",
"Status": "Enabled",
"Filter": {"Tag": {"Key": "expiration", "Value": "90days"}},
"Expiration": {"Days": 90}
}]
}
```
Apply with: `aws s3api put-bucket-lifecycle-configuration --bucket
<bucket> --lifecycle-configuration file://policy.json`
## Notes
- gh-pages `video.mp4` unaffected (served from GitHub Pages, not S3)
- Existing S3 objects without tags remain unchanged
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `https://api.github.com/repos/ramonpaolo/action-upload-s3/tags `
> - Triggering command: `/usr/bin/curl curl -s REDACTED` (http block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps ) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/thomasnordquist/MQTT-Explorer/settings/copilot/coding_agent )
(admins only)
>
> </details>
<!-- START COPILOT CODING AGENT SUFFIX -->
<!-- START COPILOT ORIGINAL PROMPT -->
<details>
<summary>Original prompt</summary>
> when a demo-video is generated from a pr, add an expiration of 90 days
to the S3 file and post the video as image to the pr thread.
</details>
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/thomasnordquist/MQTT-Explorer/issues/new?title=✨ +Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot )
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com >
2025-12-23 10:57:25 +01:00