Skip to content

chore: 0.35.1rc6 — doc audit gaps, healthcheck fix, update/uninstall guides#304

Merged
Nathan Schram (nathanschram) merged 4 commits intodevfrom
docs/v0351-audit-gaps
Apr 15, 2026
Merged

chore: 0.35.1rc6 — doc audit gaps, healthcheck fix, update/uninstall guides#304
Nathan Schram (nathanschram) merged 4 commits intodevfrom
docs/v0351-audit-gaps

Conversation

@nathanschram
Copy link
Copy Markdown
Member

Summary

Staging rc6 bundles three independent bodies of work:

  1. v0.35.1 documentation audit — comprehensive gap-fill across all 121 doc files (security: bot token leaked in structured log URLs #190, security: unbounded JSONL line buffer can cause OOM crash #191, security: callback query sender not validated in group chats #192, security: user prompt passed as CLI arg without -- separator (flag injection) #194, bug: /ping uptime does not reset on service restart #234, bug: diff_preview gate requires manual approval for every tool after ExitPlanMode in plan mode #283)
  2. healthcheck.sh fix — two bugs prevented post-deploy health checks from running (healthcheck.sh exits prematurely due to ((var++)) under set -e #302)
  3. update/uninstall guides — new how-to pages for upgrading and removing Untether + README transparency section

1. Documentation audit (8 files, 38 insertions)

Audited all 121 doc files against the 23 issues in v0.35.1. Major features (triggers, /at, hot-reload, restart improvements, OOM fix, stall improvements) were already well-documented. Filled 8 specific gaps:

Security:

UX:

Completeness:

2. healthcheck.sh fix (#302)

Two bugs in scripts/healthcheck.sh made post-deploy health checks unusable:

  • pass()/fail() used ((var++)) which returns pre-increment value, tripping set -e on first call
  • Error-log count piped through grep -c . counted journalctl's -- No entries -- meta line

Verified with scripts/healthcheck.sh --version 0.35.1rc5 on staging — all 5 checks run, exit 0.

3. Update/uninstall guides

  • New docs/how-to/update.md and docs/how-to/uninstall.md
  • README: "What Untether accesses" transparency section (network, filesystem, process, credentials)
  • README: update/uninstall one-liners in Quick Start
  • Nav entries, cross-links, install.md integration

Addresses a gap found during hesreallyhim/awesome-claude-code evaluation: the repo had zero uninstallation documentation.

Test plan

  • uv run ruff format --check src/ tests/ — passes (260 files formatted)
  • uv run ruff check src/ — passes (all checks passed)
  • uv lock --check — lockfile in sync
  • uv run pytest — 2164 passed, 1 skipped, 81.65% coverage
  • uv build — wheel and sdist built successfully
  • uv run zensical build — docs build clean, no broken links
  • TestPyPI publish on merge to dev (auto via release.yml)
  • Install rc6 on @hetz_lba1_bot via scripts/staging.sh install 0.35.1rc6 after dev merge
  • Integration tests via @untether_dev_bot before final v0.35.1 release

🤖 Generated with Claude Code

Comprehensive audit of all 121 doc files against the v0.35.1 changelog
(23 issues) found the major features well-documented but 8 specific gaps:

Security:
- group-chat.md: document callback sender validation in groups (#192)
- security.md: cross-reference button validation from allowed_user_ids
- security.md: fix misleading SSRF allowlist claim (no TOML setting exists)
- security.md: add bot token auto-redaction tip (#190)

UX:
- plan-mode.md: document auto-approval after plan approval (#283)
- interactive-approval.md: note about plan bypass in diff preview section
- commands-and-directives.md: /ping description now mentions trigger summary

Completeness:
- runners/amp/runner.md: add sanitize_prompt() note (#194)
- troubleshooting.md: document 10 MB engine output line cap (#191)
- glossary.md: add delayed run, webhook action, hot-reload entries

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Two bugs in scripts/healthcheck.sh made post-deploy health checks unusable:

1. pass()/fail() used `((var++))` which returns the pre-increment value.
   On first call (var=0) that trips `set -e`, so only the first check ever
   ran and the script always exited 1. Switched to explicit assignment.

2. The error-log count piped journalctl through `grep -c .`, which counts
   journalctl's `-- No entries --` meta line as a match, producing a
   false-positive "1 ERROR-level log entries in last 60s" on clean
   systems. Now filters meta lines with `grep -vc '^-- '`.

Verified with `scripts/healthcheck.sh --version 0.35.1rc5` on staging:
all 5 checks run, exit 0.

Closes #302

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- New how-to guides: docs/how-to/update.md and docs/how-to/uninstall.md
- README: "What Untether accesses" section with network, filesystem,
  process, and credential disclosures
- README: update/uninstall one-liner in Quick Start section
- README: update/uninstall links in How-To Guides section
- install.md: cross-links to update and uninstall guides
- zensical.toml: nav entries for new pages
- how-to/index.md: entries in Getting Started section

Addresses gap found during hesreallyhim/awesome-claude-code evaluation:
the repo had zero uninstallation documentation.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…install guides

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 15, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0ac5e336-ab2c-45d4-892a-2da6f0c7ce3c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/v0351-audit-gaps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nathanschram Nathan Schram (nathanschram) merged commit 3caa2c3 into dev Apr 15, 2026
21 checks passed
@nathanschram Nathan Schram (nathanschram) deleted the docs/v0351-audit-gaps branch April 15, 2026 04:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant