|
222 | 222 | * [x] Emit precise HTTP timing and failure cause to the audit: record DNS/connect/TLS/write/read durations, status, and whether the context deadline fired vs server closed, and surface a concise user hint (“increase -http-timeout or reduce prompt/model latency”); DoD: new fields present in `.goagent/audit/*` with a passing test that asserts structure, performance unaffected, CI green, peer review done. |
223 | 223 | * [x] Runbook entry for `context deadline exceeded`: add a troubleshooting section that explains causes (slow model, proxy timeouts, too-small `-http-timeout`), mitigation steps (raise `-http-timeout`, tune proxy `proxy_read_timeout`, reduce prompt size), and an example of enabling retries; DoD: docs render on GitHub, copy-paste checks complete, CI docs gates green, peer review done. |
224 | 224 | * [x] Make relative paths in tools.json resolve against the directory containing that tools.json (not process CWD), preserving existing security checks that reject `..` escapes; update `internal/tools/manifest.go` to anchor, clean, and normalize paths cross-platform, adapt unit/integration tests to cover a manifest in a nested folder, adjust `make verify-manifest-paths` if needed, update `docs/reference/tools-manifest.md` to document the rule and absolute-path allowance for tests, and verify end-to-end that an agent run using a nested tools.json with relative `./tools/bin/*` works; DoD: unit/integration tests added and green on Linux/macOS/Windows, docs updated, CI and all quality gates green, one peer review completed. |
225 | | -* [ ] Makefile: preserve the logs directory during the clean target by removing any deletion of logs while keeping other artifact removals; DoD: from a clean clone create a sentinel file under logs, build artifacts, run clean, verify the sentinel remains and artifacts are gone, repo status is clean, all gates (lint/vet/format/tests/security/secret) green, one peer review completed. |
| 225 | +* [x] Makefile: preserve the logs directory during the clean target by removing any deletion of logs while keeping other artifact removals; DoD: from a clean clone create a sentinel file under logs, build artifacts, run clean, verify the sentinel remains and artifacts are gone, repo status is clean, all gates (lint/vet/format/tests/security/secret) green, one peer review completed. |
226 | 226 | - [x] [S01:clean-preserve-logs-verified] Verified `make clean` preserves `logs/` (sentinel survives) and removes artifacts (`tools/bin`, `bin`, `reports`, `.goagent`). |
227 | | - - [ ] [S02:clean-lint-fixes-tools] Resolve repo-wide `golangci-lint` findings (errcheck/gocyclo in `tools/cmd/*`) so quality gates are green for this item. |
| 227 | + - [x] [S02:clean-lint-fixes-tools] Resolve repo-wide `golangci-lint` findings (errcheck/gocyclo in `tools/cmd/*`) so quality gates are green for this item. |
228 | 228 | - [x] [S02d:errcheck-encode-and-visits] Check json.Encode errors in `fs_listdir`, `fs_read_lines`, `fs_stat`; handle `WalkDir`/`Info`/visit errors deterministically; update tests to check Unmarshal and cleanup removes. |
229 | 229 | - [x] [S02a:lint-errcheck-fs_read_write] Fix errcheck in `tools/cmd/fs_read_file` and `tools/cmd/fs_write_file`; tests green. |
230 | 230 | - [x] [S02b:lint-errcheck-batch-2] Address remaining errcheck in `get_time`, `fs_append_file`, and `fs_apply_patch` (encode/close and unsafe ignores); re-run lint. |
|
248 | 248 | - [ ] [S02b:l207-install-rg] Blocked locally: ripgrep (rg) not installed; `make check-tools-paths` fails in lint. Next step: install ripgrep and rerun `make lint`. |
249 | 249 | * [ ] (Contingency, removable later) Add a temporary CI lint job that runs with Go 1.23.x if the pinned linter still fails on 1.24.x; tests and build jobs stay on `go-version-file: go.mod`. Smallest change: duplicate the `lint` job as `lint-compat`, set `actions/setup-go@v5` `go-version: "1.23.x"`, run `make lint`, mark with a TODO comment referencing the issue to remove once ADR-0003 policy is fully green with 1.24.x. DoD: CI green with both lint jobs; issue description captures the intent to delete this path; peer review completed; rollback by deleting the `lint-compat` job. |
250 | 250 | * [ ] Add a one-shot verifier in CI that prints versions for traceability. Smallest change: in the `lint` job, after setup and install, run `go version && $(GOBIN)/golangci-lint version` and emit them as step outputs (name the step “toolchain-versions”); no functional changes. DoD: CI logs show versions on all OSes; no gate regressions; peer review completed. |
| 251 | +* [ ] CLI flags order independence: make argument parsing accept flags in any order without requiring `-prompt` to appear first while preserving precedence (flag > env > default) and error semantics; add table-driven unit tests that permute common orders (e.g., `-prompt` before/after other flags, mixed with `-debug`, `-tools`, `--help`) asserting identical parsed values, `--help` exits 0 regardless of position, and “-prompt is required” uses exit code 2 only when truly absent; update README to state flags are order-insensitive; DoD: tests green on all OSes, CI and all quality gates green, one peer review completed. |
| 252 | +* [ ] Diagnose and fix opaque `context deadline exceeded` on chat POST by instrumenting HTTP phase timings (DNS/connect/TLS/write/read/idle), verifying and wiring `-http-timeout`/`OAI_HTTP_TIMEOUT` is actually applied to the OpenAI POST (independent from tool timeouts) or adding it if missing, and upgrading the surfaced error to include base URL, phase, and configured timeout with actionable hints (e.g., server unreachable vs slow response); add table-driven unit tests and an integration test with a fake slow server and a refused connection to prove (a) correct timeout behavior, (b) clear error text and exit code 1 for network/timeout, 2 for CLI misuse, and (c) that raising `-http-timeout` resolves the slow-server case; update README and the troubleshooting runbook accordingly; DoD: failing tests first then passing, running the provided repro command yields a precise cause message (not a generic context deadline), CI and all quality gates green, one peer review completed. |
0 commit comments