Skip to content

Commit a8df921

Browse files
authored
Merge branch 'main' into feat/2329-miner-laptop-mode-cli
2 parents 5da1add + a03e8f8 commit a8df921

83 files changed

Lines changed: 6581 additions & 99 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,23 @@ GITTENSORY_REVIEW_DRAFT=false
154154
# # /setup returns 400; with it, /setup needs ?token=<value> (or an
155155
# # x-setup-token / Bearer header) so a freshly-booted, not-yet-configured
156156
# # instance can't be driven through App creation by a random visitor.
157+
# ADMIN_GITHUB_LOGINS=your-github-login # REQUIRED for control-panel ("operator") access. A comma- or
158+
# # whitespace-separated allowlist of GitHub logins, case-insensitive.
159+
# # FAIL-CLOSED: unset/empty means NOBODY can sign into the dashboard,
160+
# # even the person who set up this instance — this is not a bug, add
161+
# # your own login here right after first-run setup. Also exempts these
162+
# # logins from the agent's own-PR auto-close rules (fleet-operator
163+
# # identity) and lets them bypass per-repo MCP scope.
164+
# MCP_READ_REPO_ALLOWLIST= # scopes the shared GITTENSORY_MCP_TOKEN identity's READ-only MCP
165+
# # tools (repo context, issue quality, watch subscriptions) to these
166+
# # owner/repo entries (comma/whitespace-separated). FAIL-CLOSED:
167+
# # unset/empty grants no repo access. `*` or `all` is an explicit
168+
# # escape hatch for full unscoped read access, incl. cross-repo
169+
# # contributor/operator tools that have no single repo to scope against.
170+
# MCP_ACTUATION_REPO_ALLOWLIST= # same fail-closed/wildcard model as MCP_READ_REPO_ALLOWLIST, but for
171+
# # WRITE (merge/close/approve) MCP tools — kept separate so read and
172+
# # write trust can differ. Unrelated to ADMIN_GITHUB_LOGINS, which
173+
# # scopes dashboard sign-in, not the shared MCP token's per-repo reach.
157174
# PORT=8787
158175
# DATABASE_PATH=/data/gittensory.sqlite # SQLite file on the mounted data volume; all migrations auto-apply
159176
# POSTGRES_PASSWORD=change-this-long-random-value # used by the --profile postgres / --profile pgbouncer services
@@ -184,8 +201,16 @@ REDIS_URL=redis://redis:6379 # REQUIRED for the self-host review
184201
# GITHUB_BRANCH_PROTECTION_CACHE_TTL_SECONDS=1200 # TTL for required-status branch protection reads.
185202
# GITHUB_METADATA_CACHE_TTL_SECONDS=600 # TTL for stable repo/user/installation metadata reads.
186203
# GITHUB_COMMIT_CACHE_TTL_SECONDS=900 # TTL for bare /commits/{ref} resolves; dedups the two hourly upstream ref→SHA reads.
204+
# GITHUB_WEBHOOK_MAX_BODY_BYTES=1048576 # max accepted GitHub webhook body size, in bytes (default 1 MiB).
205+
# # Larger deliveries are rejected before parsing. Raise only if you
206+
# # see legitimate webhooks rejected for size (e.g. a `push` event
207+
# # with a large `commits` array from a big force-push or merge);
208+
# # most installs never need to touch this.
187209
# QDRANT_URL= # set to http://qdrant:6333 to use Qdrant as the RAG vector store
188210
# # (--profile qdrant). Overrides the built-in sqlite-vec / pgvector.
211+
# BROWSER_WS_ENDPOINT= # ws:// URL of a browserless/chrome instance for visual-review
212+
# # screenshot capture. Unset = visual review is fully inert (no
213+
# # screenshots, no error) — this feature is entirely optional.
189214
# DISCORD_WEBHOOK_URL= # one Discord channel for per-action notifications (merged/closed/
190215
# # manual) on ANY repo you review. Unset = no Discord notifications.
191216
# # Collection and schema are auto-created at startup. Off when unset.
@@ -324,6 +349,11 @@ REDIS_URL=redis://redis:6379 # REQUIRED for the self-host review
324349
# # merged decision. single = one reviewer's verdict (auto when 1).
325350
# AI_ON_MERGE=either # synthesis merge rule: either (block if EITHER reviewer flags) |
326351
# # both (block only when both do). Ignored unless AI_COMBINE=synthesis.
352+
# AI_DAILY_NEURON_BUDGET=10000000 # daily spend cap (Cloudflare Workers AI "neurons") shared by AI
353+
# # summaries, the free consensus-defect reviewer pair, and the
354+
# # AI-slop scorer. Default 10,000,000/day; clamped to [0, 10000000].
355+
# # Only meters FREE Workers-AI calls — BYOK/provider calls above bill
356+
# # the maintainer's own account and are not counted against this.
327357
# Ollama reviewer (AI_PROVIDER=ollama). Defaults: OLLAMA_AI_BASE_URL=http://localhost:11434/v1,
328358
# OLLAMA_AI_MODEL=llama3.1, no API key. Set the base URL to http://ollama:11434/v1 when using the compose
329359
# --profile ollama service.

.gittensory.yml.example

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,15 @@ gate:
183183
# PR, so it is opt-in rather than a new default.
184184
premergeContentRecheck: false
185185

186+
# Force-rebase-before-merge window in minutes (#2552, anti-race). When the base branch has advanced within
187+
# this many minutes of the actual merge-decision moment, an agent-driven merge forces an update_branch +
188+
# fresh CI recheck cycle before merging, instead of trusting a mergeable_state: clean read that may already
189+
# be stale relative to a sibling commit that just landed on the base. A bounded retry cap prevents a
190+
# fast-moving base from live-locking the PR — after a few forced attempts it falls through to a normal
191+
# merge with an audit note. Positive integer (minutes), or omit/null. Default: null (never force).
192+
# DB-backed (dashboard-settable too); this overrides the stored value.
193+
requireFreshRebaseWindow: 10
194+
186195
# AI maintainer review. Opt-in; the AI capabilities are switched on at the
187196
# deployment level.
188197
aiReview:

apps/gittensory-ui/public/openapi.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8682,6 +8682,12 @@
86828682
},
86838683
"badgeEnabled": {
86848684
"type": "boolean"
8685+
},
8686+
"requireFreshRebaseWindowMinutes": {
8687+
"type": "integer",
8688+
"nullable": true,
8689+
"minimum": 0,
8690+
"exclusiveMinimum": true
86858691
}
86868692
},
86878693
"required": [

0 commit comments

Comments
 (0)