|
|
|
@@ -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.
|