docs(selfhost): fill config/env doc gaps and reconcile checkRunDetailLevel default mismatch - #2926
Conversation
…Level default mismatch - Fixes checkRunDetailLevel's default: the DB schema column defaults to "minimal" but the internal full-replace settings route's Zod schema defaulted to "standard" for the same field, so an omitted value resolved differently depending on which write path created the row. Aligned the route to "minimal", matching the Context check's own "public output is intentionally minimal" design intent, with a regression test. - Fixes gen-selfhost-env-reference.mjs's isEnvContainer AST check to unwrap parenthesized/`as`-cast expressions (e.g. `(env as unknown as Record<string, unknown>).X`), which was silently hiding SLACK_WEBHOOK_URL from the generated reference. Regenerated the output file. - Documents 8 previously-undiscoverable-from-docs env vars in .env.example: SLACK_WEBHOOK_URL, AI_EMBED_BASE_URL/AI_EMBED_API_KEY, BACKUP_ACKNOWLEDGED, ORB_COLLECTOR_TOKEN, ORB_RELAY_MODE, REVIEW_AUDIT_DIR, SETUP_OUTPUT_PATH. - Documents closeOwnerAuthors, the features: block, and the contentLane: block in .gittensory.yml.example (contributorBlacklist/moderation fields stay undocumented in the public example, as they carry moderation-sensitive semantics). - Adds a README section disambiguating the three independent check-run/ comment surfaces (Gittensory Orb Review Agent, Gittensory Context, inline review comments), since the Context check is easy to mistake for the separately-gated inline-comment feature.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 6fb6b98 | Commit Preview URL Branch Preview URL |
Jul 04 2026, 05:45 AM |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-04 05:44:44 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2926 +/- ##
=======================================
Coverage 96.05% 96.05%
=======================================
Files 259 259
Lines 28460 28460
Branches 10350 10350
=======================================
Hits 27338 27338
Misses 489 489
Partials 633 633
🚀 New features to boost your workflow:
|
Summary
checkRunDetailLevel's default mismatch: therepository_settingsDB column defaults to"minimal", but the internal full-replace settings route's Zod schema defaulted to"standard"for the same field — an omitted value resolved differently depending on which write path created the row. Aligned the route to"minimal", matching the Context check's own documented "public output is intentionally minimal" design intent. Added a regression test.gen-selfhost-env-reference.mjs: itsisEnvContainerAST check didn't unwrap parenthesized/as-cast expressions, so it silently missed(env as unknown as Record<string, unknown>).SLACK_WEBHOOK_URLinnotify-discord.ts— meaningSLACK_WEBHOOK_URLnever showed up in the generated self-host env reference at all. Fixed the AST check (with a new test fixture case) and regenerated the output file, which picked upSLACK_WEBHOOK_URLplus re-synced drifted line numbers for everything else..env.example:SLACK_WEBHOOK_URL,AI_EMBED_BASE_URL/AI_EMBED_API_KEY,BACKUP_ACKNOWLEDGED,ORB_COLLECTOR_TOKEN,ORB_RELAY_MODE,REVIEW_AUDIT_DIR,SETUP_OUTPUT_PATH— all real, working, already-implemented knobs that had no mention in the sample env file.closeOwnerAuthors,features:, andcontentLane:in.gittensory.yml.example— real, consumed top-level/settings fields that were entirely absent from the example (not even a commented-out stub). Deliberately leftcontributorBlacklistand the moderation-rules block undocumented, since those carry moderation/banned-username-adjacent semantics that may be intentionally kept out of the public example.Gittensory Orb Review Agent(the gate verdict),Gittensory Context(a separate, advisory, minimal-by-default check run), and inline review comments (the actual reply-able CodeRabbit-style threads). This directly resolves a live point of confusion: the Context check is easy to mistake for the inline-comment feature, but they're unrelated and independently gated.Resolves #2907. Part of the #1667 self-host review-stack roadmap (follow-up to #2912, #2906).
Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run typecheckvitest runacross all 8 affected test files — 329 tests passednpm run test:changed— 30 files / 547 tests passed, 0 failed.gittensory.yml.examplestill parses with zero warnings (the existingtest/unit/focus-manifest.test.ts"doc must match parser exactly" test), and dogfooded the newnpm run selfhost:config-lint -- .gittensory.yml.exampleCLI (from chore(selfhost): wire up or retire the unwired config-lint.ts manifest validator #2906) against it directlynpm run actionlint/npm run test:workers/npm run build:mcp/npm run test:mcp-pack/npm audit/ui:lint/ui:typecheck/ui:build— not run locally; no workflow, worker-pool, MCP-package changes, and the oneapps/gittensory-uifile touched is a regenerated data-only constants file with no UI/component logic. CI runs the full gate.If any required check was skipped, explain why:
test:coverage/test:cinot run locally — the only behavior change (thecheckRunDetailLeveldefault) is covered by a new regression test in the targeted run above; everything else is documentation (.env.example,.gittensory.yml.example,README.md) or a regenerated data file. CI runs the full gate.Safety
contributorBlacklist/moderation fields in the public.gittensory.yml.examplefor this reason.)checkRunDetailLevel's default — is an internal settings-route default value, not a schema/OpenAPI shape change; noui:openapiregen needed.)apps/gittensory-uifile touched is a generated data constants file, not a component.)