docs(website): correct routes, fields, events, tools, providers, resume story, and bind default - #1391
Merged
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…me story, and bind default Closes #1380 Full audit of website/docs against the current tree at a0d1521, re-verified claim-by-claim with rg rather than trusting the attached audit report. Key corrections: - Resume story: harnesscli continue / POST /v1/runs/{id}/continue requires the source run's status to be `completed` (409 run_not_completed otherwise); a cancelled run cannot be resumed. Blocked (waiting_for_user) runs are answered with harnesscli input <run-id> "<q>=<a>" (documented as the post-#1374 CLI addition; the server route already exists). - HARNESS_ADDR default corrected from :8080 to 127.0.0.1:8080 everywhere, with the non-loopback bind-refusal behavior noted (issue #1328). - max_steps: 0 = unlimited with no default step cap (post-#1376 state). - workspace_path documented as honored (post-#1372 state). - reference/http-routes.md route inventory rebuilt from the actual mux.Handle registrations; RunRequest schema gained missing fields. - reference/events-catalog.md: AllEventTypes() is missing 7 real, emitted event constants (4 callback.*, 3 plan.approval_*); added todos.updated and job.completed; fixed a stale ask_user_question payload example. - reference/tools-catalog.md: added 8 undocumented tools verified against tools_default.go; rejected the audit's compact_summary claim (it's an internal message-tag label, not a callable tool). - Provider tables (3 files) corrected from 10 to 15 providers; live model discovery corrected from OpenRouter-only to provider-agnostic. - server/expose-as-mcp-server.md rewritten beyond the audit's findings: /mcp and the harness-mcp proxy share one 25-tool REST-backed dispatcher, not two different tool sets; /mcp is POST-only (no SSE/subscribe_run). - Added harnesscli subcommand docs: steer, viz, acp, plugin, mcp, hooks, service, auth kimi, auth codex, input. - One-line fix: cmd/harnesscli/service.go:410 --addr help text said the default was :8080; corrected to 127.0.0.1:8080 to match internal/config/config.go:254. No test asserted the old string; go test ./cmd/harnesscli -run Service -race passes unchanged. Verification: rg re-check of every corrected claim; npm run build in website/ (Docusaurus) completes with no broken links or MDX errors. Merges after #1372, #1374, #1376 (documents their post-merge behavior). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJGxhoFhA8JjkwZFcLGdS5
dennisonbertram
force-pushed
the
issue-1380-website-docs
branch
from
September 5, 2026 15:53
750ed09 to
68de025
Compare
17 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1380
Summary
Corrects verified-wrong and missing claims across 26
website/docspages, plus a one-line help-text fix atcmd/harnesscli/service.go:410(documented as the same wrongHARNESS_ADDRdefault surfaced to users). Every correction below was re-verified against the current tree withrg/sed -n— the attached audit (epic #1369 comment) was treated as a lead, not gospel, and two of its claims turned out to be wrong on inspection (noted below the table).This PR also documents the post-merge state of three sibling PRs per the task brief:
workspace_pathonPOST /v1/runsandharnesscli --workspaceare honored (absolute existing dir; tools rooted there).harnesscli input <run-id> "<question>=<answer>"(POST /v1/runs/{id}/input, which already exists server-side today).max_steps: 0= unlimited.This PR should merge after #1372, #1374, and #1376 so the documented behavior matches what ships.
Correction table
reference/exit-codes.md:29,77,89run.cancelled/ blocked runs "resumable viaharnesscli continue"continuerequires source statuscompleted; cancelled runs are not resumable; blocked runs useharnesscli inputinternal/harness/runner.go:2217,internal/server/http_runs.go:817reference/exit-codes.md:58,69ask_user_questiontoolAskUserQuestiontoolinternal/harness/tools/ask_user_question.go:12reference/exit-codes.md:67,146events.go:472,types.go:337events.go:477,types.go:401-402cli/harnesscli.md:55,104-106,176,253-402-workspace"silently ignored"; noinput/steer/viz/acp/plugin/mcp/hooks/service/auth kimi|codexsections-workspacehonored post-#1372; 9 new subcommand sections addedinternal/harness/runner.go:2217;cmd/harnesscli/auth.godispatchreference/cli-flags.md:39,80,306-360,64-90HARNESS_ADDRdefault:8080;-workspace"ignored"; missing-plan-mode/-resume/auth kimi|codex/go-code --resume/9CRONSD_*vars127.0.0.1:8080; honored; all addedinternal/config/config.go:254;cmd/harnesscli/main.go:155,157;cmd/cronsd/main.go:173-204server/http-api-guide.md:10,65,371-380,436:8080; no continue precondition;ask_user_question127.0.0.1:8080; precondition documented;AskUserQuestionreference/http-routes.md:9,285-330,420:8080;RunRequestschema missing 7 fields; ~15 routes missing from inventory127.0.0.1:8080; schema completed; routes added (/v1/tools,/v1/hooks,/v1/config/reload,/v1/model-settings*,/v1/tasks,/v1/jobs/{id}/kill|output,/v1/callbacks/{id}/cancel,/v1/cron/runs,/v1/cron/jobs/{id}/executions, conversation sub-routes,/v1/runs/{id}/replay,import-subscription, 6 relay routes,/viz)internal/server/http*.gomux registrationsreference/environment-variables.md:28HARNESS_ADDR":8080"; missing 10 env vars"127.0.0.1:8080";HARNESS_RETRY_MAX_ATTEMPTS,HARNESS_RETRY_MAX_TOTAL_SEC,HARNESS_LISTEN_FD,HARNESS_EXIT_WITH_PARENT,HARNESS_MODEL_STORE_PATH,HARNESS_PROVIDER_CATALOG_DIR,HARNESS_COLOR_PROFILE,HARNESS_CRON_API_KEY,HARNESS_SOURCE_ROOT,HARNESS_BENCHMARK_CMDadded; 6CRONSD_*vars addedrg -o 'getenv("HARNESS_...")'sweep acrosscmd,internalreference/tools-catalog.mdlist_models,deploy,goals,cron_update,cron_history,message_subagent,notify_parent,agent_swarmName:fields ininternal/harness/tools_default.gowiringreference/events-catalog.md:854-881AllEventTypes()"AllEventTypes()misses 7 (callback.dispatching|failed|retry_wait|started,plan.approval_required|granted|denied) which are genuinely emitted via a separate bridge; addedtodos.updated,job.completedinternal/harness/events.go,internal/harness/tools/delayed_callback.go,internal/harness/plan_mode.go:75-107,internal/harness/job_bridge.go:16reference/events-catalog.md:175"tool": "ask_user_question""tool": "AskUserQuestion"internal/harness/ask_user_broker.go:60reference/providers-and-models-reference.md,reference/environment-variables.md,concepts/providers-and-models.md,getting-started/what-is-go-code.mdcerebras,codex-subscription,kimi-subscription,lmstudio,ollama); discovery is provider-agnostic (OpenRouter/OpenAI/Anthropic/DeepSeek, 5-min TTL)catalog/models.json;internal/provider/openai/discovery.go:24,internal/provider/anthropic/discovery.go:24reference/troubleshooting.md:202internal/harness/tools/mcp.gointernal/harness/tools/deferred/mcp.go:109rgserver/harnessd.md:9,39,155,161,266,concepts/configuration.md:44,165,308-322:8080;max_steps"resets 0 to 8"127.0.0.1:8080everywhere + bind-refusal note;max_steps=0is genuinely unlimited, no resetinternal/config/config.go:254;cmd/harnessd/bind_guard.go:29-42concepts/runs-and-conversations.md:52,58POST /v1/runs/{id}/input/harnesscli input; "no default step cap"server/script-workflows-api.md:312GET/POST /v1/script-workflow-runs/{id}GETon the bare ID;POSTis/resumeonlyinternal/server/http_script_workflows.go:194-223server/expose-as-mcp-server.md(substantial rewrite)/mcpbuilt onmcpserver.NewServer, 10 tools,GET /mcpSSE +subscribe_run,version="1.0";harness-mcpproxy has a separate 5-tool set/mcpisharnessmcp.NewHTTPHandler, POST-only (405 on GET), no SSE/subscribe_run;/mcpandharness-mcpshare the same 25-tool REST-backed dispatcher (internal/harnessmcp);version="1.0.0",name="harness-mcp"(notinternal/mcpserver's unmounted"go-agent-harness"/"0.1.0")cmd/harnessd/runtime_container.go:348-352;internal/harnessmcp/httptransport.go:29-31;internal/harnessmcp/dispatcher.go:98-99;internal/harnessmcp/tools.go(25Name:entries)tutorials/claude-desktop-mcp.md:11,169,180-181cost_usdalways emptycost_usdpopulated since #1314,messagesstill empty (server has no message-list field)internal/harnessmcp/harness_client.go:232-251integrations/mcp-consume.md:201list_mcp_resources/read_mcp_resource"not yet implemented"clientManagerRegistrycmd/harnessd/mcp_setup.go:68-90,internal/mcp/mcp.go:231,246cli/go-code-wrapper.md:137-138,174:8080; "cancelled — resumable via go-code continue"127.0.0.1:8080; cancelled is not resumable; blocked →harnesscli input/go-code --resume; added missinggo-code --resume <id>rowscripts/go-code.sh:10,255-260,384Two audit claims rejected after verification (not applied):
compact_summarywas listed as an undocumented core tool; it is actually an internal message-Nametag used bycompact_historyto mark its own injected summary (internal/harness/tools/core/compact_history.go:287,324,424), not atools.Definition— not added to the tools catalog.CRONSD_*vars" undercounted; the actual set is 9, all verified incmd/cronsd/main.go:173-204and now documented.Scope and issue reconciliation
In scope per the task brief:
website/docs/**plus the one-line help string.git diff --statagainstorigin/mainshows exactly 26website/docs/*.mdfiles,cmd/harnesscli/service.go(1 line), anddocs/logs/engineering-log.md(required engineering-log entry per the process brief). No other source, test, workflow, dependency, API, config, schema, persistence, security, deployment, or runtime-behavior files were touched — this stayed a documentation-only change plus the pre-approved help-text fix.Impact analysis reconciliation
Zero runtime impact: no Go source file changed except the flag-help string, which is descriptive only (
resolveServiceAddralready resolves the true value viainternal/config; only the printed default in-houtput changes). All other changes are Markdown/MDX content underwebsite/docs/.Architecture and duplication check
No new abstractions. Route/field/event/tool/env-var inventories were regenerated by reading the single sources of truth named in the task (mux registrations in
internal/server,RunRequestininternal/harness/types.go,AllEventTypes()ininternal/harness/events.go,Name:fields undertools/coreandtools/deferred,catalog/models.json, andgetenv("HARNESS_...")call sites) rather than a second parallel catalog.Test-first evidence
Documentation-only PR (per the issue's own "Regression test first" section, which designates this as a documentation-only verification slice). Substituted verification: every corrected claim was re-checked against the current code with
rg/sed -nbefore editing (shown in the correction table's evidence column), and the one code change (service.go:410) is a flag-help string with no test asserting the old value — confirmed by greppingcmd/harnesscli/service_test.gofor the string before and after.Verification evidence
Docusaurus build completed with zero broken internal links and zero MDX syntax errors across all edited pages.
Rollout and rollback
None — docs plus one help string. Revert the PR to roll back; no data migration, no deployment step, no runtime behavior to roll back.
Documentation
This PR is the documentation update. Engineering-log entry added at
docs/logs/engineering-log.md(prepended, following the file's existing newest-first format).docs/runbooks/INDEX.md/docs/INDEX.mddead-link cleanup from the audit's historical-directory findings is out of scope (non-website docs, not part of this task's file allowlist) and is left for a separate docs-cleanup issue.Uncertainties / follow-up needed
internal/workspace/bootstrap.go:36(VM workspace cloud-init template) setsHARNESS_ADDR=:8080— a non-loopback bind — with noHARNESS_AUTH_DISABLEDand no auth configured. Givencmd/harnessd/bind_guard.go's [Bug]: harnessd listens on all interfaces unauthenticated, and /mcp bypasses auth entirely #1328 protection, this looks like it would now makeharnessdrefuse to start on a freshly provisioned VM workspace, andsystemctl start harnessd || trueswallows the failure silently. This is a code question outside the allowed file list for this task (website/docs/**+cmd/harnesscli/service.gohelp string only) — recommend filing a follow-up issue rather than folding a code fix into this docs PR.docs/runbooks/mcp.mdanddocs/design/event-catalog.md(non-website docs) have the same/related staleness the audit found but are out of scope for this PR's file allowlist.Contract checklist
RunRequest,AllEventTypes(), toolName:fields,catalog/models.json, env var call sites)go test ./cmd/harnesscli -run Service -race;npm run build)🤖 Generated with Claude Code
https://claude.ai/code/session_01WJGxhoFhA8JjkwZFcLGdS5