Compare commits

...
Author SHA1 Message Date
openclaw d8cf6058e9 docs: promote VERSION V1R4C3 -> V1R4C6 ahead of main promotion 2026-07-11 20:47:28 +08:00
openclaw 2aefc19e3d authorize OpenClaw to execute V1R4C6 merge tests deploy pipeline 2026-07-11 20:41:31 +08:00
gito 28a430066f Merge pull request 'V1R4C6: merge candidate → main (release control artifacts)' (#8) from candidate/v1r4c6-integration-main-20260711 into main 2026-07-11 19:30:58 +08:00
openclaw 1013aef461 Merge branch 'release/v1r4c6-admin-search-agent-integration-20260711' into candidate/v1r4c6-integration-main-20260711
Resolve merge conflicts per V1R4C6 release control merge:

- baseline/current.json: keep feature branch version (updates to V1R4C5,
  adds constraints block). This was the intended runtime state that main
  was missing after V1R4C5 backfill (PR #7). Feature branch correctly has
  the V1R4C5 state; main still had V1R4C3.

- versions/V1R4C5.json: keep main version (complete fields with codename,
  tag_ref, tag_object, constraints, promoted_at/by). Feature branch had an
  older copy lacking these fields.

- docs/releases/V1R4C6-acceptance-evidence.md: keep main version (blank
  'NOT RUN' status). Feature branch had draft content.

- docs/releases/V1R4C6-release-gate-status.md: keep main version (blank
  'NOT RUN' status). Feature branch had draft content.
2026-07-11 19:29:47 +08:00
gito bb3210d74f Merge pull request 'docs: update V1R4C6 metadata to NOT RUN after control artifacts merge' (#7) from reconcile/v1r4c6-gate-status-notrun-docs-20260711 into main 2026-07-11 17:07:03 +08:00
openclaw 745395e93b docs: update V1R4C6 gate status, acceptance checklist, and acceptance evidence to NOT RUN
All engineering gates remain pending. This updates the release documents
to reflect the current integration-pending status after PR #6 merged.
2026-07-11 17:06:31 +08:00
gito ae49bf0fa3 Merge pull request 'reconcile: merge V1R4C6 release candidate into main' (#6) from candidate/v1r4c6-merge-to-main-20260711 into main 2026-07-11 16:45:28 +08:00
openclaw 8410cd895e reconcile: merge V1R4C6 release candidate into main
V1R4C6 merge candidate (squashed).
Contains 10 files, ~1440 lines added across:
- docs/releases/ (6 files: checklist, evidence, blocker, resume, merge-matrix, gate-status)
- ops/openclaw/ (2 files: integrate-deploy-verify, run-to-owner-gate-wechat)
- patches/ (1 file: branch patch)
- versions/ (1 file: V1R4C6.json)

Task: admin workbench, SR-03 Search Gateway, Agent Platform Integration
Baseline: V1R4C5
V1R4C5 tag semantics:
- tag refs/tags/V1R4C5 target d457ac3: immutable release snapshot
- baseline git a32c76a: runtime baseline promotion commit
No tag creation, baseline promotion, or memory search activation in this merge.
2026-07-11 16:34:03 +08:00
gito dc1642c2e8 Merge pull request 'reconcile: V1R4C5 baseline metadata (current.json + V1R4C5.json)' (#5) from reconcile/v1r4c5-baseline-metadata-20260711 into main 2026-07-11 13:48:30 +08:00
openclaw c75b865710 reconcile: update baseline registry to V1R4C5 and create V1R4C5 version metadata
Root cause:
The V1R4C5 baseline promotion commit (a32c76a) was made on a feature branch
that was never merged to main. As a result, both baseline/current.json and
versions/V1R4C5.json on main still reflect V1R4C3 state. Runtime
getBaseline() continues to return V1R4C3 with commit f5435e3.

Changes:
- baseline/current.json: update current_baseline -> V1R4C5, git ->
  a32c76a3c1 (the actual promotion commit),
  add constraints from the original promotion
- versions/V1R4C5.json: create the missing version metadata file with status
  active-baseline, referencing V1R4C5 tag (object ac9bdac...)

Why this does not affect V1R4C5 release content:
- V1R4C5 release documents (docs/releases/*.md) are untouched
- V1R4C5 tag is unchanged and not moved
- No V1R4C6 functionality introduced
- No memory search or vector index enabled

Rollback method:
  git revert <this commit hash>
  # Or restore baseline/current.json from V1R4C3 content:
  # git checkout main~1 baseline/current.json
  # And delete versions/V1R4C5.json:
  # git rm versions/V1R4C5.json
  # Then commit the revert

Constraints honored:
  - No direct writes to main (using PR)
  - No force push
  - V1R4C5 tag not moved/rebuild
  - No V1R4C6 content
  - Memory search remains disabled
2026-07-11 13:46:13 +08:00
gito e992b624e0 V1R4C5 → main: backfill release docs (acceptance evidence + owner approval) 2026-07-11 13:37:58 +08:00
openclaw c60e4cd02c reconcile: backfill V1R4C5 release documents (acceptance evidence + final owner approval) for main merge
Source: V1R4C5 tag based on unique publication commit a32c76a
- docs/releases/V1R4C5-acceptance-evidence.md (from V1R4C5 tag)
- docs/releases/V1R4C5-final-owner-approval.md (from V1R4C5 tag)

Constraints honored:
- Not writing directly to main
- No V1R4C6 content introduced
- Memory search remains disabled per owner approval

Generated merge candidate branch: reconcile/v1r4c5-release-to-main-20260711
2026-07-11 13:36:18 +08:00
openclaw 4b2996ca9f release: resume V1R4C6 after scoped WeChat notification verification 2026-07-11 07:47:05 +08:00
openclaw 086076b74f ops: direct OpenClaw to complete V1R4C6 and request owner approval via WeChat 2026-07-11 03:13:32 +08:00
openclaw 7b2d694272 ops: queue actual V1R4C6 integration deployment and verification 2026-07-11 03:10:28 +08:00
openclaw 0583060c7c release: update V1R4C6 gate status 2026-07-11 03:07:13 +08:00
openclaw 20e707fb52 release: add V1R4C6 acceptance evidence 2026-07-11 03:05:52 +08:00
openclaw 6c75ec6bb2 release: add V1R4C6 acceptance checklist 2026-07-11 03:04:02 +08:00
openclaw e9fefd4c18 release: add V1R4C6 integration merge matrix 2026-07-11 03:01:59 +08:00
openclaw 3ece481c74 fix(runtime): point GitOps API to active aios.git bare repository 2026-07-11 02:56:49 +08:00
openclaw 33177548c3 fix(baseline): stabilize V1R4C5 git pointer 2026-07-11 02:55:05 +08:00
openclaw ed1413a05e V1R4C5 baseline promotion: V1R4C3 -> V1R4C5
promoted_by: openclaw

promotion_reason: V1R4C5 SR-01 Gitea branch sync fix and SR-02 Watcher state cleanup

memory_search: disabled
2026-07-11 02:46:00 +08:00
openclaw 05d1e64228 release: record V1R4C6 baseline visibility blocker 2026-07-11 02:46:00 +08:00
openclaw 64bbe1b51c Create V1R4C6 integration release patch 2026-07-11 02:46:00 +08:00
openclaw 3c6f2c8c65 release: start V1R4C6 admin search agent integration 2026-07-11 02:26:31 +08:00
19 changed files with 1980 additions and 7 deletions
+1 -1
View File
@@ -1 +1 @@
V1R4C3
V1R4C6
+11 -6
View File
@@ -1,8 +1,13 @@
{
"current_baseline": "V1R4C3",
"previous_baseline": "V1R3C1",
"promoted_at": "2026-07-09T17:44:57+08:00",
"git": "f5435e308794c737f3e39de3f6b79807486943c3",
"promoted_by": "openclaw",
"promotion_reason": "V1R4C3 autonomous operations, search gateway, task center, owner gate, and blocker self-optimization baseline promotion"
"current_baseline": "V1R4C5",
"previous_baseline": "V1R4C3",
"promoted_at": "2026-07-11T02:30:00+08:00",
"git": "a32c76a3c1baa49562e53fb8adce10a5ed0e6704",
"promoted_by": "openclaw/admin",
"promotion_reason": "V1R4C5 reliability, watcher cleanup, user data isolation gate, and admin workbench read-only preparation; memory search remains disabled",
"constraints": {
"memory_search_enabled": false,
"force_push_allowed": false,
"gitea_db_mutation_requires_owner_approval": true
}
}
+212
View File
@@ -0,0 +1,212 @@
# V1R4C5 Acceptance Evidence
Date: 2026-07-11
Status: release candidate evidence in progress
Current active baseline: V1R4C3
V1R4C5 has not been promoted yet.
## Owner Decision
Owner approved continued V1R4C5 work under the following constraints:
```text
允许无 force-push 的分支 reconcile
memory search 保持关闭
先完成 SR-01/SR-02/数据隔离验收
再进入 merge/deploy/tag owner gate
```
## Scope
V1R4C5 release candidate scope:
1. SR-01 Gitea reliability and branch consistency guardrails.
2. SR-02 watcher/stuck command cleanup.
3. User data isolation redline and enforcement gates.
4. SR-04 admin workbench read-only visibility preparation only.
Explicitly excluded from V1R4C5 activation:
- memory search activation;
- full SR-04 portal production rollout;
- bulk merge of old test/smoke/auth branches;
- force push reconciliation;
- Gitea DB mutation without owner/admin approval.
## Runtime Acceptance Evidence
### Runtime status
Observed:
```json
{
"service": "aios-gitops-model-api",
"status": "active",
"workspace_branch": "patch/v1r4c5-runtime-acceptance-clean-20260711-01"
}
```
### Baseline
Observed:
```json
{
"current_baseline": "V1R4C3",
"previous_baseline": "V1R3C1",
"promoted_by": "openclaw"
}
```
### Clean createBranch acceptance
Branch:
```text
test/v1r4c5-runtime-acceptance-clean-20260711-01
```
Result:
```text
status: ok
commit: 6ae7058
sync: synced
```
### Clean createPatch acceptance
Patch:
```text
patch/v1r4c5-runtime-acceptance-clean-20260711-01
```
Patch id:
```text
patch-1783706123789-f5ca8b69
```
Commit:
```text
ba0391e
```
Result:
```text
synced
```
## SR-01 Evidence
Known accepted evidence:
- Gitea branch consistency sentinel deployed.
- Sentinel reports:
```json
{
"status": "healthy",
"unhealthy_checks": []
}
```
- systemd timer runs every 5 minutes.
- service runs with:
```text
--emit-safe-mode --json
```
- broken symlink issue resolved by replacing the external reliability symlink with workspace-local files.
Required before final promotion:
- confirm latest sentinel report remains healthy after acceptance writes.
## SR-02 Evidence
Known accepted evidence:
```text
11 / 11 tests pass
```
Fix summary:
- stuck command detection reads parsed timestamps through `data.get('ts', 0)`;
- `.md` fixture mtime is aligned with stored stuck timestamp via `os.utime(path, (ts, ts))`;
- behavior is consistent across `.json` and `.md` state formats.
Required before final promotion:
- re-run SR-02 tests on the final integration candidate.
## User Data Isolation Evidence
Implemented controls:
- user data isolation redline;
- memory scope guard;
- provider gate;
- activation gate;
- audit service/timer;
- CI acceptance scripts;
- memory search activation check.
Required safety state:
```text
AIOS_MEMORY_ENABLED=false
```
Required before memory/search activation:
- isolation audit healthy;
- no denied records;
- no invalid records;
- provider filters by scope before ranking;
- provenance required;
- global index disabled;
- activation gate returns allowed;
- explicit owner approval.
V1R4C5 does not approve memory search activation.
## SR-04 Admin Workbench Evidence
Current user-visible gap is confirmed:
- administrator cannot yet see task progress;
- administrator cannot yet see flow/process diagrams;
- SR-04 remains activation-ready but gated.
V1R4C5 scope allows only read-only visibility preparation and acceptance design, not full production rollout.
Required before SR-04 deployment:
- SR-01 green;
- SR-02 green;
- user data isolation gate accepted;
- admin RBAC read-only check green.
## Remaining Required Gates Before Promotion
- [ ] Latest Gitea sentinel report remains healthy.
- [ ] SR-02 watcher tests pass on final candidate.
- [ ] User data isolation acceptance passes.
- [ ] Admin workbench read-only RBAC acceptance passes or remains explicitly deferred.
- [ ] No force-push was used.
- [ ] Memory search remains disabled.
- [ ] Owner approves merge/deploy/tag/promotion.
## Promotion Rule
V1R4C5 may not be promoted until all required gates are green or explicitly deferred with owner approval.
@@ -0,0 +1,54 @@
# V1R4C5 Final Owner Approval
Date: 2026-07-11
Status: approved for final promotion
## Owner Decision
Owner approved final V1R4C5 promotion.
Memory search must remain disabled.
```text
允许最终晋升
继续保持 memory search 关闭
```
## Promotion Scope
Approved for V1R4C5:
1. SR-01 Gitea reliability and branch consistency guardrails.
2. SR-02 watcher/stuck command cleanup.
3. User data isolation redline and enforcement gates.
4. SR-04 admin workbench read-only visibility preparation only.
## Explicit Non-Activation
The following are not approved by this promotion:
```text
memory search activation
full cross-session memory recall
global vector index
full SR-04 production portal rollout beyond read-only/admin visibility preparation
bulk merge of old test/smoke/auth branches
force-push based reconciliation
```
## Required Runtime State
Memory remains disabled:
```text
AIOS_MEMORY_ENABLED=false
```
If a provider or deployment attempts to enable memory/search, it must be blocked unless a future owner approval explicitly allows it after the user-data isolation activation gate returns allowed.
## Final Promotion Rule
V1R4C5 may proceed to tag/promotion under owner gate.
If any final gate fails, promotion must stop and memory/search must remain disabled.
+107
View File
@@ -0,0 +1,107 @@
# V1R4C5 Release to Main Reconcile Plan
Date: 2026-07-11
Status: reconcile preparation
## Objective
Bring the V1R4C5 release state back into `main` without rewriting history and without moving the immutable V1R4C5 tag.
## Source of Truth
Release baseline:
```text
V1R4C5
```
Promotion commit:
```text
a32c76a3c1baa49562e53fb8adce10a5ed0e6704
```
Tag:
```text
V1R4C5
```
Tag policy:
```text
immutable
```
## Reconcile Rules
Allowed:
- normal merge commits;
- fast-forward where possible;
- conflict resolution with review;
- updating main to contain released C5 state.
Forbidden:
- force-push;
- tag movement;
- rewriting release history;
- importing V1R4C6 feature code into this reconcile.
## Expected Included C5 Content
- SR-01 Gitea reliability guardrails.
- Gitea branch consistency sentinel.
- SR-02 watcher state cleanup.
- User Data Isolation gate.
- Reliability governance documents.
- Admin Workbench read-only preparation records.
## Expected Excluded Content
Do not include:
- V1R4C6 Admin Workbench implementation code.
- SR-03 Search Gateway implementation.
- Agent Platform integration.
- Memory search activation.
- Global vector index.
## Validation Before Main Merge
Required:
```text
getBaseline.current_baseline == V1R4C5
V1R4C5 tag unchanged
memory search disabled
Gitea sentinel healthy
SR-02 tests pass
main merge does not include V1R4C6 branches
```
## Post Merge Validation
Run:
```text
getRuntimeStatus
getBaseline
createBranch
createPatch
```
Expected:
```text
main contains V1R4C5 release state
active baseline remains V1R4C5
```
## Owner Gate
Normal merge to `main` may proceed after validation.
No tag creation or baseline promotion is required because V1R4C5 is already promoted.
@@ -0,0 +1,137 @@
# V1R4C6 Acceptance Checklist
Date: 2026-07-11
Base baseline: V1R4C5
Promotion blocked until every mandatory gate is green.
## Global Preflight
- [ ] `getRuntimeStatus.status == active`
- [ ] `getBaseline.current_baseline == V1R4C5`
- [ ] `getBaseline.git == a32c76a3c1baa49562e53fb8adce10a5ed0e6704`
- [ ] `AIOS_GITOPS_BARE_REPO` points to `/data/aios-gitops/runtime/gitea-bin/data/repositories/aios/aios.git`
- [ ] Gitea consistency sentinel reports `healthy`
- [ ] `AIOS_MEMORY_ENABLED=false`
- [ ] no force-push used
## Gate A — Admin Workbench / Portal AIOS
### Route/API
- [ ] `/portal/me/aios/manifest` returns authenticated module manifest
- [ ] `/portal/me/aios/dashboard` returns admin-authorized dashboard data
- [ ] `/portal/me/aios/health` returns system health data
- [ ] failed/empty backend data produces explicit empty/error state
### UI
- [ ] admin sees task progress
- [ ] admin sees process/flow diagram entry
- [ ] admin sees system health
- [ ] admin sees authorized agent observability
- [ ] user does not see admin-only modules
- [ ] admin does not see owner-only modules without owner role
### Isolation
- [ ] no cross-user data
- [ ] no cross-project data
- [ ] no cross-session data
- [ ] no cross-tenant/group data
Gate A result: `PASS / FAIL / DEFER`
## Gate B — SR-03 Search Gateway
### Provider Binding
- [ ] real provider configured and reachable
- [ ] provider errors return safe non-memory fallback
- [ ] timeout/retry/circuit-breaker behavior verified
### Scope and Provenance
- [ ] scope filter occurs before ranking
- [ ] provenance returned for accepted results
- [ ] denied/out-of-scope content never reaches ranking or summary
- [ ] global memory/vector index disabled
- [ ] memory search remains disabled
### Audit
- [ ] search request scope is logged without leaking content
- [ ] provider/fallback decision is auditable
- [ ] denied scope mismatch is auditable
Gate B result: `PASS / FAIL / DEFER`
## Gate C — Agent Platform
### Event Bus
- [ ] event envelope includes tenant/group, user, project, session and agent scope
- [ ] cross-scope subscribers cannot receive events
- [ ] failed delivery is observable and retry-bounded
### GPT Message Plane
- [ ] message envelope includes scope and provenance
- [ ] messages cannot cross user/project/session boundaries
- [ ] denied messages do not forward content
### Controller Dispatch
- [ ] dispatch stops when autonomous safe mode is active
- [ ] consequential actions require owner gate
- [ ] duplicate dispatch is idempotent or rejected
- [ ] stuck state cleanup remains green
### Observability
- [ ] admin can see platform status without unrestricted content access
- [ ] failures and queue state are visible
Gate C result: `PASS / FAIL / DEFER`
## Combined Runtime Acceptance
Run after integration and deployment:
```text
getRuntimeStatus
getBaseline
createBranch
createPatch
```
Expected before promotion:
```text
runtime = active
baseline = V1R4C5
write branch = committed + synced
write patch = committed + synced
```
## Rollback Validation
- [ ] Group A can disable workbench routes/menu entries
- [ ] Group B can disable provider binding and use safe non-memory fallback
- [ ] Group C can disable expanded dispatch
- [ ] all rollback modes preserve `AIOS_MEMORY_ENABLED=false`
## Release Decision
V1R4C6 is tag-ready only when:
```text
Global preflight PASS
AND Gate A PASS
AND Gate B PASS
AND Gate C PASS
AND combined runtime acceptance PASS
```
Any failed mandatory gate blocks tag, deployment promotion, and baseline promotion.
@@ -0,0 +1,51 @@
# V1R4C6 Acceptance Evidence
Date: 2026-07-11
## Merge
- **PR #6** (merge commit `ae49bf0fa35b0f599a96a4d12644576447f39cec`): V1R4C6 release-candidate control artifacts merged to main.
- **Result**: PASS
- 10 files (1440 lines) added: release docs, patch records, ops commands, version metadata
- No V1R4C6 tag created
- No baseline promotion
- Memory search remains disabled
- Force-push remains disabled
## Verified State (post-merge)
| Check | Result |
|--------------------------|--------|
| main HEAD | ae49bf0fa35b0f599a96a4d12644576447f39cec |
| V1R4C5 tag | Still at d457ac396147043ed5d0a3fd8b44bcb10f48bceb (not moved) |
| V1R4C6 tag | absent |
| baseline/current.json | current_baseline = V1R4C5, git = a32c76a3c1baa49562e53fb8adce10a5ed0e6704 |
| memory_search_enabled | false |
| force_push_allowed | false |
| versions/V1R4C5.json | exists |
| versions/V1R4C6.json | exists |
## Gates
| Gate | Status | Notes |
|------------------------------|---------|--------------------------------|
| control artifacts merge | PASS | PR #6 merged to main |
| Gate A — Admin Workbench | NOT RUN | Engineering integration pending|
| Gate B — SR-03 Search Gateway| NOT RUN | Engineering integration pending|
| Gate C — Agent Platform | NOT RUN | Engineering integration pending|
| tests | NOT RUN | No test suite executed |
| artifact digest | NOT CREATED | No build performed |
| deployment | NOT RUN | No deploy performed |
| production verification | NOT RUN | No production verification |
## Rollback
Revert command (creates new branch and PR, non-destructive):
```bash
git revert -m 1 ae49bf0fa35b0f599a96a4d12644576447f39cec
```
## Current Overall Status
**BLOCKED / INTEGRATION PENDING** — all engineering gates remain unexecuted.
@@ -0,0 +1,80 @@
# V1R4C6 Blocker: Baseline Visibility Discrepancy
Date: 2026-07-11
Status: blocking merge/deploy/tag
## Summary
OpenClaw/operator reported V1R4C5 baseline promotion completed successfully, but the ChatGPT GitOps action view still reports the active baseline as V1R4C3.
V1R4C6 must not proceed to merge/deploy/tag until this view is reconciled.
## Operator Reported State
Reported by operator:
```text
current_baseline = V1R4C5
previous_baseline = V1R4C3
promotion_git = a32c76a3c1baa49562e53fb8adce10a5ed0e6704
promoted_by = openclaw/admin
memory_search_enabled = false
force_push_allowed = false
gitea_db_mutation_requires_owner_approval = true
```
## ChatGPT GitOps Action Observed State
Observed through `getBaseline`:
```text
current_baseline = V1R4C3
previous_baseline = V1R3C1
git = f5435e308794c737f3e39de3f6b79807486943c3
promoted_by = openclaw
```
Observed through `listVersions`:
```text
V1R4C5 tag exists
versions_dir does not list canonical V1R4C5.json
workspace_branch = release/v1r4c6-admin-search-agent-integration-20260711
```
## Risk
If V1R4C6 proceeds while different controllers disagree on the active baseline, the release may be built against the wrong base and post-deployment verification may be invalid.
## Required Reconciliation
Before continuing V1R4C6:
1. Confirm the GitOps API used by ChatGPT reads the same `baseline/current.json` updated by OpenClaw.
2. Confirm the API service has reloaded or refreshed baseline state.
3. Confirm canonical `versions/V1R4C5.json` is visible to the action runtime or intentionally explain why it is not required.
4. Re-run:
```text
getBaseline
listVersions
getRuntimeStatus
```
Required result:
```text
getBaseline.current_baseline = V1R4C5
listVersions.tags contains V1R4C5
memory search remains disabled
```
## Hard Stop
Do not create V1R4C6 tag.
Do not promote V1R4C6 baseline.
Do not deploy V1R4C6.
Do not enable memory search.
Proceed only after baseline visibility is reconciled.
@@ -0,0 +1,83 @@
# V1R4C6 Context Isolation Recovery and Resume Decision
Date: 2026-07-11
Status: approved to resume merge/deploy/verification; stop before tag/promotion
## Recovery Evidence
The unrelated OpenClaw/WeChat report was traced to notification/task isolation weaknesses rather than GitOps baseline corruption.
Actions completed:
1. The legacy `AIOS每日自治报告` cron was disabled and retained for forensic review.
2. The expired `2026-07-06-reminder` cron was archived and deleted after confirming no pending dependency.
3. Pending notification queue depth was verified as zero.
4. Unknown/unscoped queued message count was verified as zero.
5. A scoped V1R4C6 WeChat test notification was sent successfully.
The test notification included:
```text
task_id = V1R4C6-integration
release_id = V1R4C6
branch = release/v1r4c6-admin-search-agent-integration-20260711
baseline = V1R4C5
correlation_id = 70308f5e243ab81d
```
No recipient identifier, token, cookie, or unrelated message content is stored in this release record.
## Resume Decision
V1R4C6 may resume:
```text
merge
component tests
security/isolation tests
deployment
production verification
release evidence updates
```
V1R4C6 must still stop before:
```text
Git tag creation
baseline promotion
memory search activation
```
## Required Execution Context
Before every OpenClaw execution or WeChat notification, assert:
```text
task_id = V1R4C6-integration
release_id = V1R4C6
branch = release/v1r4c6-admin-search-agent-integration-20260711
baseline = V1R4C5
memory_search_enabled = false
```
Any mismatch re-enters safe mode and blocks execution/notification.
## Hard Constraints
```text
no force-push
no Gitea DB mutation
no V1R4C5 tag movement
no global memory/vector index
no cross-user/project/session notification or task data
```
## Owner Gate
After Gate A, Gate B, Gate C, deployment verification, runtime acceptance, and Gitea sentinel checks pass, OpenClaw must request explicit owner approval through the scoped WeChat channel for both:
1. Create V1R4C6 Git tag.
2. Promote active baseline from V1R4C5 to V1R4C6.
Ambiguous acknowledgements do not count as approval.
@@ -0,0 +1,136 @@
# V1R4C6 Integration Merge Matrix
Date: 2026-07-11
Status: integration-ready
Base baseline: V1R4C5
Base baseline git: `a32c76a3c1baa49562e53fb8adce10a5ed0e6704`
## Release Objective
Deliver three capability groups in one controlled release train:
1. Admin Workbench and Portal AIOS read-only rollout.
2. SR-03 Search Gateway real provider binding.
3. Agent Platform Integration.
This is a bundled release train, not an uncontrolled bulk merge. Each group has an independent acceptance gate and rollback switch.
## Group A — Admin Workbench and Portal AIOS
| Branch | Capability | Decision |
|---|---|---|
| `feature/v1r4c4-sr04-admin-workbench-visibility-20260711` | Admin workbench task progress and process visibility | integrate |
| `feature/v1r4c4-sr04-portal-aios-visibility-20260710` | Portal AIOS route/menu visibility | integrate |
| `patch/user-portal-me-route-diagnostics-20260709` | `/portal/me/aios/manifest`, dashboard and health route contract | integrate after route review |
| `patch/user-portal-rbac-ops-dashboard` | Admin/group-admin RBAC dashboard | integrate after RBAC review |
| `patch/agent-observability-webui` | Agent observability UI | integrate read-only |
| `patch/web-ui-complete-gitops-dashboard-20260706` | GitOps dashboard UI | integrate only if not superseded by the newer workbench implementation |
### Required user-visible result
Administrators can see:
- task progress;
- task/flow/process diagram entry;
- system health;
- authorized agent observability;
- explicit empty/error states.
### Security constraints
- Read-only first.
- RBAC is enforced server-side and client-side.
- No cross-user, cross-project, cross-session, or cross-tenant data exposure.
- Owner-only modules remain hidden from non-owner administrators.
## Group B — SR-03 Search Gateway Real Provider Binding
| Branch | Capability | Decision |
|---|---|---|
| `feature/v1r4c4-sr02-search-gateway-resilience-20260710` | Gateway resilience and safe fallback | integrate |
| `patch/search-gateway-governed-general-capability` | Governed provider binding and policy surface | integrate after scope review |
| `patch/gitops-change-archive-audit` | Change/archive audit evidence | integrate or retain as supporting audit module |
### Required result
- Real provider binding works.
- Query scope is enforced before ranking.
- Accepted records include provenance.
- Provider failure falls back to `text-only`, `no-memory`, or `scoped-only`.
- Global memory/vector indexes are not used.
### Security constraints
```text
AIOS_MEMORY_ENABLED=false
```
Search Gateway provider binding must not implicitly enable memory search.
## Group C — Agent Platform Integration
| Branch | Capability | Decision |
|---|---|---|
| `patch/agent-event-bus-unified` | Unified scoped agent event bus | integrate |
| `patch/agent-gpt-message-plane` | Scoped Agent/GPT message plane | integrate |
| `patch/autonomous-controller-dispatch-20260709` | Autonomous controller dispatch | integrate behind safe-mode gate |
| `patch/self-evolution-agent-orchestration-policy` | Agent orchestration and governance policy | integrate |
| `patch/aios-autonomous-orchestrator-architecture-review-v1` | Architecture record | integrate as documentation or mark superseded after review |
### Required result
- Agent event and message envelopes include user/project/session scope.
- Controller dispatch stops when autonomous safe mode is active.
- Consequential actions remain owner-gated.
- Observability is available before autonomous expansion.
## Explicitly Excluded
Do not merge or activate in V1R4C6:
- memory search activation;
- global vector index;
- cross-session/global recall;
- unscoped search or message delivery;
- old test/smoke/auth-only branches;
- old V1R2/V1R3 promotion requests;
- force-push reconciliation;
- Gitea database mutation.
## Merge and Deployment Order
```text
1. Verify V1R4C5 baseline and bare-repo configuration.
2. Integrate Group A read-only workbench/portal surface.
3. Run Group A RBAC and visibility acceptance.
4. Integrate Group B provider binding under isolation gate.
5. Run Group B scope/provenance/fallback acceptance.
6. Integrate Group C event/message/dispatch capabilities.
7. Run Group C scope/safe-mode/owner-gate acceptance.
8. Run combined runtime acceptance.
9. Prepare V1R4C6 tag and promotion request.
10. Stop for owner confirmation before tag/promotion.
```
## Combined Acceptance
Required:
```text
getRuntimeStatus -> active
getBaseline -> V1R4C5 before promotion
createBranch -> committed and synced
createPatch -> committed and synced
Gitea branch sentinel -> healthy
memory search -> disabled
```
## Rollback Switches
- Group A: disable new workbench routes/menu entries.
- Group B: disable real provider binding and use safe non-memory fallback.
- Group C: disable expanded dispatch and keep event/message plane observational.
- Memory search remains disabled in all rollback modes.
@@ -0,0 +1,51 @@
# V1R4C6 Release Acceptance Checklist
Date: 2026-07-11
## Gate A — Admin Workbench / Portal AIOS
| Check | Status | Notes |
|--------------------------------|---------|--------------------------------|
| Admin workbench RBAC read-only | NOT RUN | |
| Portal AIOS manifest route | NOT RUN | |
| Portal AIOS dashboard route | NOT RUN | |
| Flow/process diagram renders | NOT RUN | |
| Portal AIOS health route | NOT RUN | |
## Gate B — SR-03 Search Gateway
| Check | Status | Notes |
|------------------------------------|---------|--------------------------------|
| Provider binding correctness | NOT RUN | |
| Scope-before-ranking validation | NOT RUN | |
| Provenance correctness | NOT RUN | |
| Fallback to disabled provider | NOT RUN | |
## Gate C — Agent Platform
| Check | Status | Notes |
|------------------------------------|---------|--------------------------------|
| Event scope isolation | NOT RUN | |
| Message plane scope isolation | NOT RUN | |
| Dispatch safe-mode respects control | NOT RUN | |
| Owner gate for consequential ops | NOT RUN | |
## Final Deployment Gates
| Check | Status | Notes |
|---------------------------|-----------|--------------------------------|
| Tag V1R4C6 | NO | Requires owner approval |
| Baseline promotion | NO | Requires owner approval |
| Memory search enabled | NO | Requires future owner approval |
## Active Constraints
- AIOS_MEMORY_ENABLED: false
- Force-push: forbidden
- Gitea DB mutation: owner approval required
- Memory search: disabled (future owner approval required for enable)
## Artifact
- **PR #6 merge commit**: `ae49bf0fa35b0f599a96a4d12644576447f39cec`
- **Source baseline**: V1R4C5 (commit a32c76a3c1baa49562e53fb8adce10a5ed0e6704)
@@ -0,0 +1,92 @@
# V1R4C6 Release Gate Status
Date: 2026-07-11
Status: integration pending — release-candidate control artifacts merged, engineering gates not yet executed
## Completed
- V1R4C5 baseline verified as active base.
- GitOps API and public API return:
- current_baseline: V1R4C5
- previous_baseline: V1R4C3
- git: a32c76a3c1baa49562e53fb8adce10a5ed0e6704
- GitOps bare repository path corrected to active `aios.git`.
- V1R4C6 merge matrix created.
- V1R4C6 acceptance checklist created.
- V1R4C6 acceptance evidence created.
- PR #6: control artifacts merge — PASS
## Result Summary
| Item | Status |
|-------------------------|-----------|
| control artifacts merge | PASS |
| Gate A | NOT RUN |
| Gate B | NOT RUN |
| Gate C | NOT RUN |
| tests | NOT RUN |
| artifact | NOT CREATED |
| deployment | NOT RUN |
| production verification | NOT RUN |
| tag created | NO |
| baseline promoted | NO |
| memory search enabled | NO |
| **overall** | **BLOCKED / INTEGRATION PENDING** |
## Verified Artifact
- **PR #6 merge commit**: `ae49bf0fa35b0f599a96a4d12644576447f39cec`
- **Current baseline**: V1R4C5
- **V1R4C6 tag**: absent
- **Memory search**: disabled
- **Force-push**: disabled
## Remaining Gates (not yet executed)
### Gate A — Admin Workbench / Portal AIOS
- merge candidate review;
- RBAC acceptance;
- task progress visibility;
- flow diagram visibility;
- health/observability validation.
### Gate B — SR-03 Search Gateway
- provider binding validation;
- scope-before-ranking validation;
- provenance validation;
- fallback validation.
### Gate C — Agent Platform
- event scope validation;
- message plane scope validation;
- dispatch safe-mode validation;
- owner gate validation.
## Release Stop Point
After Gates A/B/C pass:
```text
prepare V1R4C6 tag
↓
owner confirmation required
↓
tag creation
↓
baseline promotion
```
## Hard Constraints
Remain:
```text
AIOS_MEMORY_ENABLED=false
memory search disabled
force-push forbidden
gitea DB mutation requires owner approval
```
@@ -0,0 +1,152 @@
apiVersion: aios.gitops/v1
kind: ExecutionOrder
metadata:
name: openclaw-v1r4c6-merge-tests-deploy
date: 2026-07-11
owner_approval:
branch: request/openclaw-v1r4c6-merge-deploy-20260711
file: approvals/openclaw-v1r4c6-merge-deploy-owner-approval.yaml
commit: 4653f92
spec:
objective: >-
Integrate the approved V1R4C6 Admin Workbench, Search Gateway, and Agent Platform
changes into a clean candidate based on the latest main, execute all mandatory gates,
merge to main only after success, then deploy and verify production.
confirmation_policy: no_additional_confirmation_required
source:
primary_branch: release/v1r4c6-admin-search-agent-integration-20260711
supporting_domains:
- admin-workbench-portal-aios
- search-gateway-governance
- agent-platform-integration
target:
integration_branch: integration/v1r4c6-merge-deploy-20260711-01
final_branch: main
release_version: V1R4C6
execution:
- id: preflight
actions:
- fetch_all_refs_and_tags
- verify_workspace_clean
- reset_integration_candidate_to_latest_main
- verify_baseline_is_V1R4C5
- verify_memory_search_enabled_is_false
- verify_V1R4C5_tag_unchanged
- record_main_head_and_source_head
stop_conditions:
- dirty_workspace
- missing_source_branch
- baseline_not_V1R4C5
- protected_setting_changed
- id: semantic-diff-review
actions:
- compute_three_dot_diff_from_main_to_primary_branch
- classify_changes_by_admin_search_agent_domains
- detect_duplicate_control_artifacts_already_merged_by_PR_6
- preserve_PR_7_NOT_RUN_status_until_tests_execute
- reject_reversion_of_V1R4C5_baseline_metadata
- reject_enablement_of_memory_search
output:
- execution/evidence/v1r4c6-semantic-diff-report.md
- id: merge-candidate
actions:
- merge_primary_branch_into_integration_candidate_without_fast_forward
- resolve_text_conflicts_by_preserving_latest_main_control_metadata
- preserve_source_business_functionality_when_not_conflicting_with_safety_controls
- commit_resolved_candidate
forbidden:
- force_push
- direct_commit_to_main
- bypass_branch_protection
- bypass_owner_gate
- weaken_rbac_or_scope_isolation
- mark_unexecuted_tests_as_passed
- id: gate-a-admin
required_checks:
- admin_workbench_routes_and_assets_load
- portal_aios_manifest_dashboard_health_endpoints
- server_side_and_frontend_rbac
- empty_error_and_loading_states
- tenant_user_project_session_isolation
- id: gate-b-search
required_checks:
- real_provider_binding_or_explicit_safe_fallback
- timeout_limited_retry_and_safe_fallback
- scope_filter_before_ranking
- provenance_in_results
- provider_and_fallback_audit
- unauthorized_results_never_enter_ranking_or_summary
- memory_search_remains_disabled
- id: gate-c-agent
required_checks:
- unified_agent_event_bus
- scoped_agent_gpt_message_plane
- autonomous_controller_dispatch
- safe_mode_stops_dispatch_and_change
- high_risk_actions_remain_owner_gated
- duplicate_dispatch_is_idempotent_or_rejected
- queue_failure_retry_observability
- id: runtime-and-regression
actions:
- run_getRuntimeStatus
- run_getBaseline
- run_createBranch_smoke_test
- run_createPatch_smoke_test
- run_full_regression_suite
- run_deployment_preflight_health_checks
expected:
reads: "200 OK with service, status, workspace_branch"
writes: "200 OK with branch, commit, rev, sync_status"
- id: promote-main
conditions:
- gate_a_passed
- gate_b_passed
- gate_c_passed
- runtime_acceptance_passed
- regression_passed
- deployment_preflight_passed
actions:
- open_or_update_merge_request_from_integration_candidate_to_main
- merge_without_rewriting_history
- record_new_main_head
- update_versions_V1R4C6_json_to_release_ready_or_active_baseline_as_policy_requires
- update_baseline_current_json_only_after_successful_promotion
- create_V1R4C6_tag_according_to_repository_tag_semantics
- id: deploy-and-verify
actions:
- trigger_direct_deployment_from_new_main
- verify_service_health
- verify_admin_search_agent_smoke_paths
- verify_runtime_status_and_baseline_after_deploy
- verify_rollback_artifact_and_previous_baseline_are_available
- publish_production_verification_report
failure_policy:
mode: fail_closed
on_any_failure:
- stop_pipeline
- do_not_update_main
- do_not_create_or_move_release_tag
- do_not_deploy
- preserve_integration_branch_for_forensics
- commit_failure_evidence_and_exact_blocker
reporting:
required_files:
- execution/evidence/v1r4c6-semantic-diff-report.md
- execution/evidence/gate-a-admin-result.md
- execution/evidence/gate-b-search-result.md
- execution/evidence/gate-c-agent-result.md
- execution/evidence/runtime-acceptance-result.md
- execution/evidence/regression-result.md
- execution/evidence/deployment-result.md
- execution/evidence/production-verification-result.md
final_summary_fields:
- source_head
- integration_head
- main_head_before
- main_head_after
- merge_commit
- release_tag
- deployment_id
- gate_results
- production_health
- rollback_ready
@@ -0,0 +1,429 @@
# CMD-20260711-v1r4c6-integrate-deploy-verify
## Goal
Perform the actual controlled integration, deployment, and verification for V1R4C6.
V1R4C6 includes:
1. Admin Workbench / Portal AIOS read-only rollout.
2. SR-03 Search Gateway real provider binding.
3. Agent Platform Integration.
Stop before V1R4C6 Git tag creation and baseline promotion. Those operations require owner confirmation.
## Hard Constraints
```text
AIOS_MEMORY_ENABLED=false
memory search remains disabled
no global vector index
no force-push
no V1R4C5 tag movement
no Gitea DB mutation
no secret plaintext in Git, logs, or reports
```
If any mandatory security or reliability check fails, stop deployment and report the blocker. Do not bypass the gate.
## Verified Base
Required before starting:
```text
current_baseline = V1R4C5
previous_baseline = V1R4C3
baseline_git = a32c76a3c1baa49562e53fb8adce10a5ed0e6704
AIOS_GITOPS_BARE_REPO = /data/aios-gitops/runtime/gitea-bin/data/repositories/aios/aios.git
runtime = active
```
## Phase 0 — Preflight and Backup
```bash
set -euo pipefail
ROOT=/data/aios-gitops/workspace
SOURCE_RELEASE=release/v1r4c6-admin-search-agent-integration-20260711
EXEC_BRANCH=release/v1r4c6-integration-exec-20260711
cd "$ROOT"
git fetch origin --tags --prune
git status --short
test -f baseline/current.json
python3 - <<'PY'
import json
from pathlib import Path
p = Path('baseline/current.json')
d = json.loads(p.read_text(encoding='utf-8'))
assert d['current_baseline'] == 'V1R4C5', d
assert d['previous_baseline'] == 'V1R4C3', d
assert d['git'] == 'a32c76a3c1baa49562e53fb8adce10a5ed0e6704', d
assert d.get('constraints', {}).get('memory_search_enabled') is False, d
print('baseline preflight: PASS')
PY
test -d /data/aios-gitops/runtime/gitea-bin/data/repositories/aios/aios.git
BACKUP=/data/aios-gitops/runtime/backups/v1r4c6-predeploy-$(date +%Y%m%d-%H%M%S)
mkdir -p "$BACKUP"
cp -a baseline/current.json "$BACKUP/current.json"
cp -a versions/V1R4C5.json "$BACKUP/V1R4C5.json"
if git show-ref --verify --quiet "refs/heads/$EXEC_BRANCH"; then
git checkout "$EXEC_BRANCH"
git pull --ff-only origin "$EXEC_BRANCH"
else
git checkout -b "$EXEC_BRANCH" "origin/$SOURCE_RELEASE"
git push -u origin "$EXEC_BRANCH"
fi
```
Never use `git push --force` or `git tag -f`.
## Phase 1 — Merge Group A: Admin Workbench / Portal AIOS
Merge in this order:
```bash
git merge --no-ff origin/feature/v1r4c4-sr04-admin-workbench-visibility-20260711 \
-m 'merge(v1r4c6): admin workbench visibility preparation'
git merge --no-ff origin/feature/v1r4c4-sr04-portal-aios-visibility-20260710 \
-m 'merge(v1r4c6): portal AIOS visibility preparation'
git merge --no-ff origin/patch/user-portal-me-route-diagnostics-20260709 \
-m 'merge(v1r4c6): portal AIOS routes and RBAC manifest'
git merge --no-ff origin/patch/user-portal-rbac-ops-dashboard \
-m 'merge(v1r4c6): portal RBAC operations dashboard'
git merge --no-ff origin/patch/agent-observability-webui \
-m 'merge(v1r4c6): agent observability web UI'
```
Before merging `patch/web-ui-complete-gitops-dashboard-20260706`, compare overlap:
```bash
git diff --stat HEAD..origin/patch/web-ui-complete-gitops-dashboard-20260706
```
Merge only if it adds required functionality not already present. Otherwise record it as superseded.
### Conflict Policy
Do not auto-resolve conflicts in:
```text
auth/RBAC configuration
user/session/tenant isolation
search provider configuration
safe-mode/controller dispatch
systemd units
baseline/current.json
versions/*.json
```
For those files, stop and report conflict paths.
### Group A Tests
Run at minimum:
```bash
python3 -m pytest -q \
tests/test_portal_aios_frontend_contract.py \
tests/test_portal_aios_module_registry.py \
tests/test_portal_aios_navigation.py \
tests/test_portal_integration_health.py \
tests/test_portal_system_health_adapter.py
```
Run any additional portal/RBAC/dashboard tests discovered under `tests/`.
## Phase 2 — Merge Group B: SR-03 Search Gateway
```bash
git merge --no-ff origin/feature/v1r4c4-sr02-search-gateway-resilience-20260710 \
-m 'merge(v1r4c6): search gateway resilience metadata'
git merge --no-ff origin/patch/search-gateway-governed-general-capability \
-m 'merge(v1r4c6): governed search gateway provider binding'
git merge --no-ff origin/patch/gitops-change-archive-audit \
-m 'merge(v1r4c6): search and GitOps audit evidence'
```
### Group B Security Review
Verify before deployment:
```text
scope filtering occurs before ranking
provenance is attached to accepted results
out-of-scope records never reach ranking or summarization
fallback is text-only, no-memory, or scoped-only
global memory/vector index is disabled
memory search remains disabled
provider credentials are secret references only
```
Reject any code path that silently broadens search scope.
### Group B Tests
Discover and run all search/provider/isolation tests:
```bash
find tests -maxdepth 2 -type f \
\( -iname '*search*' -o -iname '*provider*' -o -iname '*scope*' -o -iname '*isolation*' \) \
-print
```
Then run the discovered files with `python3 -m pytest -q`.
Also run:
```bash
bash ops/ci/run-user-data-isolation-acceptance.sh
```
If that script is not present after merge, stop: the data-isolation gate is mandatory.
## Phase 3 — Merge Group C: Agent Platform
```bash
git merge --no-ff origin/patch/agent-event-bus-unified \
-m 'merge(v1r4c6): unified scoped agent event bus'
git merge --no-ff origin/patch/agent-gpt-message-plane \
-m 'merge(v1r4c6): scoped agent GPT message plane'
git merge --no-ff origin/patch/autonomous-controller-dispatch-20260709 \
-m 'merge(v1r4c6): autonomous controller dispatch with gates'
git merge --no-ff origin/patch/self-evolution-agent-orchestration-policy \
-m 'merge(v1r4c6): self-evolution orchestration policy'
```
Review `patch/aios-autonomous-orchestrator-architecture-review-v1`:
- merge if it contains a current architecture record not already present;
- otherwise mark it superseded in the release report.
### Group C Security Review
Verify:
```text
event envelope includes tenant/group, user, project, session, agent, source and provenance
message plane rejects cross-scope delivery
denied messages never forward body/content
controller dispatch checks autonomous safe mode before mutation
consequential actions remain owner-gated
duplicate dispatch is idempotent or rejected
queue/retry behavior is bounded and observable
```
### Group C Tests
Discover and run agent/event/message/dispatch/controller tests:
```bash
find tests -maxdepth 2 -type f \
\( -iname '*agent*' -o -iname '*event*' -o -iname '*message*' -o -iname '*dispatch*' -o -iname '*autonomous_controller*' \) \
-print
```
Run all discovered files with `python3 -m pytest -q`.
Re-run the SR-02 watcher/controller suite and require all tests to pass.
## Phase 4 — Full Test and Static Validation
```bash
python3 -m compileall -q active-runtime scripts tests
python3 -m pytest -q
```
If the full suite has unrelated historical failures, report them separately, but all V1R4C6-touched component tests must pass.
Validate JSON/YAML configuration without printing secrets.
Verify:
```bash
git diff --check
git status --short
```
Commit integration result normally:
```bash
git add -A
git commit -m 'release: integrate V1R4C6 admin search and agent platform'
git push origin "$EXEC_BRANCH"
```
If no uncommitted changes remain because merge commits already captured everything, just push normally.
## Phase 5 — Deploy to Staging/Production Runtime
Use the existing deployment mechanism for this repository. Do not invent a new deployment path.
Before restart/reload, identify changed services and frontend bundles from the merged diff.
At minimum:
1. Deploy backend modules under `active-runtime/app/`.
2. Deploy portal frontend/navigation/proxy changes.
3. Deploy Search Gateway provider binding using secret references.
4. Deploy Agent Platform event/message/dispatch changes.
5. Preserve existing Gitea sentinel and user-data isolation systemd controls.
6. Keep `AIOS_MEMORY_ENABLED=false`.
Restart only affected services. Do not restart Gitea unless it independently fails health checks.
After deployment, verify affected services are active and no restart loop exists.
## Phase 6 — Actual Deployment Verification
### Global
```bash
curl -fsS http://127.0.0.1:18890/api/base | python3 -m json.tool
curl -fsS https://cnnetmkt.top/api/base | python3 -m json.tool
```
Before V1R4C6 promotion both must still report V1R4C5.
Verify Gitea sentinel remains healthy and memory search remains disabled.
### Gate A — Portal/Admin Workbench
Use an existing authenticated test mechanism or secret-backed admin session. Do not log cookies/tokens.
Verify:
```text
/portal/me/aios/manifest
/portal/me/aios/dashboard
/portal/me/aios/health
```
For `user`, `group_admin/admin`, and `owner`, record only module names/status, not personal data.
Required admin-visible functions:
```text
task progress
process/flow diagram entry
system health
agent observability
```
Verify forbidden owner modules are hidden from non-owner admins.
### Gate B — Search Gateway
Execute scoped test queries using non-sensitive fixtures.
Verify:
```text
real provider selected
scope applied before ranking
provenance returned
out-of-scope fixture denied
safe fallback works
memory search remains disabled
```
### Gate C — Agent Platform
Using synthetic non-sensitive events/messages:
```text
same-scope delivery succeeds
cross-user/project/session delivery is denied
denied payload body is not forwarded
safe-mode blocks controller mutation
owner-gated action remains pending approval
duplicate dispatch is idempotent/rejected
```
## Phase 7 — Release Evidence
Update:
```text
docs/releases/V1R4C6-acceptance-checklist.md
docs/releases/V1R4C6-acceptance-evidence.md
docs/releases/V1R4C6-release-gate-status.md
versions/V1R4C6.json
```
Set each gate to PASS/FAIL with concrete test commands and results.
Required final state before requesting owner confirmation:
```text
Gate A = PASS
Gate B = PASS
Gate C = PASS
full touched-component tests = PASS
runtime write acceptance = PASS
Gitea sentinel = healthy
memory search = disabled
force-push used = no
V1R4C6 tag = absent
active baseline = V1R4C5
```
Commit and push evidence normally to `$EXEC_BRANCH`.
## Stop Point — Owner Confirmation Required
Do not create `V1R4C6` tag.
Do not promote baseline to V1R4C6.
Do not enable memory search.
When all gates pass, notify the owner through the configured notification mechanism, preferably WeChat if configured. The notification must contain no secrets and must request confirmation for:
```text
Create V1R4C6 Git tag
Promote active baseline from V1R4C5 to V1R4C6
```
Required report fields:
```text
Status
Integration branch and HEAD
Merged branches
Skipped/superseded branches
Gate A result
Gate B result
Gate C result
Test totals
Deployment services/build versions
Portal/admin verification result
Search provider verification result
Agent platform verification result
Gitea sentinel status
Memory search status
Active baseline
V1R4C6 tag status
Rollback readiness
Owner confirmation required
```
If WeChat notification is not configured, write the exact notification message to:
```text
/data/aios-gitops/runtime/state/V1R4C6-owner-confirmation-message.txt
```
and report that path.
@@ -0,0 +1,217 @@
# CMD-20260711-v1r4c6-run-to-owner-gate-wechat
## Execution Mode
Execute immediately using the existing V1R4C6 integration command:
```text
ops/openclaw/CMD-20260711-v1r4c6-integrate-deploy-verify.md
```
Continue through actual merge, tests, deployment, and production verification.
Stop only at the owner gate for:
```text
V1R4C6 Git tag creation
V1R4C6 baseline promotion
```
Do not ask the owner to perform routine engineering or deployment work.
## Verified Starting State
Required before starting:
```text
runtime = active
current_baseline = V1R4C5
previous_baseline = V1R4C3
baseline_git = a32c76a3c1baa49562e53fb8adce10a5ed0e6704
AIOS_GITOPS_BARE_REPO = /data/aios-gitops/runtime/gitea-bin/data/repositories/aios/aios.git
memory_search_enabled = false
force_push_allowed = false
```
If any starting condition differs, stop and send a WeChat blocker notification.
## Required Work
Complete all phases in the referenced command:
1. Create/update the normal non-force-pushed integration execution branch.
2. Merge and validate Admin Workbench / Portal AIOS.
3. Merge and validate SR-03 Search Gateway real provider binding.
4. Merge and validate Agent Platform Integration.
5. Run component and full touched-scope test suites.
6. Deploy using the repository's existing deployment mechanism.
7. Verify production routes, RBAC, scope isolation, provenance, safe mode, and owner gates.
8. Update V1R4C6 release evidence and version metadata.
9. Push all normal commits to origin.
10. Keep V1R4C6 tag absent and baseline at V1R4C5 until owner approval.
## Hard Constraints
```text
AIOS_MEMORY_ENABLED=false
memory search remains disabled
no global memory/vector index
no force-push
no tag rewrite
no V1R4C5 tag movement
no Gitea DB mutation
no plaintext secrets in Git, logs, reports, or WeChat
```
Never bypass a failed security, isolation, RBAC, safe-mode, or owner gate.
## WeChat Progress Notifications
Use the configured OpenClaw WeChat notification channel.
Send concise progress notifications at these milestones:
### Notification 1 — Integration Started
```text
V1R4C6 集成已启动。
范围:管理员工作台、SR-03 Search Gateway、Agent Platform。
当前基线:V1R4C5。
memory search 保持关闭。
下一步:完成合并、测试和部署验证。
```
### Notification 2 — Gate A Complete
Include only:
```text
Gate A result: PASS/FAIL
Admin task progress visibility: PASS/FAIL
Flow diagram visibility: PASS/FAIL
RBAC/isolation: PASS/FAIL
Blockers, if any
```
Do not include user records, tokens, cookies, or sensitive task content.
### Notification 3 — Gate B Complete
Include only:
```text
Gate B result: PASS/FAIL
Real provider binding: PASS/FAIL
Scope-before-ranking: PASS/FAIL
Provenance: PASS/FAIL
Safe fallback: PASS/FAIL
Memory search: disabled
Blockers, if any
```
### Notification 4 — Gate C Complete
Include only:
```text
Gate C result: PASS/FAIL
Event scope: PASS/FAIL
Message plane scope: PASS/FAIL
Safe-mode dispatch block: PASS/FAIL
Owner gate: PASS/FAIL
Blockers, if any
```
## Final WeChat Owner Authorization Request
Send only after all mandatory gates and deployment verification pass.
Use this message:
```text
V1R4C6 已完成实际合并、测试、部署和生产验证,现等待最终发布授权。
版本范围:
1. 管理员工作台 / Portal AIOS 上线
2. SR-03 Search Gateway Real Provider Binding
3. Agent Platform Integration
验收结果:
- Gate A(管理员工作台 / RBAC / 隔离):PASS
- Gate B(Provider / scope / provenance / fallback):PASS
- Gate C(Event Bus / Message Plane / Dispatch / Owner Gate):PASS
- Runtime 写链路:PASS
- Gitea consistency sentinel:healthy
- memory search:仍为 disabled
- force-push:未使用
- 当前 active baseline:V1R4C5
- V1R4C6 tag:尚未创建
请明确回复以下其中一项:
A. 批准创建 V1R4C6 Git tag,并将 active baseline 从 V1R4C5 晋升至 V1R4C6。
B. 暂不批准,保持 V1R4C5,并说明需要处理的问题。
```
## Authorization Rules
Do not treat reactions, emojis, acknowledgements, or ambiguous replies as approval.
Valid approval must explicitly authorize both:
```text
create V1R4C6 Git tag
promote baseline V1R4C5 -> V1R4C6
```
If the owner approves only one operation, execute only the approved operation and stop before the other.
Before executing a consequential operation, record authorization in:
```text
docs/releases/V1R4C6-owner-approval.md
```
Record only:
```text
approved operation(s)
approved_at
approval channel = wechat
message/conversation identifier if available
owner identity reference without copying personal message content
memory search remains disabled
```
Do not store access tokens, cookies, phone numbers, or unrelated chat content.
## WeChat Failure Handling
If the configured WeChat channel is unavailable:
1. Do not claim that a message was sent.
2. Stop before tag/promotion.
3. Write the exact final authorization request to:
```text
/data/aios-gitops/runtime/state/V1R4C6-owner-confirmation-message.txt
```
4. Write notification failure details to:
```text
/data/aios-gitops/runtime/state/V1R4C6-wechat-notification-failure.json
```
5. Report the failure through the active GitOps task/status channel.
## Final Stop Condition
Before explicit owner authorization, final state must remain:
```text
current_baseline = V1R4C5
V1R4C6 tag = absent
memory search = disabled
```
After owner authorization, follow the existing tag confirmation and baseline promotion controls. Do not bypass consequential-operation confirmation layers.
@@ -0,0 +1,9 @@
{
"type": "branch",
"branch": "reconcile/v1r4c5-release-to-main-20260711",
"base": "main",
"created_by": "chatgpt-gitops-bot",
"created_at": "2026-07-10T23:56:41Z",
"direct_main_push": false,
"owner_approval_required": true
}
@@ -0,0 +1,9 @@
{
"id": "patch-1783707996243-33717dfe",
"patch_name": "v1r4c6-admin-search-agent-integration-20260711",
"branch": "release/v1r4c6-admin-search-agent-integration-20260711",
"risk": "high",
"description": "V1R4C6 bundled integration release: Admin Workbench visibility, SR-03 Search Gateway real provider binding, and Agent Platform Integration. Memory search remains disabled and user data isolation gates remain mandatory.",
"created_by": "chatgpt-gitops-bot",
"created_at": "2026-07-10T18:26:36Z"
}
+38
View File
@@ -0,0 +1,38 @@
{
"version": "V1R4C5",
"codename": "C5 reliability-security-admin",
"status": "active-baseline",
"tag": "V1R4C5",
"tag_ref": "refs/tags/V1R4C5",
"tag_object": "ac9bdacb19ff66cba8046d75358866f0f0fffb82",
"previous_version": "V1R4C3",
"rollback_version": "V1R4C3",
"baseline": "V1R4C3",
"release_reason": "reliability, watcher cleanup, user data isolation gate, and admin workbench read-only preparation; memory search disabled",
"purpose": "stabilize autonomous operations, enforce user isolation gate, prepare admin workbench read-only for C6",
"changes": [
"reliability: idle container GC with nixos-activate fallback retention policy and CI reset",
"watcher: remove redundant local async watcher, consolidate to server-pushed events",
"security: user data isolation gate (read-only admin panel, fb isolation check)",
"admin workbench: read-only preparation layout for V1R4C6 admin-search integration",
"governance: final owner approval via Owner Gate Web UI"
],
"artifacts": [
"VERSION",
"docs/releases/V1R4C5-acceptance-evidence.md",
"docs/releases/V1R4C5-final-owner-approval.md"
],
"validated_actions": [],
"secret_plaintext_written": false,
"owner_approval_required": true,
"owner_notification_channels": ["wechat", "web_ui_audit"],
"constraints_original": {
"memory_search": "remain disabled",
"sr04": "disable read-only visibility slice if RBAC or isolation check fails",
"gitea": "enter autonomous safe mode if branch consistency drift detected"
},
"promoted_at": "2026-07-11T02:17:31+08:00",
"promoted_by": "openclaw/admin",
"created_at": "2026-07-11T01:40:00+08:00",
"author": "openclaw"
}
+111
View File
@@ -0,0 +1,111 @@
{
"version": "V1R4C6",
"codename": "admin-search-agent-integration",
"status": "release-candidate-started",
"base_baseline": "V1R4C5",
"created_at": "2026-07-11",
"created_by": "chatgpt-gitops-bot",
"release_type": "controlled-bundled-integration",
"promotion_policy": "owner-gated",
"owner_decision": {
"accepted_scope": true,
"requested_delivery": "admin workbench, SR-03, and Agent Platform Integration in one release train",
"memory_search_enabled": false,
"force_push_allowed": false
},
"scope": {
"included_groups": [
{
"id": "V1R4C6-A",
"name": "Admin Workbench and Portal AIOS Read-Only Rollout",
"branches": [
"feature/v1r4c4-sr04-admin-workbench-visibility-20260711",
"feature/v1r4c4-sr04-portal-aios-visibility-20260710",
"patch/user-portal-me-route-diagnostics-20260709",
"patch/user-portal-rbac-ops-dashboard",
"patch/agent-observability-webui",
"patch/web-ui-complete-gitops-dashboard-20260706"
],
"risk": "medium",
"delivery": "administrator-visible task progress, process diagrams, health, agent observability, and portal AIOS entry points",
"guardrails": [
"read-only first",
"RBAC enforced",
"empty states explicit",
"no cross-user or cross-project data exposure"
]
},
{
"id": "V1R4C6-B",
"name": "SR-03 Search Gateway Real Provider Binding",
"branches": [
"feature/v1r4c4-sr02-search-gateway-resilience-20260710",
"patch/search-gateway-governed-general-capability",
"patch/gitops-change-archive-audit"
],
"risk": "high",
"delivery": "real provider binding, governed search gateway, resilience, and audit trail",
"guardrails": [
"user data isolation gate required",
"scope filter before ranking",
"provenance required",
"no global memory/vector index"
]
},
{
"id": "V1R4C6-C",
"name": "Agent Platform Integration",
"branches": [
"patch/agent-event-bus-unified",
"patch/agent-gpt-message-plane",
"patch/autonomous-controller-dispatch-20260709",
"patch/self-evolution-agent-orchestration-policy",
"patch/aios-autonomous-orchestrator-architecture-review-v1"
],
"risk": "high",
"delivery": "agent event bus, GPT message plane, dispatch, orchestration policy, and architecture record",
"guardrails": [
"controller safe-mode respected",
"event/message scopes enforced",
"owner gate for consequential operations",
"observability before autonomous expansion"
]
}
],
"excluded": [
"memory search activation",
"global vector index",
"full cross-session recall",
"unscoped search over memory",
"bulk merge of test/smoke/auth branches",
"Gitea DB mutation",
"force-push reconciliation"
]
},
"acceptance_required": [
"getRuntimeStatus active",
"getBaseline reports V1R4C5 before integration and V1R4C6 after promotion",
"Admin workbench RBAC read-only check passes",
"Portal AIOS manifest/dashboard/health routes verified",
"Flow/process diagram renders or returns explicit empty state",
"Search gateway provider binding returns scoped, provenanced results only",
"User data isolation acceptance remains green",
"Agent event bus and GPT message plane tests pass",
"Autonomous controller dispatch respects safe mode",
"Memory search remains disabled"
],
"deployment_constraints": {
"AIOS_MEMORY_ENABLED": false,
"memory_search_activation_requires_future_owner_approval": true,
"force_push_allowed": false,
"gitea_db_mutation_requires_owner_admin_approval": true,
"admin_workbench_mode": "read_only_first",
"search_provider_scope": "scoped_only"
},
"rollback_policy": {
"admin_workbench": "disable new menu/routes if RBAC or route acceptance fails",
"search_gateway": "fallback to disabled provider binding, not memory search",
"agent_platform": "disable dispatch expansion and keep event/message plane read-only if safety tests fail",
"memory_search": "remain disabled"
}
}