mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-07 05:56:41 +02:00
f3ebd0adbf
- CircularBuffer O(1) ring buffer for console/network/dialog (was O(n) array+shift) - Async buffer flush with Bun.write() (was appendFileSync) - Dialog auto-accept/dismiss with buffer + prompt text support - File upload command (upload <sel> <file...>) - Element state checks (is visible/hidden/enabled/disabled/checked/editable/focused) - Annotated screenshots with ref labels overlaid (-a flag) - Snapshot diffing against previous snapshot (-D flag) - Cursor-interactive element scan for non-ARIA clickables (-C flag) - Snapshot scoping depth limit (-d N flag) - Health check with page.evaluate + 2s timeout - Playwright error wrapping — actionable messages for AI agents - Fix useragent — context recreation preserves cookies/storage/URLs - wait --networkidle / --load / --domcontentloaded flags - console --errors filter (error + warning only) - cookie-import <json-file> with auto-fill domain from page URL - 166 integration tests (was ~63) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
849 B
HTML
26 lines
849 B
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test Page - Upload</title>
|
|
</head>
|
|
<body>
|
|
<h1>Upload Test</h1>
|
|
<input type="file" id="file-input" />
|
|
<input type="file" id="multi-input" multiple />
|
|
<p id="upload-result"></p>
|
|
<script>
|
|
document.getElementById('file-input').addEventListener('change', function(e) {
|
|
const files = e.target.files;
|
|
const names = Array.from(files).map(f => f.name).join(', ');
|
|
document.getElementById('upload-result').textContent = 'Uploaded: ' + names;
|
|
});
|
|
document.getElementById('multi-input').addEventListener('change', function(e) {
|
|
const files = e.target.files;
|
|
const names = Array.from(files).map(f => f.name).join(', ');
|
|
document.getElementById('upload-result').textContent = 'Multi: ' + names;
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|