Skip to content

Decide which internal NBI_* variables should be documented #486

Description

@pjdoland

Summary

Thirteen NBI_* variables are read by the code and appear in no markdown file. Most look like deliberate internal tuning knobs rather than omissions, so this is a decision to make once rather than a straightforward gap: document them as supported, or mark them internal and accept that they are not.

The list

Read by the code, absent from every doc:

  • NBI_CHATBOOK_STUB
  • NBI_CLAUDE_AGENT_CLIENT_RESPONSE_TIMEOUT
  • NBI_CLAUDE_AGENT_CLIENT_RESPONSE_WAIT_TIME
  • NBI_CLAUDE_AGENT_CLIENT_UPDATE_WAIT_TIME
  • NBI_CLAUDE_AGENT_CONNECT_TIMEOUT
  • NBI_CLAUDE_AGENT_HEARTBEAT_INTERVAL
  • NBI_CLAUDE_PERF_STALL_GAP_MS
  • NBI_CONTEXT_PREFIX
  • NBI_INLINE_COMPLETION_PROVIDER_ID
  • NBI_MCP_CAPABILITY_RETRY_DELAY
  • NBI_MCP_DISCONNECT_TIMEOUT
  • NBI_MCP_SERVER_RESPONSE_TIMEOUT
  • NBI_VERSION

Generated by diffing NBI_[A-Z_0-9]+ across notebook_intelligence/**/*.py and src/**/*.ts* against every markdown file outside tests/. Nothing goes the other way: no doc references a variable the code no longer reads.

Why it is a decision and not just a gap

They are not one kind of thing:

  • Test hooks. NBI_CHATBOOK_STUB exists to make the Chatbook kernel testable. Documenting it invites use in production.
  • Internal identifiers. NBI_VERSION, NBI_CONTEXT_PREFIX, NBI_INLINE_COMPLETION_PROVIDER_ID are plumbing rather than knobs.
  • Real timeouts an operator might need. The Claude agent family (CONNECT_TIMEOUT, HEARTBEAT_INTERVAL, the three client wait times) and the MCP family are exactly the values someone debugging a slow or wedged deployment would want to reach for.

The last group is the reason to decide rather than ignore: NBI_MCP_CONNECT_TIMEOUT is documented (docs/troubleshooting.md), while its sibling NBI_MCP_DISCONNECT_TIMEOUT, added by the same change, is not. Whatever the rule is, those two should be on the same side of it. The ACP timeouts are a third case again: they are not env-overridable at all, unlike Claude's.

Suggested fix

Pick a rule and apply it: document the operator-facing timeouts in the admin guide's environment table, and leave the test hooks and internal identifiers undocumented on purpose. A one-line comment at each undocumented site saying it is internal would keep a future audit from re-raising this.

Environment

NBI main at dc59a6d (6.0.0-a2). Found while auditing docs for the 6.0 release.

Activity

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

    documentationImprovements or additions to documentationquestionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions