Files
swarm-zap/memory/ops/2026-03-04-git-workflow.md

250 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Session: 2026-03-04 23:30:26 UTC
- **Session Key**: agent:main:main
- **Session ID**: 8e27dc5c-a962-4c29-b6be-2973dafd8c65
- **Source**: gateway:sessions.reset
## Conversation Summary
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:14 UTC] Also, we want to merge rebase, add this to the instructions
assistant: [[reply_to_current]] Done — added ✅
I updated the instructions to enforce:
- **Rebase-first workflow** (`git pull --rebase`)
- **Rebase onto latest `origin/main` before push/PR**
- **Preferred PR merge mode: Rebase and merge**
- Avoid merge commits unless explicitly needed
Updated files:
- `AGENTS.md`
- `scripts/openclaw-upstream-workflow.md`
Committed on workspace branch:
- `b36ab89`
- `docs(workflow): require rebase-first + rebase-and-merge policy`
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:18 UTC] Also, when we rebase we need to delete the feature/fix branch...
assistant: [[reply_to_current]] Agreed — added ✅
I updated the instructions to require branch cleanup after rebase-merge:
- **`AGENTS.md`**: policy now says feature/fix branches are temporary and must be deleted after merge.
- **`scripts/openclaw-upstream-workflow.md`**: added a **Post-merge branch cleanup (required)** section with commands for:
- updating `main`
- deleting remote branch
- deleting local branch
- safe note about `-D` only when needed
Committed as:
- `49f9c0c`
- `docs(workflow): require branch deletion after rebase-merge`
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:21 UTC] Check updates for OpenClaw git upstream
assistant: [[reply_to_current]] Checked.
- **OpenClaw runtime update status:** stable channel, latest is **2026.3.2** (no update available via `openclaw update status`).
- **Git upstream (`external/openclaw-upstream`)**:
- `main` is **fully up to date** with `origin/main` (`ahead/behind: 0/0`).
- Your working branch `fix/tui-hide-internal-runtime-context` is **1 commit ahead** of `origin/main` (the TUI fix commit), as expected.
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:23 UTC] Let's make sure we fetch upstream before implementing, that make sense?
assistant: [[reply_to_current]] Yep — 100% makes sense. That should be the default habit.
Ive already baked that into the workflow docs (`git fetch --all --prune` + update `main` before branch work), but we can make it even stricter:
- **Rule:** no code changes until fetch+sync succeeds.
- **Preflight command block:**
- `git fetch --all --prune`
- `git checkout main`
- `git pull --rebase`
- verify clean state, then branch.
If you want, Ill add a tiny `scripts/openclaw-upstream-preflight.sh` that enforces this automatically.
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:24 UTC] Sure
user: You are running a boot check. Follow BOOT.md instructions exactly.
BOOT.md:
# BOOT.md
On gateway startup, run a silent security + readiness check for this workspace.
## Startup checklist
1. Confirm core workspace files exist:
- `AGENTS.md`, `SOUL.md`, `USER.md`, `TOOLS.md`, `HEARTBEAT.md`
2. Confirm required local skill folders exist:
- `skills/searxng-local-search`
- `skills/telegram-ops`
- `skills/homelab-service-health`
- `skills/task-capture-and-followup`
- `skills/daily-brief`
- `skills/calendar-sentinel`
- `skills/inbox-triage`
3. Ensure task state exists:
- `memory/tasks.json` (create `[]` if missing)
## Security checks
4. Check internal hooks enabled state:
- `session-memory`
- `command-logger`
- `bootstrap-extra-files`
- `boot-md`
- if any are disabled/missing, record warning with exact hook name
5. Check permissions:
- `~/.openclaw` should be `700`
- credential files under `~/.openclaw/credentials/` should be `600`
- if drift is found, log it as warning; do not auto-fix unless explicitly requested later
6. Check network exposure:
- verify gateway is not unexpectedly exposed on `0.0.0.0`
- capture a compact listener snapshot for OpenClaw-related ports
7. Check expected-service posture:
- expected local services should be present/reachable (OpenClaw runtime + documented core services)
- flag unexpected listeners only when confidence is high
8. Check backup signal freshness:
- verify `memory/minio-backup.log` contains `Backup complete:` within last 8 hours
9. Check security-audit freshness:
- verify a recent `openclaw security audit --deep` result exists (target: within 24 hours)
- if stale/missing, record reminder (warning level)
10. Check update status:
- run/read `openclaw update status`
- record whether update is available
## State recording
11. Write/update machine-readable status file: `memory/startup-health.json` with:
- `last_run_utc`
- `status` (`ok|warn|critical`)
- `checks_passed` (array)
- `checks_failed` (array)
- `warnings` (array)
- `gateway_exposure` (e.g., `local-only|public|unknown`)
- `last_backup_age_hours`
- `last_security_audit_age_hours`
- `update_status` (short text)
12. Write/update `memory/boot-last-run.json` with UTC timestamp + overall status.
## Notification policy
13. Stay silent when status is `ok` or non-actionable `warn`.
14. Send one short proactive alert only for **critical** conditions:
- credential permission drift on sensitive files,
- unexpected public exposure of gateway,
- backup signal stale/missing beyond threshold,
- missing critical workspace files preventing normal operation.
## Critical issue logging
If any warning/critical issue is found, append a concise line to `memory/startup-health.md` with UTC timestamp, failing check, and suggested fix.
If BOOT.md asks you to send a message, use the message tool (action=send with channel + target).
Use the `target` field (not `to`) for message tool destinations.
After sending with the message tool, reply with ONLY: NO_REPLY.
If nothing needs attention, reply with ONLY: NO_REPLY.
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:25 UTC] done?
assistant: [[reply_to_current]] Almost.
-**Done:** instructions now explicitly require fetch/sync before coding.
-**Not done yet:** I havent added the optional auto-enforcing preflight script.
If you want, I can add that script now in one quick commit.
user: Sender (untrusted metadata):
```json
{
"label": "openclaw-tui (gateway-client)",
"id": "gateway-client",
"name": "openclaw-tui",
"username": "openclaw-tui"
}
```
[Wed 2026-03-04 23:27 UTC] Finish the script and commit
assistant: NO_REPLY
assistant: [[reply_to_current]] Done — finished and committed.
### ✅ Added script
- `scripts/openclaw-upstream-preflight.sh`
What it does:
- Verifies `external/openclaw-upstream` exists
- Runs:
- `git fetch --all --prune`
- `git checkout main`
- `git pull --rebase`
- Refuses to proceed if `main` isnt clean
- Optional branch arg:
- creates branch if missing
- or switches + rebases existing branch onto `origin/main`
Usage:
```bash
scripts/openclaw-upstream-preflight.sh
scripts/openclaw-upstream-preflight.sh fix/my-change
```
### ✅ Docs wired
- `AGENTS.md`
- `scripts/openclaw-upstream-workflow.md`
### ✅ Commit
- `d31bb80`
- `chore(workflow): add upstream preflight sync script`