Roadmap
Public reliability plan for gform. Modest, grounded, and separate from what already ships.
Shipped behavior: limitations · file uploads · artifacts
Issue-ready briefs for maintainers live in the repository under maintainer/planning/ (not published on this site).
This page describes planned work. Nothing here is a promise that Google’s UI will always cooperate.
Phase 1 — Reproducible pressure harness
Goal: Make concurrency and picker failures repeatable before changing implementation.
Planned:
- Controlled test forms owned by maintainers
- Fixtures: anonymous, authenticated, file-upload, mixed-question
- Concurrency from 1 through the documented maximum (16)
local/gdrive/remotecontent sources- Linux Chrome, Playwright Chromium, and supported WSL paths
- Artifacts for every failing worker
- Classify failures by stage and reason
- Capture success rate, duration, retries, throttling indicators
- Never target third-party forms
Acceptance direction: documented pressure-test command or maintainer script; reproducible artifact bundles; stable reason-code classification; no unbounded public-form load testing.
Phase 2 — Harden file-picker and upload execution
Goal: Reduce flaky failures caused by Google’s file UI.
Investigate and, where safe, implement:
- Stronger readiness checks before opening the picker
- Scoped detection of newly created file inputs
- Per-worker picker/input isolation
- Stale element detection
- Bounded retries with jitter
- Verify the selected file is attached before proceeding
- Distinguish retryable picker failures from headed-assist requirements
- Cleanup of picker dialogs and stale DOM state
- Explicit timeout stages
- Richer screenshots and trace annotations
- Guard against workers attaching to the wrong input
- Content-cache concurrency safety
No uncontrolled retries. Every retry must be bounded, observable, and represented in artifacts.
Phase 3 — Full supported concurrency consistently green
Goal: Demonstrate reliable execution at the documented worker maximum under controlled test conditions.
Focus:
- Authenticated worker isolation and browser context isolation
- Auth storage safety
- Google Drive source cache safety
- Race detection and worker lifecycle cleanup
- Abort propagation and continue-on-error
- Batch rollups and accurate child statuses
- Deterministic pool / variant allocation
- No cross-worker file or answer leakage
- No orphaned browsers after failure or cancellation
“Green” means (example matrix): repeated controlled runs; zero internal race-condition failures; complete child artifacts; workers cleaned up; external throttling reported separately from internal defects.
This does not mean all external Google UI runs always succeed.
Phase 4 — Smarter batch terminal output
Goal: Useful live visibility without flooding the terminal with identical messages.
Two layers (required):
- Human live view — concise, grouped, progress-oriented; errors immediate; repeated notices summarized
- Complete diagnostic record — full event stream in artifacts / debug; timestamps; worker identity; ordering preserved
Design constraints:
- Do not discard diagnostics to silence the TTY
- Do not change JSON output semantics via aggregation
- Do not merge different errors just because text looks similar
- Prefer structured event keys over fragile string-only dedupe
- Support
--debugexpansion and--no-liveprint-and-go - Flush aggregated messages before exit; avoid redraw corruption
Illustrative (not a committed format — logger architecture decides):
[notice] browser · headless · Playwright Chromium ×5 workers
[notice] content · drive cache hit · report.pptx ×5
[progress] <form> · 12/20 · ✓10 ✗1 ⊘1 · 5 workersPhase 5 — Reliability contracts and regression gates
Goal: Prevent concurrency, picker, logging, and artifact regressions.
Planned:
- Unit tests for aggregation and reason codes
- Integration tests for worker isolation and cancellation
- Retry-bound and artifact-completeness tests
- Snapshot tests for concise terminal output where appropriate
- JSON output contract tests
- Pressure tests (manual or controlled CI) on owned forms only
- Documentation and broken-link checks
- Command-example validation where practical
Normal CI stays separate from tests that need live Google Forms or real sessions.
Issue-ready themes
Tracked as planning briefs in the repo (maintainer/planning/) — create GitHub issues when ready:
- Concurrent Google file-picker isolation
- Bounded retry strategy for retryable upload UI failures
- Controlled full-concurrency pressure harness
- Batch log aggregation and duplicate suppression
- Worker cleanup and cancellation reliability
- Artifact completeness under partial batch failure
- Concurrency-safe Google Drive content cache
- Public reliability and limitation documentation (this page + limitations)