Skip to content

docs: use runner-owned text-entry recovery hints - #3856

Merged
thymikee merged 2 commits into
mainfrom
t3/triage-followup-fixes
Oct 21, 2026
Merged

thymikee merged 2 commits into
mainfrom
t3/triage-followup-fixes

Conversation

@thymikee

@thymikee thymikee commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Summary

This resolves #3360 by removing the fixed recovery value from help and docs. After inspecting the field, users follow the delay supplied by the runner error hint. This keeps the recovery value owned by Swift. Generic typing examples use an illustrative 100 ms delay. Closes #3360.

Four files. Scope also includes the requested worker rule, “Never push tags.” A duplicate publication instruction was removed to keep agent guidance within its byte budget. No additional scope.

Validation

Head: 9d982183e3d18aae84bd914bb01f24c2b59d479c; base: f8c60ca188f62e110bdc1d3e6225b134960886c0.

  • pnpm format and git diff --check passed.
  • Independent Sol reviews of the original range and incremental budget fix found no issues.
  • pnpm check:affected --run --head 9d982183e3d18aae84bd914bb01f24c2b59d479c: passed, exactCommit: true, receipt run-5Sg01x; 11 checks passed, 7 skipped by ownership. Related tests: 733 passed; command-doc tests: 12 passed; guidance tests: 5 passed. Full receipt and review evidence.
  • Documentation and help prose only; runtime tests and device evidence do not apply to the changed behavior. All 20 GitHub checks passed at this head, including Coverage and Integration Tests. No unresolved review threads or conflicts.

@thymikee

Copy link
Copy Markdown
Member Author

Validation evidence for head 9d982183e3d18aae84bd914bb01f24c2b59d479c against base f8c60ca188f62e110bdc1d3e6225b134960886c0.

pnpm check:affected --run --head 9d982183e3d18aae84bd914bb01f24c2b59d479c passed: status: passed, exitCode: 0, exactCommit: true, checkoutChanged: false, receipt run-5Sg01x.

  • All 11 runnable checks passed: format, lint, typecheck, layering, Fallow, build, related tests, command docs, documentation links, documentation prose, and agent guidance.
  • Related tests: 733 passed, 0 failed. Command-doc tests: 12 passed, 0 failed. Agent-guidance tests: 5 passed, 0 failed.
  • Seven checks were skipped by the runner because GitHub or manual workflows own them. Skips are recorded below and are not local passes. Required CI, including Integration Tests and Coverage when selected, remains a GitHub obligation.
  • pnpm format and git diff --check passed. Rebuilt node bin/agent-device.mjs help debugging shows: “After TEXT_ENTRY_MISMATCH, inspect the field and retry fill only if it needs correction, using the --delay-ms value from the error hint.”
  • No runtime behavior changed; no prose tests were added and live device verification does not apply to this documentation/help change.

Review evidence: independent Sol review of f8c60ca188..5066a7f3bc reported NO FINDINGS. Independent incremental Sol review of 5066a7f3bc..9d982183e3, including interactions with the full range, also reported NO FINDINGS. The incremental reviewer confirmed the remaining receipt requirement and Published definition preserve validation reporting.

Earlier receipt run-py5L7Y belongs to 5066a7f3bc and failed only the guidance byte budget (40,009 > 40,000). Commit 9d982183e3 removed a duplicate publication instruction while preserving the explicit “Never push tags.” rule. The new passed receipt replaces that failure as evidence for the current head.

Complete exact-head validation receipt
{
  "version": 1,
  "cwd": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423",
  "startedAt": "2026-10-20T18:15:53.651Z",
  "status": "passed",
  "exitCode": 0,
  "refs": {
    "base": "origin/main",
    "head": "9d982183e3d18aae84bd914bb01f24c2b59d479c",
    "resolvedBase": "f8c60ca188f62e110bdc1d3e6225b134960886c0",
    "resolvedHead": "9d982183e3d18aae84bd914bb01f24c2b59d479c",
    "mergeBase": "f8c60ca188f62e110bdc1d3e6225b134960886c0"
  },
  "checkoutChanged": false,
  "exactCommit": true,
  "results": [
    {
      "id": "format",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "format:check"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/0.log",
      "exitCode": 0,
      "durationMs": 1329,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "lint",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "lint"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/1.log",
      "exitCode": 0,
      "durationMs": 2133,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "typecheck",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "typecheck"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/2.log",
      "exitCode": 0,
      "durationMs": 790,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "layering",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:layering"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/3.log",
      "exitCode": 0,
      "durationMs": 25745,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "fallow",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:fallow",
        "--base",
        "f8c60ca188f62e110bdc1d3e6225b134960886c0"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/4.log",
      "exitCode": 0,
      "durationMs": 8444,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "build",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "build"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/5.log",
      "exitCode": 0,
      "durationMs": 5476,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "vitest-related",
      "status": "passed",
      "command": [
        "pnpm",
        "exec",
        "vitest",
        "related",
        "--run",
        "--passWithNoTests",
        "docs/agents/pull-requests.md",
        "src/commands/schema/cli-help-workflows.ts",
        "website/docs/docs/commands.md",
        "website/docs/docs/debugging-profiling.md"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/6.log",
      "exitCode": 0,
      "durationMs": 17935,
      "testReportPaths": [
        "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/6.tests.57250.json"
      ],
      "tests": [
        {
          "passed": 733,
          "failed": 0,
          "skipped": 0,
          "pending": 0,
          "failedModules": 0,
          "unhandledErrors": 0,
          "failures": [],
          "omittedFailures": 0
        }
      ]
    },
    {
      "id": "web-smoke",
      "status": "skipped",
      "reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Integration Tests, Lint, Typecheck & Package)"
    },
    {
      "id": "command-docs",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:command-docs"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/8.log",
      "exitCode": 0,
      "durationMs": 3676,
      "testReportPaths": [
        "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/8.tests.60218.json"
      ],
      "tests": [
        {
          "passed": 12,
          "failed": 0,
          "skipped": 0,
          "pending": 0,
          "failedModules": 0,
          "unhandledErrors": 0,
          "failures": [],
          "omittedFailures": 0
        }
      ]
    },
    {
      "id": "docs-links",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:doc-links"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/9.log",
      "exitCode": 0,
      "durationMs": 3256,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "docs-prose",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:doc-prose"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/10.log",
      "exitCode": 0,
      "durationMs": 1551,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "agent-guidance",
      "status": "passed",
      "command": [
        "pnpm",
        "run",
        "check:agent-guidance"
      ],
      "logPath": "/Users/michal/.t3/worktrees/agent-device/t3-c5847423/.tmp/validation/run-5Sg01x/11.log",
      "exitCode": 0,
      "durationMs": 1083,
      "testReportPaths": [],
      "tests": []
    },
    {
      "id": "replay-ios",
      "status": "skipped",
      "reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
    },
    {
      "id": "replay-ios-device",
      "status": "skipped",
      "reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
    },
    {
      "id": "replay-macos",
      "status": "skipped",
      "reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
    },
    {
      "id": "replay-linux",
      "status": "skipped",
      "reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
    },
    {
      "id": "linux-command-evidence",
      "status": "skipped",
      "reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
    },
    {
      "id": "replay-android",
      "status": "skipped",
      "reason": "parked, workflow_dispatch only (Replay Manual / Android Full Emulator Suite)"
    }
  ],
  "initial": {
    "head": "9d982183e3d18aae84bd914bb01f24c2b59d479c",
    "status": "",
    "fingerprint": "5401120d2db0a3c8a0316ef9cb9762c3323733bac7b3d968f5d41670c155b885"
  },
  "changedFiles": [
    "docs/agents/pull-requests.md",
    "src/commands/schema/cli-help-workflows.ts",
    "website/docs/docs/commands.md",
    "website/docs/docs/debugging-profiling.md"
  ],
  "plan": {
    "failOpen": false,
    "checks": [
      "format",
      "lint",
      "typecheck",
      "layering",
      "fallow",
      "build",
      "vitest-related",
      "web-smoke",
      "command-docs",
      "docs-links",
      "docs-prose",
      "agent-guidance",
      "replay-ios",
      "replay-ios-device",
      "replay-macos",
      "replay-linux",
      "linux-command-evidence",
      "replay-android"
    ],
    "reasons": [
      {
        "check": "agent-guidance",
        "path": "docs/agents/pull-requests.md",
        "rule": "own:agent-guidance",
        "detail": "agent guidance is held to glossary, routing, and context-budget contracts"
      },
      {
        "check": "format",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "gate:format",
        "detail": "oxfmt covers src/ and test/"
      },
      {
        "check": "lint",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "gate:lint",
        "detail": "oxlint covers the source tree"
      },
      {
        "check": "typecheck",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "gate:typecheck",
        "detail": "tsc includes src/ and test/"
      },
      {
        "check": "fallow",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "gate:fallow",
        "detail": "fallow audits changed TypeScript for dead code"
      },
      {
        "check": "layering",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "gate:layering",
        "detail": "layering guard reads production src/ modules"
      },
      {
        "check": "build",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "src-prod",
        "detail": "production source is compiled by the build"
      },
      {
        "check": "vitest-related",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "vitest:related",
        "detail": "Vitest resolves affected tests through its static module graph"
      },
      {
        "check": "replay-ios",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "replay-ios-device",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "replay-macos",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "replay-android",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "replay-linux",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "linux-command-evidence",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "web-smoke",
        "path": "src/commands/schema/cli-help-workflows.ts",
        "rule": "own:device-lane:shared",
        "detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
      },
      {
        "check": "command-docs",
        "path": "website/docs/docs/commands.md",
        "rule": "own:command-docs",
        "detail": "the command reference is asserted against the CLI in both directions"
      },
      {
        "check": "docs-links",
        "path": "website/docs/docs/commands.md",
        "rule": "own:docs-links",
        "detail": "internal docs links must land on an existing page and heading"
      },
      {
        "check": "docs-prose",
        "path": "website/docs/docs/commands.md",
        "rule": "own:docs-prose",
        "detail": "user docs avoid filler, marketing, and time-relative words"
      },
      {
        "check": "docs-links",
        "path": "website/docs/docs/debugging-profiling.md",
        "rule": "own:docs-links",
        "detail": "internal docs links must land on an existing page and heading"
      },
      {
        "check": "docs-prose",
        "path": "website/docs/docs/debugging-profiling.md",
        "rule": "own:docs-prose",
        "detail": "user docs avoid filler, marketing, and time-relative words"
      }
    ],
    "failOpenReasons": [],
    "docsOnlyPaths": []
  },
  "final": {
    "head": "9d982183e3d18aae84bd914bb01f24c2b59d479c",
    "status": "",
    "fingerprint": "5401120d2db0a3c8a0316ef9cb9762c3323733bac7b3d968f5d41670c155b885"
  },
  "finishedAt": "2026-10-20T18:23:17.219Z"
}

@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-21 08:25 UTC

@github-actions

Copy link
Copy Markdown
Contributor

Size Report

Metric Base Current Diff
Installed (including dependencies) 5.48 MB 5.48 MB +27 B
Package (unpacked) 5.48 MB 5.48 MB +27 B
Package (download) 1.66 MB 1.66 MB +23 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 38.3 ms 39.2 ms +0.9 ms
CLI --help 77.2 ms 80.3 ms +3.1 ms

@thymikee

Copy link
Copy Markdown
Member Author

The PR is ready at 9d98218. The change is docs and help prose only, and all 20 checks pass. There are no conflicts. Nothing else needs to happen before merge.

Not blocking: the generic examples changed from --delay-ms 80 to 100 in commands.md and debugging-profiling.md, but cli-help.ts and quick-start.md still use 80, so either revert those edits or apply them everywhere; the "Never push tags" move and the removed "record that result" line in docs/agents/pull-requests.md do not relate to #3360, so they could go in their own PR or be named in the PR body; and no check stops a future edit from re-hardcoding the recovery value in cli-help-workflows.ts, so it would help to say in the PR body that this resolves #3360 by removal and close the issue. Take or leave any of these.

I did not run check:affected and relied on the author's receipt. I did not run the iOS runner to confirm the hint text at runtime.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Oct 20, 2026
@thymikee

Copy link
Copy Markdown
Member Author

Confirmed at 9d98218: all 20 checks passed. The body now explicitly says #3360 is resolved by removing the fixed recovery value, and already names the requested “Never push tags.” rule and duplicate guidance removal. Closes #3360 will close the issue on merge.

I kept the illustrative typing delays as they are; recovery guidance uses the runner error hint after field inspection. No source changes or extra checks were needed for these optional suggestions.

@thymikee
thymikee merged commit 71eae2a into main Oct 21, 2026
20 checks passed
@thymikee
thymikee deleted the t3/triage-followup-fixes branch October 21, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pin the recovery --delay-ms constant across the Swift hint and the TS help text

1 participant