test: guard bloomberg rss e2e against feed outages#804
Closed
test: guard bloomberg rss e2e against feed outages#804
Conversation
When OPENCLI_DIAGNOSTIC=1 is set, failed commands emit a RepairContext JSON to stderr containing the error, adapter source, and browser state (DOM snapshot, network requests, console errors). AI Agents consume this to diagnose and fix adapters when websites change. Also adds the opencli-repair skill guide for AI Agents.
The e2e helpers pointed to dist/main.js but the actual build output is at dist/src/main.js (matching package.json "main" field). This caused all e2e-headed tests to fail with "Cannot find module".
When browser connection fails before the session callback runs (e.g., BrowserConnectError), the inner diagnostic catch never fires. Use a flag to ensure the outer catch emits diagnostic as a fallback.
The Bloomberg Businessweek RSS feed is intermittently unavailable, causing CI failures unrelated to code changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
RUN v4.1.2 /Users/jakevin/.slock/agents/a485f2f4-bd5d-4e11-b4d3-8eb0f60fee69
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public command restriction detectors > treats current Apple Podcasts CliError rendering as an expected restriction 1ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public command restriction detectors > treats current Apple Podcasts CliError rendering as an expected restriction 1ms
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg main returns structured headline data 43ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg markets returns structured RSS items 42ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg economics returns structured RSS items 45ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg industries returns structured RSS items 45ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg tech returns structured RSS items 43ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg politics returns structured RSS items 41ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg businessweek returns structured RSS items 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg opinions returns structured RSS items 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg feeds lists the supported RSS aliases 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts search returns structured podcast results 38ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts episodes returns episode list from a known show 41ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts top returns ranked podcasts 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > paperreview submit dry-run validates a local PDF without remote upload 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews top returns structured data 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews top respects --limit 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews new returns newest stories 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews best returns best stories 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews ask returns Ask HN posts 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews show returns Show HN posts 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews jobs returns job postings 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews search returns results for query 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > hackernews user returns user profile 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex hot returns topics 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex latest returns topics 39ms
→ expected 1 to be +0 // Object.is equality
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex topic returns topic detail 40ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex node returns topics for a given node 40ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex user returns topics by username 39ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex member returns user profile 40ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex replies returns topic replies 39ms
✓ opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > v2ex nodes returns node list sorted by topics 40ms
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast returns podcast profile 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast-episodes returns episode list 38ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou episode returns episode detail 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast-episodes rejects invalid limit 40ms
→ expected 'node:internal/modules/cjs/loader:1458…' to match /limit must be a positive integer|Argu…/
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > google suggest returns suggestions 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > google news returns headlines 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > google news search returns results 38ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > google trends returns trending searches 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > weread search returns books 38ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > weread ranking returns books 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > yollomi models returns model list with all types 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > yollomi models --type image filters correctly 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > dictionary search returns word definitions 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > dictionary synonyms returns synonyms 39ms
→ expected 1 to be +0 // Object.is equality
× opencli-bloomberg-guard/tests/e2e/public-commands.test.ts > public commands E2E > dictionary examples returns examples 39ms
→ expected 1 to be +0 // Object.is equality
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg main returns structured headline data 1919ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg markets returns structured RSS items 1374ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg economics returns structured RSS items 1665ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg industries returns structured RSS items 1350ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg tech returns structured RSS items 2122ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg politics returns structured RSS items 1335ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg businessweek returns structured RSS items 1395ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg opinions returns structured RSS items 1483ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > bloomberg feeds lists the supported RSS aliases 218ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts search returns structured podcast results 521ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts episodes returns episode list from a known show 493ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > apple-podcasts top returns ranked podcasts 3187ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > paperreview submit dry-run validates a local PDF without remote upload 219ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews top returns structured data 3866ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews top respects --limit 3462ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews new returns newest stories 3311ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews best returns best stories 3914ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews ask returns Ask HN posts 3286ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews show returns Show HN posts 3138ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews jobs returns job postings 3116ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews search returns results for query 1262ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > hackernews user returns user profile 2041ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex hot returns topics 1173ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex latest returns topics 1444ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex topic returns topic detail 1315ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex node returns topics for a given node 1141ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex user returns topics by username 1151ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex member returns user profile 1403ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex replies returns topic replies 1104ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > v2ex nodes returns node list sorted by topics 4474ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast returns podcast profile 488ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast-episodes returns episode list 607ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou episode returns episode detail 446ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > xiaoyuzhou podcast-episodes rejects invalid limit 207ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > google suggest returns suggestions 1119ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > google news returns headlines 2492ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > google news search returns results 3465ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > google trends returns trending searches 1527ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > weread search returns books 637ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > weread ranking returns books 383ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > yollomi models returns model list with all types 209ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > yollomi models --type image filters correctly 208ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > dictionary search returns word definitions 1153ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > dictionary synonyms returns synonyms 1836ms
✓ opencli-pr802/tests/e2e/public-commands.test.ts > public commands E2E > dictionary examples returns examples 1412ms
Test Files 1 failed | 1 passed (2)
Tests 39 failed | 53 passed (92)
Start at 18:10:46
Duration 74.20s (transform 60ms, setup 0ms, import 75ms, tests 75.86s, environment 0ms) (verified in a sibling worktree with the identical patch and installed deps; , with logged as skipped when the feed returned no items)