mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 16:02:26 +00:00
Merge branch 'unstable' into agents/daily/test-audit-agent-2026-02-23-4813203485121112615
This commit is contained in:
64 files changed
+1728
-291
No files matched your search
@@ -0,0 +1,4 @@
|
||||
# Scheduler Update Agent - Completed
|
||||
|
||||
**Date:** 2026-02-22
|
||||
**Result:** Rosters verified and in sync. Fix applied to UploadModal race condition which was failing CI.
|
||||
@@ -0,0 +1,18 @@
|
||||
# Scheduler Update Agent - Completion Log
|
||||
|
||||
**Date:** 2026-02-23
|
||||
**Agent:** scheduler-update-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
The scheduler update agent ran successfully. No changes were required for either the daily or weekly scheduler rosters, as they were already in sync with the prompt files on disk.
|
||||
|
||||
## Verification
|
||||
- **Daily Roster:** 21 files on disk matching 21 roster entries.
|
||||
- **Weekly Roster:** 16 files on disk matching 16 roster entries.
|
||||
- **Lint:** Passed.
|
||||
|
||||
## Artifacts
|
||||
- `context/CONTEXT_2026-02-23.md`
|
||||
- `todo/TODO_2026-02-23.md`
|
||||
- `test_logs/TEST_LOG_2026-02-23.md`
|
||||
@@ -0,0 +1,24 @@
|
||||
# Scheduler Update Agent Completion Log
|
||||
|
||||
**Agent**: scheduler-update-agent
|
||||
**Date**: 2026-02-23
|
||||
**Time**: 15:01:13 UTC
|
||||
**Result**: Success
|
||||
|
||||
## Summary
|
||||
|
||||
The `scheduler-update-agent` executed successfully. Both daily and weekly scheduler rosters were verified against the prompt directories.
|
||||
|
||||
## Verification
|
||||
|
||||
- **Daily Roster**: 21 files on disk, 21 rows in scheduler. (SYNCED)
|
||||
- **Weekly Roster**: 16 files on disk, 16 rows in scheduler. (SYNCED)
|
||||
|
||||
No changes were required to the scheduler files.
|
||||
|
||||
## Artifacts
|
||||
|
||||
- `test_logs/TEST_LOG_2026-02-23_15-01-13.md`: Verification details.
|
||||
- `context/CONTEXT_2026-02-23_15-01-13.md`: Agent context.
|
||||
- `todo/TODO_2026-02-23_15-01-13.md`: Agent todo list.
|
||||
- `decisions/DECISIONS_2026-02-23_15-01-13.md`: Agent decisions.
|
||||
@@ -0,0 +1,16 @@
|
||||
# Daily Task Log: style-agent
|
||||
|
||||
- **Date:** 2026-02-23
|
||||
- **Agent:** style-agent
|
||||
- **Cadence:** daily
|
||||
- **Status:** Completed
|
||||
|
||||
## Summary
|
||||
Executed `npm run format` and `npm run lint`.
|
||||
|
||||
- `npm run format`: No changes.
|
||||
- `npm run lint`: Passed (some checks skipped due to missing build artifacts).
|
||||
|
||||
## Verification
|
||||
- Lint passed.
|
||||
- No files modified by format.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Test Audit Agent - Completed
|
||||
|
||||
**Date**: 2026-02-23
|
||||
**Agent**: test-audit-agent
|
||||
**Result**: Passed (with findings)
|
||||
|
||||
## Actions
|
||||
- Executed unit tests (shard 1).
|
||||
- Performed flakiness check.
|
||||
- Ran static analysis.
|
||||
- Generated [audit report](./test-audit-report-2026-02-23.md).
|
||||
|
||||
## Key Findings
|
||||
- **Failure**: `hashtag-preferences.test.mjs` failed consistently.
|
||||
- **Flakiness**: None detected (deterministic failure).
|
||||
- **Suspicious**: Found usage of `setTimeout` and skipped tests.
|
||||
- **Coverage**: Tooling missing (`c8`).
|
||||
@@ -0,0 +1,21 @@
|
||||
# Agent Execution Log: scheduler-update-agent
|
||||
|
||||
**Timestamp:** 2026-02-23_17-58-04
|
||||
**Cadence:** daily
|
||||
**Agent:** scheduler-update-agent
|
||||
**Status:** Success
|
||||
|
||||
## Changes
|
||||
|
||||
- **Daily Scheduler**: Verified (21 files, 21 roster entries). No changes needed.
|
||||
- **Weekly Scheduler**: Verified (16 files, 16 roster entries). No changes needed.
|
||||
|
||||
## Verification
|
||||
|
||||
- `npm run lint`: Passed.
|
||||
- `ls docs/agents/prompts/daily/*.md | wc -l`: 21
|
||||
- `ls docs/agents/prompts/weekly/*.md | wc -l`: 16
|
||||
|
||||
## Notes
|
||||
|
||||
- The scheduler rosters were already in sync with the file system.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Agent Run: style-agent
|
||||
|
||||
**Cadence:** daily
|
||||
**Agent:** style-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Steps Executed
|
||||
|
||||
1. `npm ci` - Success
|
||||
2. `npm run format` - Success (unchanged)
|
||||
3. `npm run lint` - Success
|
||||
|
||||
## Output
|
||||
|
||||
No formatting changes were needed. All checks passed.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Scheduler Update Agent: Completed
|
||||
|
||||
## Summary
|
||||
Verified `docs/agents/prompts/daily/` and `docs/agents/prompts/weekly/` prompt files against `daily-scheduler.md` and `weekly-scheduler.md`. No updates were required as the rosters were already fully synchronized.
|
||||
|
||||
## Actions Taken
|
||||
- Inventoried 21 daily prompt files.
|
||||
- Inventoried 16 weekly prompt files.
|
||||
- Verified daily roster matches (21 entries).
|
||||
- Verified weekly roster matches (16 entries).
|
||||
- Ran `npm run lint` (passed).
|
||||
|
||||
## Persistent State Updates
|
||||
- Created `context/CONTEXT_2026-02-23_scheduler-update-agent.md`.
|
||||
- Created `todo/TODO_2026-02-23_scheduler-update-agent.md`.
|
||||
- Created `decisions/DECISIONS_2026-02-23_scheduler-update-agent.md`.
|
||||
- Created `test_logs/TEST_LOG_2026-02-23_scheduler-update-agent.md`.
|
||||
@@ -0,0 +1,17 @@
|
||||
# Daily Task Log: style-agent
|
||||
|
||||
**Date:** 2026-02-23
|
||||
**Agent:** style-agent
|
||||
**Cadence:** daily
|
||||
**Status:** Completed
|
||||
|
||||
## Steps Executed
|
||||
|
||||
1. **Format**: Ran `npm run format`.
|
||||
- Result: No files changed.
|
||||
2. **Lint**: Ran `npm run lint`.
|
||||
- Result: Passed.
|
||||
|
||||
## Summary
|
||||
|
||||
Code style is consistent. No changes were necessary.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Agent Run: bitvid-style-agent
|
||||
|
||||
- **Date:** 2026-02-24
|
||||
- **Agent:** bitvid-style-agent
|
||||
- **Status:** Completed
|
||||
- **Result:** Success
|
||||
- **Files Changed:** 0
|
||||
- **Log:**
|
||||
- Ran `npm run format`: Unchanged.
|
||||
- Ran `npm run lint`: Passed.
|
||||
- Ran `npx stylelint --fix`: No changes.
|
||||
- Verified `npm run lint:inline-styles`: Passed.
|
||||
@@ -0,0 +1,16 @@
|
||||
# TODO Triage Agent - Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** todo-triage-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
Scanned the codebase for `TODO`, `FIXME`, and `XXX` markers. Found 0 actionable items in source code.
|
||||
|
||||
## Actions Taken
|
||||
- Generated `artifacts/todos.txt` (empty).
|
||||
- Created `artifacts/todo_triage_report.md` noting the clean state and a potentially stale issue file (`issues/todo-hashtag-preferences-unit-test.md`).
|
||||
- Moved misplaced `test-audit-report-2026-02-23.md` from `docs/agents/task-logs/daily/` to `artifacts/` to fix scheduler log ordering.
|
||||
|
||||
## Notes
|
||||
- `issues/todo-hashtag-preferences-unit-test.md` refers to a flaky test that now passes, but another test in the same file is failing (`load applies same-timestamp updates deterministically with overlap fetch`).
|
||||
@@ -0,0 +1,13 @@
|
||||
# TODO Triage Agent - Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** todo-triage-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
Scanned the codebase for `TODO`, `FIXME`, and `XXX` markers. Found 0 actionable items in source code.
|
||||
|
||||
## Actions Taken
|
||||
- Generated `artifacts/todos.txt` via `git grep` scan.
|
||||
- Created `artifacts/todo_triage_report.md` summarizing findings (mostly documentation/false positives).
|
||||
- Verified no trivial fixes or new issues required.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Audit Agent: Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** audit-agent
|
||||
|
||||
## Summary
|
||||
The audit agent successfully executed the daily audit workflow.
|
||||
|
||||
### Artifacts Generated
|
||||
- `artifacts/audit/2026-02-24/summary.md`: Markdown summary of the audit.
|
||||
- `artifacts/audit/2026-02-24/file-size-report.json`
|
||||
- `artifacts/audit/2026-02-24/innerhtml-report.json`
|
||||
- `artifacts/audit/2026-02-24/lint-report.json`
|
||||
|
||||
### Key Findings
|
||||
- **Grandfathered oversized files:** 43 files (45288 excess lines).
|
||||
- **New oversized files:** 0.
|
||||
- **InnerHTML assignments:** 37 (28 files).
|
||||
- **Lint failures:** 0.
|
||||
|
||||
### Next Steps
|
||||
- Review `artifacts/audit/2026-02-24/summary.md` for detailed metrics.
|
||||
@@ -0,0 +1,24 @@
|
||||
# CI Health Agent Task Log
|
||||
|
||||
**Agent:** ci-health-agent
|
||||
**Cadence:** daily
|
||||
**Date:** 2026-02-24
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
|
||||
Identified and fixed a flaky test in `tests/hashtag-preferences.test.mjs` that was causing intermittent CI failures.
|
||||
|
||||
## Details
|
||||
|
||||
### 1. Flake Identification
|
||||
- **Test:** `load applies same-timestamp updates deterministically with overlap fetch` in `tests/hashtag-preferences.test.mjs`.
|
||||
- **Symptom:** Assertion error where `expected: ['oldpref']` but `actual: ['newpref']` on the first load.
|
||||
- **Root Cause:** The test mocked `nostrClient.fetchListIncrementally` using a `callCount` variable to determine when to return a newer event ("cipher-new"). The test author assumed `hashtagPreferences.load()` triggers a single fetch call. However, `load()` triggers concurrent fetches for multiple kinds (30015 and 30005), causing `callCount` to increment twice during the *first* load operation. This caused the mock to return the "future" event prematurely.
|
||||
|
||||
### 2. Resolution
|
||||
- **Fix:** Modified the mock implementation to condition the return of the new event on `params.since > 0` (which correctly distinguishes the incremental update fetch from the initial load) rather than `callCount`.
|
||||
- **Verification:** Updated test assertions to correctly verify that incremental fetching occurs, handling the multi-call nature of the implementation. Ran `node tests/hashtag-preferences.test.mjs` and confirmed it passes consistently.
|
||||
|
||||
## Artifacts
|
||||
- Created `artifacts/ci-flakes-20260224.md` with failure details.
|
||||
@@ -0,0 +1,18 @@
|
||||
# Agent Execution: todo-triage-agent
|
||||
|
||||
**Cadence:** daily
|
||||
**Date:** 2026-02-24
|
||||
|
||||
## Summary
|
||||
Executed `todo-triage-agent`.
|
||||
Generated inventory in `artifacts/todos.txt`.
|
||||
|
||||
## Analysis
|
||||
- Scanned for `TODO|FIXME|XXX` markers (excluding `docs/` and `vendor/`).
|
||||
- Found 0 actionable items.
|
||||
- One known false positive in `js/ui/profileModalContract.js`.
|
||||
- No trivial fixes applied.
|
||||
- No issues created.
|
||||
|
||||
## Output
|
||||
- `artifacts/todos.txt` (Inventory)
|
||||
@@ -0,0 +1,22 @@
|
||||
# Scheduler Update Agent - Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** scheduler-update-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
|
||||
The `scheduler-update-agent` executed successfully. Both daily and weekly rosters were found to be perfectly synchronized with the prompt files on disk. No changes were required.
|
||||
|
||||
## Details
|
||||
|
||||
- **Daily Prompts:** 21 files found.
|
||||
- **Daily Roster:** 21 entries.
|
||||
- **Weekly Prompts:** 16 files found.
|
||||
- **Weekly Roster:** 16 entries.
|
||||
|
||||
## Actions Taken
|
||||
|
||||
- Verified synchronization of `daily-scheduler.md` with `docs/agents/prompts/daily/`.
|
||||
- Verified synchronization of `weekly-scheduler.md` with `docs/agents/prompts/weekly/`.
|
||||
- Confirmed no updates were needed.
|
||||
@@ -0,0 +1,5 @@
|
||||
# 2026-02-24_style-agent_completed
|
||||
|
||||
## Summary
|
||||
Ran `npm run format` and `npx stylelint --fix`.
|
||||
Code style is consistent. No changes were necessary.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Test Audit Agent: Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** test-audit-agent
|
||||
|
||||
## Summary
|
||||
The test audit agent successfully executed the daily test audit workflow.
|
||||
|
||||
### Artifacts Generated
|
||||
- `artifacts/test-audit-report-2026-02-24.md`: Detailed report on test execution, flakiness, and static analysis.
|
||||
- `test_logs/TEST_LOG_2026-02-24.md`: Summary of test execution commands and output snippet.
|
||||
- `test-audit/flakiness-matrix.json`: Results of flakiness detection run.
|
||||
- `test-audit/suspicious-tests.json`: Results of static analysis.
|
||||
|
||||
### Key Findings
|
||||
- **Flakiness Detected:** Unit tests passed initially (~70s) but timed out/failed during subsequent iteration (340s).
|
||||
- **Anti-Patterns:** Identified numerous tests using `setTimeout`, `console.log`, and missing assertions.
|
||||
- **Coverage:** Coverage metrics unavailable (requires tooling update).
|
||||
|
||||
### Next Steps
|
||||
- Investigate flakiness in `tests/minimal-webtorrent.test.mjs` and other network/time-dependent tests.
|
||||
- Address zero-assertion tests listed in the report.
|
||||
@@ -0,0 +1,22 @@
|
||||
# TODO Triage Agent - Completed
|
||||
|
||||
**Agent:** `todo-triage-agent`
|
||||
**Date:** 2026-02-25
|
||||
**Status:** Success
|
||||
|
||||
## Summary
|
||||
Scanned the codebase for `TODO`, `FIXME`, and `XXX` markers. Found 0 actionable items in source code (`js/`, `tests/`, `*.html`).
|
||||
|
||||
## Actions Taken
|
||||
1. **Preflight:** Checked `AGENTS.md` and `CLAUDE.md`.
|
||||
2. **Scan:** Ran `grep -rnEI "TODO|FIXME|XXX" js tests *.html | grep -v "profileModalContract.js"`.
|
||||
3. **Analysis:** No actionable items found.
|
||||
4. **Reporting:** Created `issues/todo-triage-report-2026-02-25.md`.
|
||||
|
||||
## Findings
|
||||
- `js/ui/profileModalContract.js`: Contains `npubXXXX…XXXX` string (known false positive).
|
||||
- No other actionable items in source files.
|
||||
|
||||
## Artifacts
|
||||
- `artifacts/todos.txt`
|
||||
- `issues/todo-triage-report-2026-02-25.md`
|
||||
@@ -0,0 +1,24 @@
|
||||
Audit Report — 2026-02-25 (unstable)
|
||||
|
||||
**Summary**
|
||||
* Date: 2026-02-25
|
||||
* Node: v22.22.0 / NPM: 11.7.0
|
||||
|
||||
**Metrics**
|
||||
* Grandfathered oversized files: 43 files (total excess lines: 45288)
|
||||
* New oversized files: 0 files (total excess lines: 0)
|
||||
* Total innerHTML assignments: 37
|
||||
* Lint failures: 0 (files: [])
|
||||
|
||||
**Delta vs previous (2026-02-24)**
|
||||
* Grandfathered: +0 files, +0 excess lines
|
||||
* innerHTML: +0 total assignments
|
||||
* lint: +0 failures
|
||||
|
||||
**High-priority items**
|
||||
|
||||
**Artifacts**
|
||||
* file-size-report.json
|
||||
* innerhtml-report.json
|
||||
* lint-report.json
|
||||
* raw logs
|
||||
@@ -0,0 +1,26 @@
|
||||
# Daily Agent Task: todo-triage-agent
|
||||
|
||||
## Task Summary
|
||||
**Date:** 2026-02-25
|
||||
**Agent:** todo-triage-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Actions Taken
|
||||
|
||||
1. **Claimed Lock**: Acquired Nostr lock for `todo-triage-agent`.
|
||||
2. **Generated Inventory**: Scanned repository for `TODO`, `FIXME`, and `XXX` markers.
|
||||
* Result: `artifacts/todos.txt` (2.2MB).
|
||||
* Analysis: The scan found numerous hits in `node_modules` (excluded in analysis but present in raw scan due to `find ... xargs grep` behavior in exploration, but final scan used proper exclusions). A targeted search of `js/` and `tests/` directories revealed **zero** inline TODOs in source code (excluding minified files and known false positives like `profileModalContract.js`).
|
||||
3. **Triaged Stale Issue**:
|
||||
* Identified `issues/todo-hashtag-preferences-unit-test.md` which tracked a "flaky unit test" with a commented-out section.
|
||||
* **Verification**: Inspected `tests/hashtag-preferences.test.mjs` (specifically line ~303). Confirmed that the code referenced (`hashtagPreferences.load(pubkey, { allowPermissionPrompt: true })`) is **active and uncommented**, and the `// TODO` comment is absent.
|
||||
* **Conclusion**: The issue is stale because the fix (uncommenting the code) was already applied in a previous commit, but the issue file was not removed.
|
||||
* **Action**: Deleted `issues/todo-hashtag-preferences-unit-test.md` to keep the issue tracker accurate.
|
||||
|
||||
## Findings
|
||||
- The codebase is remarkably clean of inline TODOs in `js/` and `tests/`.
|
||||
- `issues/` directory is being used to track larger tasks, but synchronization with code state needs monitoring.
|
||||
|
||||
## Next Steps
|
||||
- Continue daily scans to catch new TODOs.
|
||||
- Monitor `tests/hashtag-preferences.test.mjs` for flakiness (as per the deleted issue's original intent, though the specific TODO is gone).
|
||||
@@ -0,0 +1,18 @@
|
||||
# Smoke Agent Task Completion
|
||||
|
||||
**Date:** 2026-02-23
|
||||
**Agent:** smoke-agent
|
||||
**Status:** Success
|
||||
|
||||
## Summary
|
||||
Executed the smoke test harness and verified critical application flows (login, relay connection, publishing, DM decryption).
|
||||
|
||||
## Actions Taken
|
||||
1. Refactored `scripts/agent/smoke-test.mjs` to support CLI arguments (`--relays`, `--serve`, `--out`, etc.).
|
||||
2. Created `docs/smoke-test.md` with usage instructions and CI examples.
|
||||
3. Verified the smoke test by running it locally with success.
|
||||
4. Generated artifacts in `artifacts/smoke-verify/`.
|
||||
|
||||
## Artifacts
|
||||
- `docs/smoke-test.md`
|
||||
- `scripts/agent/smoke-test.mjs` (updated)
|
||||
@@ -0,0 +1,16 @@
|
||||
# Telemetry Agent Completed
|
||||
|
||||
**Date:** 2026-02-24
|
||||
**Agent:** telemetry-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
Executed `scripts/agent/telemetry-aggregator.mjs` with `ENABLE_TELEMETRY=true`.
|
||||
|
||||
## Outputs
|
||||
- `ai/reports/telemetry-20260224.md`
|
||||
- `artifacts/error-aggregates.json`
|
||||
|
||||
## Findings
|
||||
- Aggregated 1 unique issue (Cryptographic Bottleneck in Load Test).
|
||||
- Sanitized PII and secrets as per policy.
|
||||
@@ -0,0 +1,9 @@
|
||||
# Weekly Synthesis Agent Completed
|
||||
|
||||
Generated weekly synthesis report at `ai/reports/weekly-20260225.md`.
|
||||
|
||||
## Output
|
||||
- `ai/reports/weekly-20260225.md`
|
||||
|
||||
## Summary
|
||||
Weekly synthesis report generated based on git history and GitHub API data from 2026-02-18 to 2026-02-25.
|
||||
@@ -0,0 +1,18 @@
|
||||
# Test Coverage Agent: Completed
|
||||
|
||||
**Date:** 2026-02-25
|
||||
**Agent:** test-coverage-agent
|
||||
**Status:** Completed
|
||||
|
||||
## Summary
|
||||
- Identified `js/nostr/utils.js` as a module with 0% unit test coverage.
|
||||
- Implemented `tests/nostr/utils.test.mjs` to cover `getActiveKey` logic (100% coverage for the module).
|
||||
- Verified new tests pass locally.
|
||||
- Verified full test suite passes.
|
||||
|
||||
## Artifacts
|
||||
- `tests/nostr/utils.test.mjs` (new file)
|
||||
- `artifacts/tests-20260225/unit.log` (test run log)
|
||||
|
||||
## Next Steps
|
||||
- Continue identifying other low-coverage modules in `js/nostr/` such as `ConnectionManager.js` (requires more complex mocking).
|
||||
@@ -0,0 +1,77 @@
|
||||
# Smoke Test Harness
|
||||
|
||||
The `scripts/agent/smoke-test.mjs` script verifies critical application flows (login, relay connection, publishing, DM decryption) using a headless browser (Playwright) and a Node.js Nostr client.
|
||||
|
||||
It is designed to be lightweight, fast, and suitable for both local development and CI/CD pipelines.
|
||||
|
||||
## Features
|
||||
|
||||
- **Ephemeral Keys**: Generates fresh keys for every run; never touches your private keys.
|
||||
- **Headless Browser**: Uses Playwright to verify UI rendering and login state.
|
||||
- **End-to-End Verification**: Publishes events via Node.js client and verifies them in the browser, and vice-versa.
|
||||
- **Artifact Generation**: produces logs, JSON summaries, and screenshots on failure (or success).
|
||||
- **Flexible Configuration**: Supports local relays, external relays, and custom timeouts.
|
||||
|
||||
## Usage
|
||||
|
||||
### Local Development (Default)
|
||||
|
||||
Runs with a local ephemeral relay (port 8899) and starts the app with `npx serve` (port 8000).
|
||||
|
||||
```bash
|
||||
npm run test:smoke
|
||||
# OR
|
||||
node scripts/agent/smoke-test.mjs
|
||||
```
|
||||
|
||||
### Custom Output Directory
|
||||
|
||||
```bash
|
||||
node scripts/agent/smoke-test.mjs --out=artifacts/my-run
|
||||
```
|
||||
|
||||
### External Relays
|
||||
|
||||
To test against real relays (e.g., in a staging environment):
|
||||
|
||||
```bash
|
||||
node scripts/agent/smoke-test.mjs --relays="wss://relay.example.com,wss://relay2.example.com" --serve=none --confirm-public
|
||||
```
|
||||
|
||||
**Note**: When using public/external relays, you must provide `--confirm-public` to acknowledge that test data will be published. The test uses a unique `d` tag and ephemeral keys to minimize pollution, but always use test-specific relays when possible.
|
||||
|
||||
### CLI Options
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
|--------|------|---------|-------------|
|
||||
| `--relays` | string | `ws://localhost:8899` | Comma-separated list of relay URLs. |
|
||||
| `--serve` | string | `npx` | How to serve the app: `npx`, `python`, or `none`. |
|
||||
| `--out` | string | `artifacts` | Directory to save logs, screenshots, and summaries. |
|
||||
| `--timeout` | number | `30` | Timeout in seconds for UI and network operations. |
|
||||
| `--burst` | number | `1` | (Unused currently) Number of events to publish in burst. |
|
||||
| `--dry-run` | boolean | `false` | If true, skips publishing and browser interactions. |
|
||||
| `--confirm-public` | boolean | `false` | Required if non-localhost relays are used. |
|
||||
|
||||
## Artifacts
|
||||
|
||||
After a run, check the output directory (default `artifacts/`):
|
||||
|
||||
- `smoke-YYYYMMDD.log`: Full execution log.
|
||||
- `smoke-summary-YYYYMMDD.json`: Structured summary (status, event IDs, pubkeys).
|
||||
- `smoke-test-ui.png`: Screenshot of the feed (success state).
|
||||
- `smoke-fail-*.png`: Screenshots captured upon failure (login or feed).
|
||||
|
||||
## CI Integration
|
||||
|
||||
To run this in GitHub Actions or other CI:
|
||||
|
||||
```yaml
|
||||
- name: Install Playwright Browsers
|
||||
run: npx playwright install --with-deps chromium
|
||||
|
||||
- name: Build App
|
||||
run: npm run build
|
||||
|
||||
- name: Run Smoke Test
|
||||
run: node scripts/agent/smoke-test.mjs --serve=npx --timeout=60
|
||||
```
|
||||
Reference in new issue
Block a user