Skip to content

v0.28.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 16:59
· 92 commits to main since this release
64295bd

What's Changed

  • ci: give the Windows relay suite timeout headroom and one retry by @jo-duchan in #942
  • feat(dashboard): skeletons in place of Loading… while data loads by @jo-duchan in #943
  • docs: reviewable automation direction in VISION and ROADMAP by @jo-duchan in #944
  • refactor(dashboard): draw the device in one place, apart from its controls by @jo-duchan in #945
  • feat(relay): let a teammate watch, read-only, a session an AI client drives by @jo-duchan in #947
  • feat(dashboard): watch the device your coding agent drives, through its link by @jo-duchan in #948
  • feat(relay): record flow runs, and delete a build's dependents on one path by @jo-duchan in #949
  • feat(cli): record each flow run on the relay by @jo-duchan in #950
  • feat(dashboard): a Flow Runs page for flow run records by @jo-duchan in #951
  • feat(flow-runner): keep the screen each passed flow ended on by @jo-duchan in #952
  • docs(android-agent): gRPC is the primary backend; scrcpy is the fallback by @jo-duchan in #953
  • feat(relay): store a flow's video as its runner uploads it by @jo-duchan in #954
  • feat(cli): send each flow's video beside the run record by @jo-duchan in #955
  • feat(mcp-server): read the token from a credentials file, and take a rotated one without a restart by @jo-duchan in #956
  • feat(dashboard): play each flow's video on the run page, and set how long videos are kept by @jo-duchan in #957
  • feat(cli): store and check the MCP token with tapflow token set / status by @jo-duchan in #958
  • docs(readme): play the demo video for signed-in visitors by @jo-duchan in #959
  • feat(dashboard): mark an environment-only failure apart from an app failure in Flow Runs by @jo-duchan in #960
  • feat(mcp-server): read run records with list_runs and get_run by @jo-duchan in #961
  • chore(deps): Bump the npm-minor-patch group with 10 updates by @dependabot[bot] in #934
  • fix(cli): find Xcode installed outside /Applications/Xcode.app by @edcs in #962
  • fix(cli): say Xcode also comes from Apple's developer site, not only the App Store by @edcs in #965
  • feat: a session holder that does not read the stream asks the relay for none by @jo-duchan in #963
  • fix: ship LICENSE in the tapflow package and credit the emulator proto in NOTICE by @jo-duchan in #967
  • feat: a failed tapOn suggests the line to use instead, from the screen it failed on by @jo-duchan in #968
  • feat: the AI session watch page shows what the agent does, live by @jo-duchan in #969
  • fix(ios): reliable flows on real apps — clipped tree frames, warm tree runner, launchApp waits for a screen by @jo-duchan in #970
  • fix(ios): one UI-tree runner per simulator, on a port the runner picks by @jo-duchan in #972
  • fix: launchApp waits for the screen to hold still, and Android launches wait for the first frame by @jo-duchan in #973
  • fix(android): read the UI tree of a screen that never goes idle by @jo-duchan in #975
  • docs(contributing): AI-assisted contributions verify their own changes by @jo-duchan in #976
  • docs(dashboard): DESIGN.md as the entry point, one spec per component, held to cva by @jo-duchan in #977
  • docs(dashboard): Label spec — one hint axis, no disabled state to draw by @jo-duchan in #978
  • docs(dashboard): Card spec — two levels in use, no states, shadows unchanged in dark by @jo-duchan in #980
  • fix(ios-agent): stop the previous audio capture when a running device is booted again by @orshih6 in #974
  • docs(dashboard): Input spec, and read-only fields use the shared text size by @jo-duchan in #981
  • docs(dashboard): Select spec — four heights by context, no placeholder, focus moves into the list by @jo-duchan in #982
  • docs(dashboard): Dialog spec — four action layouts, focus return without a trigger by @jo-duchan in #983
  • feat(dashboard): install tailwindcss-animate so overlays animate by @jo-duchan in #984
  • fix(dashboard): the token dialog's scope line is a div, since a p cannot hold the badge by @jo-duchan in #985
  • fix(dashboard): apply the theme before first paint, and patch next-themes' client script away by @jo-duchan in #986
  • chore(dashboard): drop overlay classes that never applied by @jo-duchan in #988
  • fix(dashboard): long pages no longer scroll the whole window by @jo-duchan in #989
  • docs(dashboard): Separator component spec by @jo-duchan in #990
  • docs(dashboard): Badge component spec by @jo-duchan in #991
  • fix(dashboard): platform badges say iOS, not Ios by @jo-duchan in #992
  • docs(dashboard): AlertDialog component spec by @jo-duchan in #993
  • docs(dashboard): Tooltip component spec by @jo-duchan in #994
  • docs(dashboard): TechLabel component spec by @jo-duchan in #995
  • docs(dashboard): TabsTrigger component spec by @jo-duchan in #996
  • fix(relay): refuse a duplicate app with 409 — one app per bundle ID by @jo-duchan in #997
  • ci(release): docs-production follows each stable release, so tapflow.dev matches npm by @jo-duchan in #998
  • fix(dashboard): drop the Runs button from App Center's build rows by @jo-duchan in #999
  • fix(relay): refuse an upload part with no filename with 400, not 500 by @jo-duchan in #1000
  • test(dashboard): raise the first-load budget to 191,000 for Dependabot's 32-update group by @jo-duchan in #1002
  • chore(deps): bump the npm-minor-patch group across 1 directory with 32 updates by @dependabot[bot] in #1001
  • feat(dashboard): list Flow Runs in the sidebar once a run is recorded by @jo-duchan in #1003
  • chore: release v0.28.0 — watch what a coding agent tests, and read why a flow failed by @jo-duchan in #1004

New Contributors

Full Changelog: v0.27.1...v0.28.0