Add nightly check - Feb 26
This commit is contained in:
parent
1b61757ea2
commit
96dd555128
@ -1,241 +1,36 @@
|
||||
🌙 Late-Night Check — 2026-02-26 (3:04 AM)
|
||||
---
|
||||
|
||||
🌙 **Nightly Check — Thu Feb 26, 10:00 PM**
|
||||
|
||||
📊 Status:
|
||||
- Active tasks: 5 (hardening queued; cron active)
|
||||
- Overdue: 0
|
||||
- Git: Uncommitted changes (BRAIN.md, MEMORY.md, research/ scripts—commit AM)
|
||||
- Tomorrow's priority: Hardening task (ed4bc5aa-8c84-4f95-b339-cf2ea17fd02b)—cron/Bob progress.
|
||||
- Bob-Implementer subagent running: Installing Qwen3.5-35B-A3B via Ollama
|
||||
- Viral X Discovery: ON HOLD
|
||||
- Sprint 2: All 28 tasks marked done
|
||||
- Git: Uncommitted changes (memory file)
|
||||
|
||||
🎯 Suggestion:
|
||||
Morning: Gantt Board for hardening (test if complete), git commit workspace. Builds reliable agents for iOS empire—rest well.
|
||||
🎯 Tomorrow's Priority:
|
||||
Review Qwen3.5-35B-A3B installation results from Bob-Implementer
|
||||
|
||||
---
|
||||
|
||||
## [2026-02-26 16:46] ✅ Created daily-digest.sh script
|
||||
## [2026-02-26 21:48] 🟡 Viral X Discovery Skill - ON HOLD
|
||||
|
||||
### What was requested
|
||||
Matt wanted a shell script to generate the daily digest reliably (to fix the broken cron job).
|
||||
Test the viral-x-discovery skill with "openclaw" search.
|
||||
|
||||
### What was done
|
||||
- Created `/Users/mattbruce/.openclaw/workspace/scripts/daily-digest.sh`
|
||||
- Script handles JSON escaping properly using `jq`
|
||||
- Uses temp files to avoid argument length issues
|
||||
- Checks for existing digest before creating
|
||||
- Generates proper format with emojis and `[Read more →](URL)` links
|
||||
- Can be run manually: `./daily-digest.sh [YYYY-MM-DD]`
|
||||
- Fixed array reference bug in parse_tavily_output() function
|
||||
- Successfully tested search for "openclaw"
|
||||
- Found 1 result: @christinetyip
|
||||
- Confirmed X's anti-bot protections limit content extraction
|
||||
|
||||
### Usage
|
||||
```bash
|
||||
# Run for today
|
||||
./scripts/daily-digest.sh
|
||||
### Limitation discovered
|
||||
X/Twitter has aggressive anti-bot protection. Even with Scrapling, full content extraction is blocked. Tavily search works for discovery, but extraction yields limited results (page titles/navigation only).
|
||||
|
||||
# Run for specific date
|
||||
./scripts/daily-digest.sh 2026-02-26
|
||||
```
|
||||
### Status
|
||||
**ON HOLD** — User decided to pause this project for now. Skill is functional but limited by X's protections.
|
||||
|
||||
---
|
||||
|
||||
## [2026-02-26 15:52] ✅ Fixed blog-backup skill to match mission-control-docs pattern
|
||||
|
||||
### What was requested
|
||||
Continue working to fix issues with the daily blog and create a skill similar to mission-control-docs.
|
||||
|
||||
### What was done
|
||||
- Updated `~/.agents/skills/blog-backup/lib/blog.sh` to use shared `auth-api` transport
|
||||
- Created `/Users/mattbruce/Documents/Projects/OpenClaw/Web/blog-backup/scripts/blog.sh` CLI
|
||||
- Added contract tests at `~/.agents/skills/blog-backup/tests/test_contract.sh` (all 6 pass)
|
||||
- Updated SKILL.md with full documentation
|
||||
- Updated TOOLS.md with CLI usage examples
|
||||
- Committed changes to both workspace and blog-backup repo
|
||||
- Pushed to Gitea
|
||||
|
||||
### Files Created/Modified
|
||||
- `~/.agents/skills/blog-backup/lib/blog.sh` - Updated with auth-api integration
|
||||
- `~/.agents/skills/blog-backup/SKILL.md` - Full documentation
|
||||
- `~/.agents/skills/blog-backup/tests/test_contract.sh` - Contract tests
|
||||
- `/Users/mattbruce/Documents/Projects/OpenClaw/Web/blog-backup/scripts/blog.sh` - CLI script
|
||||
- `~/.openclaw/workspace/TOOLS.md` - Updated documentation
|
||||
|
||||
### Architecture
|
||||
Following API-centric CLI pattern:
|
||||
```
|
||||
Skill (blog.sh) → auth-api transport → API (x-api-key) → Database
|
||||
```
|
||||
|
||||
### Testing
|
||||
```bash
|
||||
# Run contract tests
|
||||
bash ~/.agents/skills/blog-backup/tests/test_contract.sh
|
||||
# Result: PASS: blog-backup contract tests
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## [2026-02-26 10:36] ✅ Completed - Shared auth-api skill integration
|
||||
|
||||
### What was requested
|
||||
Matt asked to build/integrate/test a no-duplication auth API layer shared by `gantt-tasks` and `mission-control-docs`.
|
||||
|
||||
### What was decided
|
||||
- Do NOT merge domain skills.
|
||||
- Create shared `auth-api` transport skill/module and wire both domain skills to it.
|
||||
|
||||
### What was done
|
||||
- Created new skill: `~/.agents/skills/auth-api/`
|
||||
- `SKILL.md`
|
||||
- `lib/auth_api.sh` with `api_call`, `api_preflight`, `api_require_token`
|
||||
- Refactored `gantt-tasks/lib/tasks.sh`
|
||||
- Added source to shared `auth_api.sh`
|
||||
- Replaced local `_api_call` implementation to delegate to shared `api_call`
|
||||
- Refactored `mission-control-docs/lib/docs.sh`
|
||||
- Added source to shared `auth_api.sh`
|
||||
- Replaced local `_api_call` implementation to delegate to shared `api_call`
|
||||
- Updated both SKILL docs to reflect architecture:
|
||||
- `Domain Skill -> auth-api transport -> API -> DB`
|
||||
- Added tests:
|
||||
- `~/.agents/skills/auth-api/tests/test_auth_api.sh` (mocked curl contract test)
|
||||
- Ran tests:
|
||||
- Initial fail due to grep pattern parsing; fixed with `grep -F --`
|
||||
- Final: `PASS: auth-api transport tests`
|
||||
- Smoke checks passed:
|
||||
- both domain libs source/load correctly
|
||||
- both `_api_call` functions route through shared transport layer
|
||||
|
||||
### Follow-ups
|
||||
- Optionally add retry/backoff policy in `auth_api.sh` once behavior is agreed.
|
||||
|
||||
### Additional completed (2026-02-26 10:39)
|
||||
- Added per-domain contract tests with mocked shared transport:
|
||||
- `~/.agents/skills/gantt-tasks/tests/test_contract.sh`
|
||||
- verifies `task_create` contract (`GET /sprints`, `POST /tasks`)
|
||||
- verifies `task_update` contract (`GET /tasks`, `POST /tasks` with status change)
|
||||
- `~/.agents/skills/mission-control-docs/tests/test_contract.sh`
|
||||
- verifies `mc_doc_create` contract (`POST /documents` payload)
|
||||
- verifies `mc_doc_update` contract (`GET /documents?id=...`, `PATCH /documents` payload)
|
||||
- Improved mock-call logging by base64-encoding payloads for multiline-safe assertions.
|
||||
- Ran full suite:
|
||||
- `PASS: gantt-tasks contract tests`
|
||||
- `PASS: mission-control-docs contract tests`
|
||||
- `PASS: auth-api transport tests`
|
||||
|
||||
### Additional completed (2026-02-26 10:40)
|
||||
- Fixed consuming workflow skill `url-research-to-documents-and-tasks` to remove duplicate/orphan logic path.
|
||||
- Replaced `orchestrator.sh` implementation with a thin wrapper that delegates to hardened script only:
|
||||
- `orchestrator.sh -> bin/url-research.sh`
|
||||
- Updated skill docs to point production entrypoint to `orchestrator.sh` (single source of truth).
|
||||
- Verified script syntax:
|
||||
- `bash -n orchestrator.sh` ✅
|
||||
- `bash -n bin/url-research.sh` ✅
|
||||
- Verified wrapper execution path:
|
||||
- no-arg usage correctly routes and prints hardened usage
|
||||
- run with URL starts hardened workflow phases/logging
|
||||
|
||||
### Rationale
|
||||
- Prevents workflow drift where old orchestrator code and hardened code diverge.
|
||||
- Keeps one execution path for future fixes and reliability improvements.
|
||||
|
||||
### Additional completed (2026-02-26 10:53)
|
||||
- Implemented new shared skill: `workflow-checkpoints`
|
||||
- `~/.agents/skills/workflow-checkpoints/SKILL.md`
|
||||
- `~/.agents/skills/workflow-checkpoints/lib/checkpoints.sh`
|
||||
- `~/.agents/skills/workflow-checkpoints/tests/test_checkpoints.sh`
|
||||
- Added URL-keyed stable checkpoint model with 7-day TTL:
|
||||
- key = `sha256(normalized_url)`
|
||||
- payload files by type:
|
||||
- `<key>-content.json`
|
||||
- `<key>-analysis.json`
|
||||
- `<key>-plan.md`
|
||||
- metadata file:
|
||||
- `<key>-meta.json` (expiresAtEpoch, ttl, sourceUrl)
|
||||
- Integrated checkpoints into URL research workflow (`bin/url-research.sh`):
|
||||
- extract-content phase: reuse from checkpoint if present, else compute and save
|
||||
- analyze-fit phase: reuse from checkpoint if present, else compute and save
|
||||
- create-plan phase: reuse from checkpoint if present, else compute and save
|
||||
- touch checkpoint TTL on reuse
|
||||
- Verified tests and syntax:
|
||||
- `PASS: workflow-checkpoints tests`
|
||||
- `PASS: auth-api transport tests`
|
||||
- `PASS: gantt-tasks contract tests`
|
||||
- `PASS: mission-control-docs contract tests`
|
||||
- `bash -n` for updated workflow script passed
|
||||
|
||||
### Follow-up suggestions
|
||||
- Add explicit progress comment text when checkpoint is reused (e.g., "reused checkpoint") for user visibility.
|
||||
- Optionally add `checkpoint_list <url>` helper for quick debugging of cached artifacts.
|
||||
|
||||
### Additional completed (2026-02-26 10:58-11:00)
|
||||
- Fixed all phase progress comments in URL research workflow to show consistent phase numbering (0-5):
|
||||
- Phase 0: Task created
|
||||
- Phase 1: Content extraction
|
||||
- Phase 2: Document creation
|
||||
- Phase 3: Fit analysis
|
||||
- Phase 4: Implementation plan
|
||||
- Phase 5: Final review and handoff
|
||||
- Added Phase 4 success comment immediately after plan attachment (was missing before).
|
||||
- Added source indicators to progress comments:
|
||||
- `[reused checkpoint]` when using cached data
|
||||
- `[reused existing]` when reusing doc from task description
|
||||
- Made Phase 2 idempotent by parsing task description for existing `Document ID`.
|
||||
- Created workflow summary doc: `WORKFLOW_SUMMARY.md` showing complete phase flow.
|
||||
- Verified script syntax: `bash -n url-research.sh` ✅
|
||||
|
||||
### Result
|
||||
Now every phase visibly updates the task comment with a checked box, and reruns efficiently skip completed work using checkpoints + task description parsing.
|
||||
|
||||
### Additional completed (2026-02-26 11:13)
|
||||
- Implemented cleanup + doc consolidation for Alice workflow skill:
|
||||
- Added `run.sh` unified entrypoint for standalone shell usage.
|
||||
- Kept OpenClaw mode explicit in `SKILL.md`: always execute via Alice-Researcher (`sessions_spawn`).
|
||||
- Updated mandatory read section to consolidated docs only:
|
||||
- `SKILL.md`
|
||||
- `WORKFLOW_SUMMARY.md`
|
||||
- Removed legacy drift-prone docs:
|
||||
- `ANTI-PATTERNS.md`
|
||||
- `TASK-FIRST-WORKFLOW.md`
|
||||
- Verified syntax:
|
||||
- `bash -n run.sh` ✅
|
||||
- `bash -n orchestrator.sh` ✅
|
||||
|
||||
### Outcome
|
||||
- Inside OpenClaw: route to Alice.
|
||||
- Outside OpenClaw: run `~/.agents/skills/url-research-to-documents-and-tasks/run.sh` directly.
|
||||
- Fewer docs, less drift, clearer operational path.
|
||||
|
||||
### Additional completed (2026-02-26 11:16)
|
||||
- Implemented dry-run mode (option C):
|
||||
- `--dry-run` (mock generators when checkpoints missing)
|
||||
- `--dry-run-real` (real generators, still no writes)
|
||||
- Updated `bin/url-research.sh`:
|
||||
- Added flags parsing for dry-run modes
|
||||
- Added no-write behavior for task/doc/attachment/status operations
|
||||
- Checkpoints are read-only in dry-run (no put/touch writes)
|
||||
- Added dry-run summary output at end
|
||||
- Updated docs:
|
||||
- `run.sh` header examples for dry-run usage
|
||||
- `SKILL.md` standalone section includes dry-run commands
|
||||
- Validation:
|
||||
- `bash -n` checks passed for modified scripts
|
||||
|
||||
### Additional completed (2026-02-26 14:29)
|
||||
- Implemented native macOS Swift CLI quote paster at `scripts/skrybe.swift`.
|
||||
- Added subcommand structure scaffold:
|
||||
- `skrybe quotes --paste` (implemented)
|
||||
- `skrybe quotes --list` (planned placeholder)
|
||||
- `skrybe quotes --add` (planned placeholder)
|
||||
- Implemented `--paste` flow:
|
||||
- Fetches random quote from `http://localhost:3001/quote`
|
||||
- Parses JSON response `{ "quote": string, "author": string }`
|
||||
- Formats output as `Quote — Author`
|
||||
- Uses `NSPasteboard` to stage text and `CGEvent` Cmd+V to paste at cursor
|
||||
- Added explicit error handling for:
|
||||
- Invalid usage / unsupported subcommands
|
||||
- API URL issues, unreachable API, bad HTTP status
|
||||
- Invalid/malformed JSON response
|
||||
- Pasteboard write failures
|
||||
- Missing Accessibility permission
|
||||
- Keyboard event creation failures
|
||||
- Verified compilation with:
|
||||
- `swiftc scripts/skrybe.swift -o scripts/skrybe` ✅
|
||||
- Verified CLI help output and error path when API is offline:
|
||||
- `scripts/skrybe help` ✅
|
||||
- `scripts/skrybe quotes --paste` returns clean API-unreachable error when server is down ✅
|
||||
### Future options if resumed
|
||||
1. Use X API v2 Basic ($100/mo) for reliable access
|
||||
2. Pivot to less protected platforms (Reddit, Hacker News, etc.)
|
||||
3. Use as-is for discovery-only (get profile URLs, manual review)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user