Skip to content

manual: ten places the manual or --help disagrees with the dev build #1765

Open

Description

@ZeroPoint95

What happened

2026-10-05, dev@f81638787 (dev-20261005-f816387875e5). Found in the v0.7.1 happy-path pass. In each of these ten places the manual or --help says one thing and the binary does another. None blocks the release. Most are wording; for items 7 and 8 it may be the binary rather than the page that is wrong.

  1. Approvals. getting-started.md (Which settings the setup does not ask about) says "Memory stays on, tool approvals keep prompting". A fresh conversation shows ◇ YOLO and /status says approvals allow. permissions.md agrees with the binary: allow "is the interactive default, shown as YOLO".

  2. Setup header. getting-started.md says a one-step setup reads setting up. With a key in the environment, codeaf chat --no-host opens a one-step Basic settings whose header is just codeaf. On the two-step flow the first screen reads setting up · 1 of 2 and the second setup · 2 of 2: firstrun.go and onboarding.go spell it differently.

  3. --no-host. getting-started.md says "A --no-host launch on such a profile …", but bare codeaf --no-host is refused with Error: there is no `codeaf --no-host`.. Only codeaf chat --no-host works.

  4. The default model. codeaf manual "what is the default model" and "which model does codeaf ship with" reach no section that names ~deepseek/deepseek-v4-flash-latest. Only the tilde section of lanes.md states it.

  5. Exit codes. codeaf --help and codeaf do --help list 0 1 2 3 4, but do --timeout exits 124. HEADLESS.md and the manual document 124; the two help screens don't.

  6. codeaf models with no key. --help files it under "Look at what happened — read-only, no key, nothing spent", but with no key it exits 1 with "codeaf needs a model to work with."

  7. /debug on the default launch answers this conversation has no run to record. debug-record.md presents /debug as the in-conversation switch that answers recording this conversation · it goes to ….

  8. The standing place has no message box when empty. It shows only tab next place · esc, and typed characters are dropped. places.md says every printable key there belongs to the composer.

  9. Bare /export writes transcript.md into the repository rather than the documented <stem>_<session-name>.md, so every conversation's bare export now shares one name.

  10. Smaller wording:

    • /help says /memories "print what is remembered about you", but it opens the memory place.
    • screen.md says /quit ends the program, but it closes the conversation in front and ends the program only on the last one.
    • getting-started.md says ctrl+c "(twice, as always)", but keys.md says once, which is what happens at rest.

Replication

Deterministic (no model).

  • Items 3, 5 and 6: run each command on a fresh CODEAF_HOME with no key and compare with the quoted help.
  • Item 4: add the two questions as probes to internal/manual/chat_test.go.
  • Items 1–2: on a fresh CODEAF_HOME, set OPENROUTER_API_KEY to any sk-or--shaped string, then run codeaf chat --no-host and /status.

Where

internal/manual/chat/getting-started.md. The setup header strings in internal/tui3/firstrun.go (setting up · ) and internal/tui3/onboarding.go (setup · ). The usage text in cmd/codeaf. The models command's key check.

The fix

The manual says what the binary does. Approvals are allow/YOLO by default; setup's header has one spelling; --no-host is a chat flag. A heading carries "default model" and names ~deepseek/deepseek-v4-flash-latest. Both help screens list 124. codeaf models either answers without a key or moves out of the "no key" group. /debug and the standing composer either work as the pages say or the pages say what they do. Bare /export and the smaller lines match the binary.

Acceptance

  • e2e: internal/manual/chat_test.go probes "what is the default model" and "which model does codeaf ship with" reach a section that names the model.
  • Unit: one function spells the setup header for both screens.
  • The manual pages quote the binary's own strings.

Activity

  1. added
    bugSomething the code does that it should not
    area:chatThe v3 surface a person sits in front of (internal/tui3)
    sev:papercutA wording, a hint, a small wrongness that costs a moment
    on Oct 5, 2026
  2. ZeroPoint95 commented on Oct 5, 2026

    @ZeroPoint95
    CollaboratorAuthor

    Staging pass note (2026-10-05, staging-20261005-7e30335645c8, same code as the dev pass): item 9 varies with state. In a conversation that has a title, bare /export writes transcript-<title-slug>.md (e.g. transcript-tool-inspection-for-sub-occurrences-in-calc.md), and a second bare export refuses with … is already there · /export <path> writes it somewhere else. transcript.md appears when the conversation is untitled (see #1762). Neither matches the documented <stem>_<session-name>.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:chatThe v3 surface a person sits in front of (internal/tui3)bugSomething the code does that it should notsev:papercutA wording, a hint, a small wrongness that costs a moment

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions