sysadmin
1334b0b320
fix: restore ISSUE_LOCK_FILE import and fail-closed public bind
...
Conflict resolution left webui/lease_loader.py importing ISSUE_LOCK_FILE
from merged_cleanup_reconcile (not exported); import from
issue_lock_provenance instead. Validate WEBUI_HOST before loading the
full app stack so 0.0.0.0 refuse exits immediately.
Addresses reviewer findings on PR #456 / issue #435 .
2026-07-09 11:52:24 -04:00
sysadmin
975674d7f5
feat(webui): auth and deployment boundary ( #435 )
...
Add bind-host assessment that refuses 0.0.0.0/:: without override,
warns on non-loopback binds, and documents internal-only MVP serving.
Health endpoint exposes deployment metadata; docs cover Access/VPN/WARP
and runtime env assumptions without embedding secrets in the client.
Closes #435
2026-07-09 11:50:40 -04:00
sysadmin
8d1098f916
Merge pull request 'feat: guard merged branch cleanup path' ( #516 ) from feat/issue-514-branch-delete-guard into master
2026-07-09 10:45:05 -05:00
sysadmin
49aa3b2812
Merge pull request 'Web UI: Gated action framework ( #434 )' ( #455 ) from feat/issue-434-gated-actions into master
2026-07-09 10:39:28 -05:00
sysadmin
94004f05ac
Merge pull request 'fix: newest reviewer lease marker wins so release ends prior claims ( Closes #577 )' ( #579 ) from fix/issue-577-reviewer-lease-newest-wins into master
2026-07-09 10:38:22 -05:00
sysadmin
8d6d3cb014
fix: refine terminal preflight check to avoid false-positive PATH blocks on server
2026-07-09 11:31:48 -04:00
sysadmin
f558b80cc8
test: cover explicit git -C terminal probe
2026-07-09 10:43:42 -04:00
sysadmin
223cde1b94
feat: terminal launcher diagnostics and mutation preflight ( Closes #556 )
...
Add categorize-and-probe helpers for shell spawn failures, expose
gitea_diagnose_terminal, and fail closed on mutation capability resolve
when the terminal launcher is unhealthy (BLOCKED + DIAGNOSE). Document
the operator path in the workflow runbooks.
2026-07-09 10:29:03 -04:00
sysadmin
9b96085d8d
fix: newest lease marker wins so release ends prior claims
...
find_active_reviewer_lease walked past terminal markers and re-armed
older claimed leases after gitea_release_reviewer_pr_lease. Treat the
newest marker as authoritative (append-only ledger).
Closes #577
2026-07-09 10:09:38 -04:00
sysadmin
ddb1dd941b
Merge remote-tracking branch 'prgs/master' into feat/issue-434-gated-actions
...
# Conflicts:
# docs/webui-local-dev.md
# tests/test_webui_skeleton.py
# webui/app.py
2026-07-09 09:38:20 -04:00
sysadmin
d7c29afde5
Merge remote-tracking branch 'prgs/master' into feat/issue-514-branch-delete-guard
...
# Conflicts:
# gitea_mcp_server.py
2026-07-09 09:35:55 -04:00
sysadmin
cc4b95839d
Merge pull request 'feat: add BLOCKED + DIAGNOSE default rule + blocker report template ( closes #552 )' ( #554 ) from issue-552-blocked-diagnose into master
2026-07-09 08:30:35 -05:00
sysadmin
325e0bb44c
Merge pull request 'feat: require Controller Handoff plus Thread State Ledger ( Closes #507 )' ( #511 ) from feat/issue-507-controller-thread-ledger into master
2026-07-09 08:27:44 -05:00
sysadmin
cf130ed0fc
fix: resolve test suite regressions and conn helper discovery error
2026-07-09 09:25:08 -04:00
sysadmin
cd83b7588f
Merge pull request 'feat: add worktree hygiene dashboard to web UI ( Closes #432 )' ( #453 ) from feat/issue-432-worktree-hygiene into master
2026-07-09 08:24:34 -05:00
sysadmin
b3bc459423
fix: drop obsolete worktrees stub assertion after #432 implement
2026-07-09 09:23:19 -04:00
sysadmin
e2ef8fbda0
fix: resolve docs conflict for PR #453 after #452
...
Merge both audit (#431 ) and worktree hygiene (#432 ) route/docs lines.
2026-07-09 09:22:53 -04:00
sysadmin
5cf44d78e6
Merge pull request 'feat: add final-report audit paste tool to web UI ( Closes #431 )' ( #452 ) from feat/issue-431-audit-paste into master
2026-07-09 08:22:13 -05:00
sysadmin
254ccf5821
Merge pull request 'feat: mount canonical gitea-workflow skill for Codex and MCP inventory ( Closes #551 )' ( #565 ) from feat/issue-551-codex-gitea-workflow into master
2026-07-09 08:14:31 -05:00
sysadmin
a8177c2e73
Merge remote-tracking branch 'prgs/master' into feat/issue-507-controller-thread-ledger
...
# Conflicts:
# docs/llm-workflow-runbooks.md
# final_report_validator.py
2026-07-09 09:13:51 -04:00
sysadmin
e8f93e93d7
Merge remote-tracking branch 'prgs/master' into feat/issue-551-codex-gitea-workflow
...
# Conflicts:
# docs/llm-workflow-runbooks.md
2026-07-09 09:12:44 -04:00
sysadmin
7acd55d2d2
Merge remote-tracking branch 'prgs/master' into feat/issue-514-branch-delete-guard
...
# Conflicts:
# final_report_validator.py
2026-07-09 09:12:33 -04:00
sysadmin
b52fa2060f
Merge pull request 'Clarify and enforce reviewer-vs-merger role boundaries ( #483 )' ( #486 ) from feat/issue-483-role-boundaries into master
2026-07-09 08:09:47 -05:00
sysadmin
932b280a27
Merge pull request 'feat: block direct MCP imports and unsanctioned keychain access ( Closes #558 )' ( #566 ) from feat/issue-558-block-direct-imports into master
2026-07-09 08:08:43 -05:00
sysadmin
c35f713291
Merge master into issue-552-blocked-diagnose to resolve conflicts
2026-07-09 09:06:59 -04:00
sysadmin
9340dc7009
Merge pull request 'feat: discover merged cleanup worktree aliases ( Closes #532 )' ( #571 ) from feat/issue-532-merged-cleanup-worktree-aliases into master
2026-07-09 08:05:33 -05:00
sysadmin
8e7a69800a
Merge pull request 'feat: require canonical next-action state comments ( Closes #495 )' ( #499 ) from feat/issue-495-canonical-next-action-comments into master
2026-07-09 08:02:14 -05:00
sysadmin
b14b1a9663
Merge pull request 'feat( #496 ): enforce canonical state comment validation before posting' ( #497 ) from feat/issue-496-canonical-comment-validator into master
2026-07-09 07:57:47 -05:00
sysadmin
eac2b0f6f2
Merge pull request 'feat: reject contradictory reviewer handoff ledgers ( Closes #501 )' ( #506 ) from feat/issue-501-reviewer-handoff-consistency into master
2026-07-09 07:52:43 -05:00
sysadmin
7274b76e81
Merge pull request 'feat: add Canonical Thread Handoff protocol ( Closes #505 )' ( #509 ) from feat/issue-505-canonical-thread-handoff into master
2026-07-09 07:49:13 -05:00
sysadmin
5ada9e6cc0
Merge pull request 'feat: require issue type and workflow status labels ( Closes #513 )' ( #518 ) from codex/issue-513-workflow-labels into master
2026-07-09 07:44:54 -05:00
sysadmin
9c599bf054
Merge remote-tracking branch 'prgs/master' into feat/issue-551-codex-gitea-workflow
...
# Conflicts:
# gitea_mcp_server.py
2026-07-09 08:44:51 -04:00
sysadmin
6cce87031b
Merge remote-tracking branch 'prgs/master' into feat/issue-431-audit-paste
...
# Conflicts:
# docs/webui-local-dev.md
# tests/test_webui_skeleton.py
# webui/app.py
2026-07-09 08:41:40 -04:00
sysadmin
71e28aa5b4
Merge remote-tracking branch 'prgs/master' into feat/issue-432-worktree-hygiene
...
# Conflicts:
# docs/webui-local-dev.md
# webui/app.py
2026-07-09 08:41:37 -04:00
sysadmin
0631e2e155
Merge pull request 'feat: require live PR head re-pin before conflict-fix classification ( Closes #522 )' ( #563 ) from feat/issue-522-conflict-fix-classification into master
2026-07-09 07:41:33 -05:00
sysadmin
46709537c1
Merge remote-tracking branch 'prgs/master' into feat/issue-434-gated-actions
...
# Conflicts:
# docs/webui-local-dev.md
2026-07-09 08:41:08 -04:00
sysadmin
62ab4b4d95
Merge remote-tracking branch 'prgs/master' into feat/issue-514-branch-delete-guard
...
# Conflicts:
# gitea_mcp_server.py
2026-07-09 08:28:50 -04:00
sysadmin
ce0fb42bef
Merge remote-tracking branch 'prgs/master' into feat/issue-483-role-boundaries
2026-07-09 08:27:36 -04:00
sysadmin
92fc913cad
Merge remote-tracking branch 'prgs/master' into issue-552-blocked-diagnose
...
# Conflicts:
# skills/llm-project-workflow/SKILL.md
2026-07-09 08:27:10 -04:00
sysadmin
412f0e0081
Merge remote-tracking branch 'prgs/master' into feat/issue-558-block-direct-imports
...
# Conflicts:
# docs/llm-workflow-runbooks.md
2026-07-09 08:26:49 -04:00
sysadmin
7cb024d4a5
Merge remote-tracking branch 'prgs/master' into feat/issue-495-canonical-next-action-comments
...
# Conflicts:
# skills/llm-project-workflow/SKILL.md
2026-07-09 08:26:46 -04:00
sysadmin
1ed1539acf
Merge remote-tracking branch 'prgs/master' into feat/issue-551-codex-gitea-workflow
...
# Conflicts:
# docs/llm-workflow-runbooks.md
2026-07-09 08:26:46 -04:00
sysadmin
81ff3608ae
Merge remote-tracking branch 'prgs/master' into feat/issue-507-controller-thread-ledger
...
# Conflicts:
# gitea_mcp_server.py
2026-07-09 08:26:22 -04:00
sysadmin
e2e51290c4
Merge pull request 'feat: add MCP runtime health dashboard to web UI ( Closes #430 )' ( #448 ) from feat/issue-430-runtime-health into master
2026-07-09 07:25:45 -05:00
sysadmin
a2e8bf17ec
Merge remote-tracking branch 'prgs/master' into feat/issue-532-merged-cleanup-worktree-aliases
...
# Conflicts:
# gitea_mcp_server.py
# merged_cleanup_reconcile.py
2026-07-09 08:20:21 -04:00
sysadmin
e8947438c9
Merge pull request 'feat: allow reconciler profile to run merged cleanup directly ( Closes #523 )' ( #567 ) from feat/issue-523-reconciler-cleanup into master
2026-07-09 07:19:45 -05:00
sysadmin
bc16f6652b
fix: resolve master conflicts for PR #486 role boundaries
...
Keep reviewer-vs-merger role boundary wording and master's #533
pre-merge baseline proof section in review-pr template.
2026-07-09 08:13:00 -04:00
sysadmin
e7811cb5bb
Merge branch 'master' into feat/issue-523-reconciler-cleanup
2026-07-08 23:13:24 -05:00
sysadmin
e5bf8c9647
fix: strengthen reconciler merged cleanup tests and runbook ( #523 )
...
Make the preflight bypass test actually exercise purity (not test short-circuit),
cover unmerged/open-head fail-closed cleanup, and document post-merge cleanup
ownership for prgs-reconciler so authors are not required for that path.
2026-07-09 00:09:47 -04:00
sysadmin
b68805e88a
Merge pull request 'feat: add skip-stale-REQUEST_CHANGES reviewer menu prompt ( Closes #482 )' ( #491 ) from feat/issue-482-skip-stale-request-changes-pr into master
2026-07-08 23:06:57 -05:00
sysadmin
ffa1ff95cc
fix: import ISSUE_LOCK_FILE from issue_lock_provenance
...
The conflict-resolution rebase incorrectly kept ISSUE_LOCK_FILE in the
merged_cleanup_reconcile import, but that symbol was moved to
issue_lock_provenance on master. This broke webui import collection.
Fixes the reviewer-reported regression on PR #448 .
2026-07-09 00:04:34 -04:00
sysadmin and Claude Opus 4.8
95f77bb648
feat: add MCP runtime health dashboard to web UI ( Closes #430 )
...
Adds read-only /runtime and /api/runtime routes showing active profile,
identity, config model, git sync vs remote master, shell health,
workflow/schema hashes, and stale-runtime warnings with #420 guidance.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-09 00:04:11 -04:00
sysadmin
08957aeb2a
Merge pull request 'feat: validate Selected PR: none in cleanup mode when queue is empty' ( #576 ) from feat/issue-572-empty-queue-fallback into master
2026-07-08 23:01:11 -05:00
sysadmin
4d865666c7
Merge pull request 'feat: add server code parity gate for mutations ( Closes #420 )' ( #444 ) from feat/issue-420-server-code-parity into master
2026-07-08 22:49:34 -05:00
sysadmin
d9cf26ddbf
Merge branch 'master' into feat/issue-514-branch-delete-guard
2026-07-08 22:45:19 -05:00
sysadmin
95ec891bd2
Merge branch 'master' into feat/issue-522-conflict-fix-classification
2026-07-08 22:45:04 -05:00
sysadmin
72ae320400
Merge branch 'master' into feat/issue-523-reconciler-cleanup
2026-07-08 22:44:45 -05:00
sysadmin
f04f61058f
Merge branch 'master' into feat/issue-420-server-code-parity
2026-07-08 22:44:27 -05:00
sysadmin
b71dfe9696
Merge branch 'master' into feat/issue-434-gated-actions
2026-07-08 22:40:02 -05:00
sysadmin
a82d35f8bd
feat: validate Selected PR: none in cleanup mode when queue is empty
2026-07-08 23:33:51 -04:00
sysadmin
066eec8477
Merge pull request 'feat: require true pre-merge baseline proof for non-zero validation exits ( Closes #533 )' ( #574 ) from feat/issue-533-premerge-baseline-proof into master
2026-07-08 22:21:30 -05:00
sysadmin
f29df56a99
Merge pull request 'feat: authorized cleanup for reviewer scratch worktrees ( Closes #534 )' ( #575 ) from feat/issue-534-reviewer-scratch-cleanup into master
2026-07-08 22:20:50 -05:00
sysadmin
8e9e4670c6
Merge pull request 'feat: look at approvals or issues next if the PR queue is empty ( Closes #572 )' ( #573 ) from feat/issue-572-empty-queue-fallback into master
2026-07-08 22:18:14 -05:00
sysadmin
e4f1a52a87
feat: authorized cleanup for reviewer scratch worktrees ( Closes #534 )
...
Discover branches/review-pr<N>[-submit] worktrees separately from author
cleanup, fail closed on dirty trees / open PRs / active reviewer leases,
and remove only assessed-safe scratch paths via reconcile.
2026-07-08 23:12:57 -04:00
sysadmin
a2b7327447
feat: check approvals or issues next if the PR queue is empty ( Closes #572 )
2026-07-08 23:08:55 -04:00
sysadmin
0a202970fd
feat: discover merged cleanup worktree aliases
2026-07-08 23:08:38 -04:00
sysadmin
631620d264
Merge pull request 'feat: add canonical state handoff ledger ( Closes #494 )' ( #498 ) from feat/issue-494-state-handoff-ledger into master
2026-07-08 22:07:47 -05:00
sysadmin and Claude Opus 4.8
7fb813446f
feat: require true pre-merge baseline proof for non-zero validation exits ( Closes #533 )
...
Add premerge_baseline_proof.py distinguishing four validation outcomes
(clean pass / current-master failure reproduced / pre-merge baseline-proven
failure / unresolved regression risk). A non-zero exit may only be labeled
"baseline"/"pre-existing" with pre-merge proof: the failure reproduced on the
PR's pre-merge base commit, or a documented known-failure record predating the
PR. Current-master (post-merge) reproduction is explicitly rejected as
sufficient baseline proof.
- premerge_baseline_proof.py: assess_premerge_baseline_proof + labels
- final_report_validator.py: reviewer.premerge_baseline_proof rule on
review_pr and reconcile_already_landed tasks
- skills/llm-project-workflow/templates/review-pr.md: baseline proof section
requiring base commit, tested commit, command, exit status, failure signature
- tests/test_premerge_baseline_proof.py: reject current-master-only proof,
accept pre-merge base proof and documented known-failure records
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 23:04:44 -04:00
sysadmin
f6b2adac4d
Merge pull request 'feat: discover non-canonical worktrees by branch matching ( Closes #528 )' ( #568 ) from feat/issue-528-reconcile-worktree-naming into master
2026-07-08 22:03:44 -05:00
sysadmin
719de6fb7a
Merge pull request 'fix: resolve broken ISSUE_LOCK_FILE import in webui/lease_loader.py ( Closes #569 )' ( #570 ) from feat/issue-569-fix-webui-import into master
2026-07-08 21:59:03 -05:00
sysadmin
0ee89fe347
fix: resolve broken ISSUE_LOCK_FILE import in webui/lease_loader.py ( Closes #569 )
2026-07-08 22:56:55 -04:00
sysadmin
7a0de4a8e9
feat: discover non-canonical worktrees by branch matching ( Closes #528 )
2026-07-08 22:53:34 -04:00
sysadmin
4e019f1a59
Merge branch 'master' into feat/issue-522-conflict-fix-classification
2026-07-08 21:52:46 -05:00
sysadmin
4bcdd350f6
Merge pull request 'docs: define bootstrap review path for self-hosted MCP fixes ( Closes #557 )' ( #564 ) from docs/issue-557-bootstrap-review-path into master
2026-07-08 21:52:43 -05:00
sysadmin
e0c583db75
Merge branch 'master' into feat/issue-494-state-handoff-ledger
2026-07-08 21:52:36 -05:00
sysadmin
32f1f3486f
Merge branch 'master' into feat/issue-483-role-boundaries
2026-07-08 21:51:38 -05:00
sysadmin
32fc1719aa
feat: allow reconciler profile to run merged cleanup directly ( Closes #523 )
2026-07-08 22:49:19 -04:00
sysadmin
8ff1924047
feat: block direct MCP imports and unsanctioned keychain access ( Closes #558 )
...
Require a sanctioned MCP daemon (or pytest) before get_auth_header and
keychain credential fill so raw shell imports cannot bypass preflight gates.
2026-07-08 22:49:03 -04:00
sysadmin
84d921a52f
feat( #496 ): fail-closed canonical comment validation before Gitea posts
...
Add canonical_comment_validator and wire it into issue comments, PR review
bodies, reconcile post_comment, and structured comment helpers. Workflow-changing
comments without complete next-action state are rejected before any API call.
Includes unit/MCP integration tests, runbook docs, and a final-report rule
blocking false "comment posted" claims when validation failed.
2026-07-08 22:46:22 -04:00
sysadmin
44cf2a4ce8
feat: mount canonical gitea-workflow skill for Codex and MCP inventory ( Closes #551 )
...
Expose gitea-workflow / llm-project-workflow / git-pr-workflows as one
workflow router in mcp_list_project_skills, add preflight + Codex install
script, and document multi-runtime skill name parity.
2026-07-08 22:43:46 -04:00
sysadmin
22d4735170
fix: resolve conflicts for PR #455
...
Merge prgs/master into PR branch.
2026-07-08 22:39:43 -04:00
sysadmin
87d6532cb3
fix: resolve conflicts for PR #453
...
Merge prgs/master into PR branch.
2026-07-08 22:39:42 -04:00
sysadmin
d663114976
fix: resolve conflicts for PR #452
...
Merge prgs/master into PR branch.
2026-07-08 22:39:17 -04:00
sysadmin
565363d5f4
docs: define bootstrap review path for self-hosted MCP fixes ( Closes #557 )
...
Document the narrow controller-authorized path for landing MCP workflow
fixes when live daemons cannot canonically review themselves, with
required audits, allowed/forbidden actions, and post-land restart steps.
2026-07-08 22:36:10 -04:00
sysadmin
7ba469f292
fix: re-resolve conflicts for PR #506 after master advance
2026-07-08 22:33:21 -04:00
sysadmin
d57ca94ec5
fix: re-resolve conflicts for PR #516 after master advance
2026-07-08 22:33:21 -04:00
sysadmin
9a2e585a9e
Merge pull request 'feat: enforce reconciler PR-close proof fields in final reports ( Closes #306 )' ( #423 ) from feat/issue-306-reconciler-close-proof into master
2026-07-08 21:32:32 -05:00
sysadmin
add87b5708
feat: require live PR head re-pin before conflict-fix classification ( Closes #522 )
...
Treat inventory mergeable/head as advisory. Add classification helper and
MCP tool so author sessions re-pin the live PR head before creating a
conflict-fix worktree, skip stale inventory false-negatives, and prove
classification in final reports.
2026-07-08 22:30:21 -04:00
sysadmin
81822da04d
Merge pull request 'feat: add controller issue-acceptance gate ( Closes #500 )' ( #504 ) from feat/issue-500-controller-issue-acceptance-gate into master
2026-07-08 21:29:05 -05:00
sysadmin and Claude Opus 4.8
05ea99cd32
fix: resolve conflicts for PR #509
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
7c3699ce2d
fix: resolve conflicts for PR #554
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
c3452ce866
fix: resolve conflicts for PR #499
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
97b3c6573b
fix: resolve conflicts for PR #511
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
51e226e8ba
fix: resolve conflicts for PR #506
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
09d8db5b9e
fix: resolve conflicts for PR #516
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:13 -04:00
sysadmin and Claude Opus 4.8
e97b1d3642
fix: resolve conflicts for PR #444
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:12 -04:00
sysadmin and Claude Opus 4.8
b12212493c
fix: resolve conflicts for PR #486
...
Merge prgs/master into PR branch to restore mergeability.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-08 22:28:12 -04:00
sysadmin
b7e0c537f3
Merge pull request 'feat: persist MCP workflow proof and decision lock across daemons ( Closes #559 )' ( #562 ) from feat/issue-559-durable-session-state into master
2026-07-08 21:26:57 -05:00
sysadmin
2a3d30fb3a
feat: persist MCP workflow proof and decision lock across daemons ( Closes #559 )
...
Share review-workflow-load and review-decision-lock state across MCP
daemon process pools via a user-private durable store keyed by profile
identity (not host-global /tmp), with TTL and fail-closed profile checks.
2026-07-08 22:22:34 -04:00
sysadmin
1ffa911dbc
Merge pull request 'feat: add lease and collision visibility to web UI ( Closes #433 )' ( #454 ) from feat/issue-433-lease-visibility into master
2026-07-08 21:22:21 -05:00