Repository navigation
v0.1.0
0.0.2 could drive a browser. This one lets an agent keep what it worked out.
Save a sequence of steps as a named flow, give it parameters, and run the whole
thing in one call — including steps that type a credential the model is never
shown. The admin UI grew a panel for reading and editing them.
Added
-
Saved flows. Save a sequence of steps under a name and run the whole thing in one call with
run_flow— a twelve-step form becomes one call instead of twelve. SetFLOW_DATA_DIRto turn them on. -
Flows take parameters. Declare them and write
${name}in any argument of any step —url: ${site}/orders/${id}— so one flow serves every account and every environment. -
Type a secret you never see. Give
writeasecretnaming one instead oftext, and the server reads it and types it, in a flow step or a single call. It never becomes an argument string, so it cannot be assembled into one by mistake. -
A secrets catalogue. Point
SECRETS_DIRSat a directory per secret and a file per key — the shape Kubernetes already mounts — andlist_secretsshows an agent what it may use. A secret can be leashed to the sites it is allowed on. Values are never returned by anything. -
A shared
globalflow library every session can list and run, which only an operator can change. -
Kept files.
keep_filecopies a download out of the browser so it survives the browser being reaped, switched or ended, andsession_fileslists both kinds together. -
The admin UI reads and edits flows. Every session's flows beside its files: what a flow takes, what it does, and what any step or parameter holds. Edit the YAML, move a flow to or from
global, or delete it. -
CSS selectors. Every tool that acts on an element now takes
cssas well asxpath— pass one or the other. -
A flow run answers with the steps you marked
return: true— any number of them, and nothing else. -
screenshot(save=true)now tells you what the file was called, which is the namekeep_filetakes. -
The built-in skill teaches flows and secrets, and the wiki documents them with a page per endpoint.
Changed
-
HTTP errors now say whose fault they are:
400for a request you can fix,404for a browser that has ended,503for a Grid that is unreachable or full. They were all500. -
Clear downloadslists exactly what it will remove before it removes it. -
Error messages no longer carry the driver's stack trace.
Fixed
- A browser stays usable after logging in. Chrome's "Save password?" prompt took the keyboard and mouse for itself, so every click and keystroke after a login silently did nothing — while every call still reported success.
What's Changed
- fix: classify HTTP failures by what the caller should do by @kferrone in #8
- Flows: Chapter 1, and css selectors as the first slab by @kferrone in #9
- Flows E1: the store, and the naming rules around it by @kferrone in #10
- Flows E2: the document, its CRUD, and the plan for secrets by @kferrone in #11
- Flows E3: run a saved flow by @kferrone in #12
- Secrets E7: the catalogue, plus three leaks the last round missed by @kferrone in #13
- Secrets E9: a flow can type a secret it is never shown by @kferrone in #14
- Ground school (E6 + E10): the skill teaches flows and secrets by @kferrone in #15
- Kept files E4: a file that outlives the browser that made it by @kferrone in #16
- Flows: the shared global library is read-only to every agent by @kferrone in #17
- Admin UI: the page the Penpot file designed by @kferrone in #18
- Wiki: flows, secrets and kept files exist now by @kferrone in #19
- Flows: a parameter is text, a secret is structural by @kferrone in #20
- Admin UI: flows go live, counts stop lying, and a cleanup pass by @kferrone in #21
- Admin UI: a flow shows what it takes, and the image builds 4x faster by @kferrone in #22
- Flows: defaults are applied, a script reads as code, and an error names its escape by @kferrone in #23
Full Changelog: v0.0.2...v0.1.0
Container image
The image is what this repo ships, and what the cluster runs:
docker pull kubed/selenium-flow:v0.1.0Python package
Not on PyPI. The wheel and sdist are attached to this release:
pip install https://github.com/kubed-io/selenium-flow/releases/download/v0.1.0/kubed_selenium_flow-0.1.0-py3-none-any.whlOr straight from the tag:
pip install git+https://github.com/kubed-io/selenium-flow.git@v0.1.0