diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-11 17:05:03 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-11 17:05:03 -0500 |
| commit | da93ffd91dea133963ffceaff24d41bc76b8ff93 (patch) | |
| tree | 6aac57d5eb712463a852c74e75150331be2298b1 /upstreams/playwright-py/baseline/examples/console_logging.py | |
| parent | 61e37f55c044ff7bbd41cb142ce9dfe232934216 (diff) | |
| download | rulesets-da93ffd91dea133963ffceaff24d41bc76b8ff93.tar.gz rulesets-da93ffd91dea133963ffceaff24d41bc76b8ff93.zip | |
feat(commands): /update-skills syncs forks with upstream via 3-way merge
Upstream releases fixes worth pulling into the forks (arch-decide, playwright-js, playwright-py) without losing our local modifications. Each fork now has a manifest at upstreams/<name>/ plus a committed baseline snapshot that is the 3-way merge base. scripts/update-skills.py classifies each file's drift and merges to stdout. The command owns per-file confirmation, per-hunk conflict prompts, and every target write.
I centralized manifests under upstreams/ instead of per-skill dotfile dirs because arch-decide is now two flat files in commands/ and can't carry one. A "files" map in its manifest handles the upstream rename of SKILL.md to arch-decide.md.
I seeded baselines from today's upstream HEADs, so pre-existing local modifications classify as local-only from here on. git merge-file signals hard errors as exit 255, which subprocess reports as positive. The guard treats anything 128 and up as an error so a binary-file failure isn't misread as a conflict.
Diffstat (limited to 'upstreams/playwright-py/baseline/examples/console_logging.py')
| -rw-r--r-- | upstreams/playwright-py/baseline/examples/console_logging.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/upstreams/playwright-py/baseline/examples/console_logging.py b/upstreams/playwright-py/baseline/examples/console_logging.py new file mode 100644 index 0000000..9329b5e --- /dev/null +++ b/upstreams/playwright-py/baseline/examples/console_logging.py @@ -0,0 +1,35 @@ +from playwright.sync_api import sync_playwright + +# Example: Capturing console logs during browser automation + +url = 'http://localhost:5173' # Replace with your URL + +console_logs = [] + +with sync_playwright() as p: + browser = p.chromium.launch(headless=True) + page = browser.new_page(viewport={'width': 1920, 'height': 1080}) + + # Set up console log capture + def handle_console_message(msg): + console_logs.append(f"[{msg.type}] {msg.text}") + print(f"Console: [{msg.type}] {msg.text}") + + page.on("console", handle_console_message) + + # Navigate to page + page.goto(url) + page.wait_for_load_state('networkidle') + + # Interact with the page (triggers console logs) + page.click('text=Dashboard') + page.wait_for_timeout(1000) + + browser.close() + +# Save console logs to file +with open('/mnt/user-data/outputs/console.log', 'w') as f: + f.write('\n'.join(console_logs)) + +print(f"\nCaptured {len(console_logs)} console messages") +print(f"Logs saved to: /mnt/user-data/outputs/console.log")
\ No newline at end of file |
