Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
7a58da7
Merge pull request #27 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
5251bb7
fix: add heartbeat during response.text() to prevent DO death
claude Feb 5, 2026
f9fb040
Merge pull request #28 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
254b066
fix: more aggressive heartbeat and timeout during response.text()
claude Feb 5, 2026
8ae211d
Merge pull request #29 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
69c7711
fix: add retry logic for DeepSeek API timeouts
claude Feb 5, 2026
73460b3
Merge pull request #30 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
cee86a8
feat: update /deep to DeepSeek V3.2 via OpenRouter
claude Feb 5, 2026
ee77c05
feat: implement SSE streaming for OpenRouter API calls
claude Feb 5, 2026
16ec044
Merge pull request #31 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
847036e
fix: add 60s timeout on initial fetch for streaming
claude Feb 5, 2026
a52dbc9
Merge pull request #32 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
989d70b
fix: add unique query param to bypass stale connection pooling
claude Feb 5, 2026
59bdef6
Merge pull request #33 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
f25564b
fix: increase streaming idle timeout to 45s for network resilience
claude Feb 5, 2026
9fa3795
Merge pull request #34 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
70ee692
fix: use Promise.race timeout on reader.read() for mid-stream hangs
claude Feb 5, 2026
5ffa8b0
Merge pull request #35 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
dc8ee30
fix: update error message - not CPU, it's API/network timeouts
claude Feb 5, 2026
a2a80e0
feat: add /automode command for automatic task resume
claude Feb 5, 2026
7e9a8e8
Merge pull request #36 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
928ffc8
fix: add resume instruction to break re-acknowledgment loop
claude Feb 5, 2026
37b3559
Merge pull request #37 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
1332022
fix: store direct API keys for auto-resume recovery
claude Feb 5, 2026
9505afa
Merge pull request #38 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 5, 2026
b2eef37
fix: update invalid OpenRouter model IDs
claude Feb 6, 2026
33a64a4
Merge pull request #39 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 6, 2026
fd53f15
Add comprehensive tool-calling landscape and steipete ecosystem analysis
claude Feb 6, 2026
5d85898
Merge pull request #40 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 6, 2026
cb51a80
feat: add persistent checkpoint management with multiple save slots
claude Feb 6, 2026
2225802
Merge pull request #41 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 6, 2026
fcaf63e
Add Acontext context data platform analysis to tool-calling report
claude Feb 6, 2026
e2b6333
Add Compound Engineering Plugin analysis (Plan→Work→Review→Compound)
claude Feb 6, 2026
6c878a9
fix: resolve /auto conflict and harmonize model cost display
claude Feb 6, 2026
aaca956
Merge pull request #42 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 6, 2026
330bca5
Merge pull request #43 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 6, 2026
d4e890b
fix: keep checkpoint on successful task completion for /saveas
claude Feb 6, 2026
f098bac
Merge pull request #44 from PetrAnto/claude/review-merge-conflicts-yvUgX
PetrAnto Feb 6, 2026
0448bf1
docs: add CLAUDE.md project instructions and multi-agent coordination
claude Feb 6, 2026
3702172
Merge pull request #45 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 6, 2026
2c7b29d
chore: add setup scripts to gitignore
claude Feb 6, 2026
c7d6f52
chore: add temporary setup scripts for private repo
claude Feb 7, 2026
116b6a3
chore: remove temporary setup scripts
claude Feb 7, 2026
a02931b
Merge pull request #46 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 7, 2026
7e4d69c
feat(models): add Pony Alpha, GPT-OSS-120B, and GLM 4.7 to model catalog
claude Feb 7, 2026
d733ca6
Merge pull request #47 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 7, 2026
8772267
feat(models): add Qwen2.5 Coder 7B and recommended low-cost models
claude Feb 7, 2026
db7835a
Merge pull request #48 from PetrAnto/claude/add-qwen-coder-model-f1J2h
PetrAnto Feb 7, 2026
c8f36be
feat(tools): parallel tool execution and model capability metadata
claude Feb 7, 2026
6c40400
Merge pull request #49 from PetrAnto/claude/resume-tool-calling-analy…
PetrAnto Feb 7, 2026
3c2c289
docs: add orchestration docs and project planning to public repo
claude Feb 7, 2026
0ba6a17
Merge pull request #50 from PetrAnto/claude/analyze-tool-calling-5ee5w
PetrAnto Feb 7, 2026
add5b27
fix(upstream): cherry-pick exitCode fix and container downgrade
claude Feb 7, 2026
0c8a40f
fix(ws): inject gateway token into WebSocket requests for CF Access u…
claude Feb 7, 2026
2a95432
feat(upstream): cherry-pick AI Gateway, channel config, workspace syn…
claude Feb 7, 2026
8f86f95
Merge pull request #51 from PetrAnto/claude/resume-tool-calling-analy…
PetrAnto Feb 7, 2026
9c4beb0
Add files via upload
PetrAnto Feb 8, 2026
b3ccd89
docs: update all core docs with Phase 1 completion, upstream sync, an…
claude Feb 8, 2026
ac17be6
Merge pull request #52 from PetrAnto/claude/resume-tool-calling-analy…
PetrAnto Feb 8, 2026
7f07385
docs(prompts): rewrite for public-only workflow, drop private repo sync
claude Feb 8, 2026
ac3eabc
Merge pull request #53 from PetrAnto/claude/resume-tool-calling-analy…
PetrAnto Feb 8, 2026
a1fdfc0
feat(tools): add url_metadata tool via Microlink API — Phase 2.5.1
claude Feb 8, 2026
e2efcb8
Merge pull request #54 from PetrAnto/claude/review-moltworker-roadmap…
PetrAnto Feb 8, 2026
bb0cbb9
feat(tools): add generate_chart tool via QuickChart API — Phase 2.5.2
claude Feb 8, 2026
2190e86
Merge pull request #55 from PetrAnto/claude/review-moltworker-roadmap…
PetrAnto Feb 8, 2026
215cdbe
feat(tools): add get_weather tool via Open-Meteo API — Phase 2.5.3
claude Feb 8, 2026
c14928d
Merge pull request #56 from PetrAnto/claude/review-moltworker-roadmap…
PetrAnto Feb 8, 2026
6c6e194
feat(tools): add fetch_news tool (HN/Reddit/arXiv) — Phase 2.5.5
claude Feb 8, 2026
004af7e
feat(client): add configurable reasoning per model — Phase 1.3
claude Feb 8, 2026
6499efd
Merge pull request #57 from PetrAnto/claude/review-moltworker-roadmap…
PetrAnto Feb 8, 2026
bca9726
docs(spec): mark Phase 1.3 configurable reasoning as complete
claude Feb 8, 2026
4461ba9
docs: log 5 bugs found during live testing (BUG-1 to BUG-5)
claude Feb 8, 2026
14fa467
Merge pull request #58 from PetrAnto/claude/review-moltworker-roadmap…
PetrAnto Feb 8, 2026
10fe0e3
feat(telegram): add /briefing command + fix BUG-3, BUG-4
claude Feb 8, 2026
f52bc24
docs: update all sync docs for Phase 2.5.7 + BUG-3/BUG-4
claude Feb 8, 2026
dc1fdcd
Merge pull request #59 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 8, 2026
8fd71ac
feat(tools): add convert_currency tool via ExchangeRate-API — Phase 2…
claude Feb 8, 2026
2e502f2
docs: update all sync docs for Phase 2.5.4 currency conversion
claude Feb 8, 2026
626e60d
Merge pull request #60 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 8, 2026
b3e7612
feat(costs): add per-request token/cost tracking — Phase 2.1
claude Feb 8, 2026
6aa5026
docs: update all sync docs for Phase 2.1 token/cost tracking
claude Feb 8, 2026
fa603c3
Merge pull request #61 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 8, 2026
07b0245
fix(ux): resolve BUG-1, BUG-2, BUG-5 — status message, tool prompting…
claude Feb 8, 2026
1d32286
docs: update all sync docs for BUG-1, BUG-2, BUG-5 fixes
claude Feb 8, 2026
1dfa10f
Merge pull request #62 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 8, 2026
d248c80
feat(tools): add get_crypto and geolocate_ip tools — Phase 2.5.6 + 2.5.8
claude Feb 8, 2026
fe7f06a
docs: update all sync docs for Phase 2.5.6+2.5.8 (crypto + geolocation)
claude Feb 8, 2026
e869580
Merge pull request #63 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 8, 2026
dfd55ad
feat(telegram): unify vision + tools, update /help — Phase 1.4
claude Feb 9, 2026
5b94e2c
docs: update all sync docs for Phase 1.4 (vision + tools unified)
claude Feb 9, 2026
fa5d129
feat(client): add structured output support — Phase 1.5
claude Feb 9, 2026
907a2a7
docs: update all sync docs for Phase 1.5 (structured output)
claude Feb 9, 2026
d6af562
Merge pull request #64 from PetrAnto/claude/daily-briefing-aggregator…
PetrAnto Feb 9, 2026
a226b83
test(openrouter): add comprehensive briefing-aggregator tests for Pha…
claude Feb 9, 2026
26e7f7e
Merge pull request #65 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
30ad25c
feat(telegram): rewrite /help and /start, add manual test protocol
claude Feb 9, 2026
262c42d
Merge pull request #66 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
a6059b6
fix(models): remove dead models, fix prices; feat(telegram): checkpoi…
claude Feb 9, 2026
9405efe
Merge pull request #67 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
cef0385
feat(models): add paid MiMo V2 Flash + dynamic model sync from OpenRo…
claude Feb 9, 2026
5c811f4
feat(telegram): interactive /syncmodels picker with toggle buttons
claude Feb 9, 2026
160abd1
Merge pull request #68 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
079c736
feat(task-processor): free model rotation + empty response retry
claude Feb 9, 2026
5325178
Merge pull request #69 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
e196250
fix(telegram): persist sync sessions in R2 instead of in-memory Map
claude Feb 9, 2026
c49d16e
Merge pull request #70 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 9, 2026
ea07bf0
fix: route all models through DO to prevent Worker timeout
claude Feb 9, 2026
7ce9e42
fix(models): update deepfree to deepseek-r1-0528 (old endpoint dead)
claude Feb 9, 2026
bdd5329
Merge pull request #71 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 10, 2026
a87c62b
feat(task-processor): dynamic auto-resume limits (50x free, 10x paid)
claude Feb 10, 2026
d73b60f
Merge pull request #72 from PetrAnto/claude/test-briefing-aggregator-…
PetrAnto Feb 10, 2026
8699045
feat(tools): add github_create_pr and sandbox_exec tools
claude Feb 10, 2026
01f88af
Merge pull request #73 from PetrAnto/claude/add-github-pr-sandbox-7CZCk
PetrAnto Feb 10, 2026
1519428
feat(openrouter): implement compound learning loop — Phase 3.1
claude Feb 10, 2026
2aa6d10
test(openrouter): expand learnings tests from 36 to 62
claude Feb 10, 2026
f524683
feat(bot): 6 improvements from Telegram conversation analysis
claude Feb 10, 2026
ceec1e4
Merge pull request #74 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 10, 2026
a24c3c3
docs(sync): update roadmap and logs for 6 bot improvements
claude Feb 10, 2026
4922d6d
fix(bot): reset auto-resume counter between tasks, revert GLM tool flag
claude Feb 10, 2026
24d3244
docs(sync): update logs for auto-resume fix and GLM revert
claude Feb 10, 2026
fb98c86
Merge pull request #75 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 10, 2026
8b136e2
docs(r2): add storia-orchestrator skill prompt for R2 bucket
claude Feb 11, 2026
184a008
Merge pull request #76 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 11, 2026
a1a34ee
feat(telegram): redesign /start with feature buttons, add bot menu co…
claude Feb 11, 2026
4af1ee6
docs(sync): update logs for /start redesign and bot menu
claude Feb 11, 2026
ea7da32
Merge pull request #77 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 11, 2026
50f195b
fix(tools): briefing location, news links, crypto symbol ambiguity
claude Feb 11, 2026
0203417
Merge pull request #78 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 11, 2026
97232f1
docs(sync): complete session wrap-up — update all sync docs
claude Feb 11, 2026
39ee77c
Merge pull request #79 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 11, 2026
959495d
docs(sync): enhance next_prompt.md with full architecture context for…
claude Feb 11, 2026
e56d507
Merge pull request #80 from PetrAnto/claude/extract-task-metadata-8lMCM
PetrAnto Feb 11, 2026
a0c407c
feat(task-processor): add structured task phases (plan → work → review)
claude Feb 11, 2026
658fc3e
Merge pull request #81 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 11, 2026
ddbd8cf
docs(core): sync all docs after Phase 3.2 completion
claude Feb 11, 2026
833d07f
feat(briefing): location-aware briefings with saved user preference
claude Feb 11, 2026
13efa97
Merge pull request #82 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 11, 2026
4028378
fix(models): auto-rotate on 404/sunset, detect tool support in syncmo…
claude Feb 11, 2026
b404078
Merge pull request #83 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 11, 2026
901d629
feat(syncmodels): smart categorization, replacement recommendations, …
claude Feb 11, 2026
93f67f7
Merge pull request #84 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 11, 2026
85a3e72
fix(task-processor): recover from empty model responses after tool use
claude Feb 12, 2026
22dc63a
Merge pull request #85 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 12, 2026
ffb5f5b
fix(models): add tool support flag to trinity model
claude Feb 12, 2026
b5eeb00
Merge pull request #86 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 12, 2026
3b8ec4c
feat(ui): distinguish curated vs synced models, add capability icons
claude Feb 12, 2026
086343b
Merge pull request #87 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 12, 2026
d654ba8
fix(tools): add safety guardrails to github_create_pr to prevent dest…
claude Feb 12, 2026
932d18d
Merge pull request #88 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 12, 2026
b85e66e
feat(task-processor): show model name in task completion footer
claude Feb 12, 2026
7403192
fix(task-processor,client): handle truncated tool calls, disable web …
claude Feb 12, 2026
8eb999c
Merge pull request #89 from PetrAnto/claude/add-task-phases-4R9Q6
PetrAnto Feb 12, 2026
79706b6
Add files via upload
PetrAnto Feb 12, 2026
217e405
feat(models,task-processor): add free models catalog, emergency core …
claude Feb 12, 2026
79394c0
fix(models): correct devstral2free model ID, remove broken kimifree t…
claude Feb 12, 2026
2cafa01
Merge pull request #90 from PetrAnto/claude/task-phases-continued-OoYKL
PetrAnto Feb 12, 2026
f8322b2
fix(task-processor): add stall detection to prevent auto-resume spin …
claude Feb 12, 2026
160aeb9
refactor(models): audit and clean model catalog, add MiniMax 2.5
claude Feb 12, 2026
ac8db56
feat(models): add opus45 back, add getValueTier() scoring function
claude Feb 12, 2026
829fe8d
Merge pull request #91 from PetrAnto/claude/task-phases-continued-OoYKL
PetrAnto Feb 12, 2026
02a0549
feat(models): rewrite /models with value tier grouping
claude Feb 12, 2026
c69d1b0
Merge pull request #92 from PetrAnto/claude/task-phases-continued-OoYKL
PetrAnto Feb 13, 2026
b9cf98f
feat(orchestra): add /orchestra command for structured task workflow
claude Feb 13, 2026
a35efce
feat(orchestra): add init/run two-mode roadmap workflow
claude Feb 13, 2026
9a8ded1
feat(orchestra): add /orch set, /orch next, and /start integration
claude Feb 13, 2026
11b06aa
Merge pull request #93 from PetrAnto/claude/task-phases-continued-OoYKL
PetrAnto Feb 13, 2026
6c2c152
fix(task-processor): fix resume/continue immediately re-hitting itera…
claude Feb 14, 2026
cdbfa5e
feat(orchestra): add /orch roadmap command to display project status
claude Feb 14, 2026
f4abded
Merge pull request #94 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 14, 2026
89be32f
feat(orchestra): add /orch reset, /orch redo, and model attribution
claude Feb 14, 2026
1bf52ad
Merge pull request #95 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 14, 2026
29cf94c
feat(orchestra): add repo health check for large file detection
claude Feb 14, 2026
2eca0ff
Merge pull request #96 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 14, 2026
2a33c50
feat(orchestra): add full-rewrite detection to block destructive file…
claude Feb 14, 2026
70bd76c
Merge pull request #97 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 14, 2026
9c33060
feat(orchestra): add dynamic model recommendations to /orch help
claude Feb 14, 2026
5d5055f
fix(models): update dcode metadata and boost direct API models in orc…
claude Feb 14, 2026
91624a3
fix(orchestra): prevent hallucinated PR claims and add orchestra-awar…
claude Feb 15, 2026
d08956d
Merge pull request #98 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 15, 2026
3f9c058
feat(orchestra): detect incomplete refactors in github_create_pr
claude Feb 15, 2026
44d0760
Merge pull request #99 from PetrAnto/claude/resume-task-phases-oetGQ
PetrAnto Feb 15, 2026
a82ac87
feat(upstream): sync with cloudflare/moltworker (openclaw + rclone + …
claude Feb 15, 2026
9a69686
feat(e2e): add Terraform-based cloud e2e test infrastructure
claude Feb 15, 2026
5484a1f
fix(e2e): align test files with upstream format
claude Feb 15, 2026
bd2c8ec
Merge pull request #100 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 15, 2026
ba0e8af
feat(deepseek): maximize direct DeepSeek API usage and efficiency
claude Feb 15, 2026
aa49715
fix(models): update outdated direct API models and fix missing capabi…
claude Feb 15, 2026
56b19f4
fix(telegram): add direct API models to help text and vision list
claude Feb 15, 2026
ccef69d
Merge pull request #101 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 15, 2026
719c241
fix(task-processor): cap max_tokens for DeepSeek API and fix orphaned…
claude Feb 16, 2026
46af2e9
Merge pull request #102 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 16, 2026
27a0862
docs(docs): add audit and build improvement plan
PetrAnto Feb 16, 2026
b31fbf7
Merge pull request #103 from PetrAnto/codex/conduct-full-audit-and-im…
PetrAnto Feb 16, 2026
fd8b8f8
feat(routing): implement audit Phase 1-3 — resume escalation, coding …
claude Feb 16, 2026
95ab4df
Merge pull request #104 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 16, 2026
a17051f
fix(dashscope): use Singapore regional endpoint for DashScope API
claude Feb 16, 2026
46cf69c
Merge pull request #105 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 16, 2026
7d00dcb
docs(byok): add region-locked API key lessons for byok.cloud
claude Feb 16, 2026
b80b327
Merge pull request #106 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 16, 2026
f953258
feat(orchestra): add anti-destructive guardrails for bot PRs
claude Feb 16, 2026
d508b09
Merge pull request #107 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 16, 2026
ed67f4d
fix(models): respect Kimi K2.5 fixed temperature requirement
claude Feb 17, 2026
e9550ee
fix(workers): align with Cloudflare Workers best practices
claude Feb 17, 2026
8d3d8d6
Merge pull request #108 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
a6cd181
fix(moonshot): preserve reasoning_content in tool-calling loop
claude Feb 17, 2026
bed14de
Merge pull request #109 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
f30205c
fix(task-processor): add AbortController to direct API fetch with 2mi…
claude Feb 17, 2026
da77d9f
Merge pull request #110 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
a505379
fix(task-processor): add same-tool loop detection and fix fetch_url H…
claude Feb 17, 2026
586197e
Merge pull request #111 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
85b7224
fix(task-processor): fast-fail content filter 400, fix stall tracking…
claude Feb 17, 2026
a1b6834
Merge pull request #112 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
0fa0954
docs: add TaskProcessor spec and troubleshooting log
claude Feb 17, 2026
b9742ac
docs: add guardrail map, model quality failures, and gap analysis
claude Feb 17, 2026
13d8122
Merge pull request #113 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 17, 2026
bd5a0c5
fix(watchdog): model-aware stuck threshold + faster streaming heartbeat
claude Feb 17, 2026
8c4771e
feat(guardrails): implement P0 upgrades — hard block incomplete refac…
claude Feb 18, 2026
f098c8f
Merge pull request #114 from PetrAnto/claude/review-upstream-updates-…
PetrAnto Feb 18, 2026
39fbc37
feat(guardrails): P1 routing + hallucination guardrails + /learnings …
claude Feb 18, 2026
3a22138
docs(sync): update all core docs — P1 guardrails + /learnings complete
claude Feb 18, 2026
cea83fc
Merge pull request #115 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 18, 2026
07e8902
feat(acontext): Phase 2.3 Acontext observability integration
claude Feb 18, 2026
92152bf
Merge pull request #116 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 18, 2026
2640d81
feat(tools): Phase 2.5.9 holiday awareness via Nager.Date API
claude Feb 18, 2026
29d017b
Merge pull request #117 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 18, 2026
53c3a0f
feat(task-processor): Phase 4.1 token-budgeted context retrieval
claude Feb 18, 2026
5387bd2
fix(acontext): correct API base URL from acontext.com to acontext.io
claude Feb 19, 2026
e6a2037
Merge pull request #118 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 19, 2026
145a55c
Merge pull request #119 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 19, 2026
d70fb0b
fix(task-processor): harden phase 4.1 context budget audit
PetrAnto Feb 19, 2026
6a0b501
Merge pull request #120 from PetrAnto/codex/audit-and-improve-context…
PetrAnto Feb 20, 2026
75844e1
fix(context-budget): improve priority scoring and add summary safety …
claude Feb 20, 2026
4c1df03
Merge pull request #122 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 20, 2026
b26b31a
Add files via upload
PetrAnto Feb 20, 2026
6d6ec59
feat(task-processor): phase budget circuit breakers
claude Feb 20, 2026
c7c1b98
feat(task-processor): parallel tools Promise.allSettled + safety whit…
claude Feb 20, 2026
07c4d1a
docs(roadmap): update changelog with phase budget + parallel tools en…
claude Feb 20, 2026
456a21a
Merge pull request #123 from PetrAnto/claude/budget-circuit-breakers-…
PetrAnto Feb 20, 2026
16fc8fe
docs: sync all core docs after Sprint 48h merge
claude Feb 20, 2026
b9e9e27
feat(context-budget): Phase 4.2 — replace heuristic estimateTokens wi…
claude Feb 20, 2026
591bab0
feat(admin): Phase 2.4 — Acontext sessions dashboard in admin UI
claude Feb 20, 2026
c8c62a8
Merge pull request #129 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 20, 2026
d765dfb
feat(task-processor): Phase 4.3 — tool result caching with in-flight …
claude Feb 20, 2026
57c8fbb
Merge pull request #134 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 20, 2026
a7bf581
feat(learnings+tools): Phase 4.4 cross-session context + Phase 2.5.10…
claude Feb 20, 2026
d954019
Merge pull request #135 from PetrAnto/claude/implement-p1-guardrails-…
PetrAnto Feb 20, 2026
21930be
Create code-mode-mcp.md
PetrAnto Feb 20, 2026
84ee68a
Add files via upload
PetrAnto Feb 20, 2026
3796a7b
feat(tools): add Brave web_search tool integration
PetrAnto Feb 20, 2026
457ce29
refactor(tools): optimize web_search from PR #136/#137 merge
claude Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .dev.vars.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@
# .dev.vars is gitignored and used by wrangler dev

ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...

# Cloudflare AI Gateway (alternative to direct provider keys)
# CLOUDFLARE_AI_GATEWAY_API_KEY=your-provider-api-key
# CF_AI_GATEWAY_ACCOUNT_ID=your-account-id
# CF_AI_GATEWAY_GATEWAY_ID=your-gateway-id
# CF_AI_GATEWAY_MODEL=workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast

# Legacy AI Gateway (still supported)
# AI_GATEWAY_API_KEY=your-key
# AI_GATEWAY_BASE_URL=https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/anthropic

# Local development mode - skips Cloudflare Access auth and bypasses device pairing
# DEV_MODE=true
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Deploy to Cloudflare Workers

on:
push:
branches:
- main
workflow_dispatch: # Allow manual trigger

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Deploy to Cloudflare Workers
run: npx wrangler deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

- name: Set OpenRouter API Key
run: |
if [ -n "$OPENROUTER_API_KEY" ]; then
echo "$OPENROUTER_API_KEY" | npx wrangler secret put OPENROUTER_API_KEY
fi
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}

- name: Set Telegram Bot Token
run: |
if [ -n "$TELEGRAM_BOT_TOKEN" ]; then
echo "$TELEGRAM_BOT_TOKEN" | npx wrangler secret put TELEGRAM_BOT_TOKEN
fi
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
36 changes: 31 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ jobs:
- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint

- name: Format check
run: npm run format:check

- name: Type check
run: npm run typecheck

Expand All @@ -31,7 +37,7 @@ jobs:

e2e:
runs-on: ubuntu-latest
timeout-minutes: 15
timeout-minutes: 20
permissions:
contents: write
pull-requests: write
Expand All @@ -50,6 +56,9 @@ jobs:
env:
DISCORD_BOT_TOKEN: "fake-discord-bot-token-for-e2e"
DISCORD_DM_POLICY: "pairing"
- name: workers-ai
env:
CF_AI_GATEWAY_MODEL: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast"

name: e2e (${{ matrix.config.name }})

Expand All @@ -65,6 +74,11 @@ jobs:
- name: Install dependencies
run: npm ci

- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_wrapper: false

- name: Install Playwright
run: npx playwright install --with-deps chromium

Expand All @@ -80,12 +94,24 @@ jobs:
id: e2e
continue-on-error: true
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.E2E_CLOUDFLARE_API_TOKEN }}
CF_ACCOUNT_ID: ${{ secrets.E2E_CF_ACCOUNT_ID }}
WORKERS_SUBDOMAIN: ${{ secrets.E2E_WORKERS_SUBDOMAIN }}
CF_ACCESS_TEAM_DOMAIN: ${{ secrets.E2E_CF_ACCESS_TEAM_DOMAIN }}
R2_ACCESS_KEY_ID: ${{ secrets.E2E_R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.E2E_R2_SECRET_ACCESS_KEY }}
AI_GATEWAY_API_KEY: ${{ secrets.AI_GATEWAY_API_KEY }}
AI_GATEWAY_BASE_URL: ${{ secrets.AI_GATEWAY_BASE_URL }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CLOUDFLARE_AI_GATEWAY_API_KEY: ${{ secrets.CLOUDFLARE_AI_GATEWAY_API_KEY }}
CF_AI_GATEWAY_ACCOUNT_ID: ${{ secrets.E2E_CF_ACCOUNT_ID }}
CF_AI_GATEWAY_GATEWAY_ID: ${{ secrets.CF_AI_GATEWAY_GATEWAY_ID }}
CF_AI_GATEWAY_MODEL: ${{ matrix.config.env.CF_AI_GATEWAY_MODEL }}
TELEGRAM_BOT_TOKEN: ${{ matrix.config.env.TELEGRAM_BOT_TOKEN }}
TELEGRAM_DM_POLICY: ${{ matrix.config.env.TELEGRAM_DM_POLICY }}
DISCORD_BOT_TOKEN: ${{ matrix.config.env.DISCORD_BOT_TOKEN }}
DISCORD_DM_POLICY: ${{ matrix.config.env.DISCORD_DM_POLICY }}
E2E_TEST_RUN_ID: "${{ github.run_id }}-${{ matrix.config.name }}"
run: cctr -vv test/e2e

- name: Convert video and generate thumbnail
Expand All @@ -97,15 +123,15 @@ jobs:
for webm in /tmp/moltworker-e2e-videos/*.webm; do
mp4="${webm%.webm}.mp4"
thumb="${webm%.webm}.png"

# Convert to mp4
ffmpeg -y -i "$webm" -c:v libx264 -preset fast -crf 22 -c:a aac "$mp4"

# Extract middle frame as thumbnail
duration=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$mp4")
midpoint=$(echo "$duration / 2" | bc -l)
ffmpeg -y -ss "$midpoint" -i "$mp4" -vframes 1 -update 1 -q:v 2 "$thumb"

# Add play button overlay using ImageMagick
width=$(identify -format '%w' "$thumb")
height=$(identify -format '%h' "$thumb")
Expand All @@ -115,7 +141,7 @@ jobs:
-fill 'rgba(0,0,0,0.6)' -draw "circle ${cx},${cy} $((cx+50)),${cy}" \
-fill 'white' -draw "polygon $((cx-15)),$((cy-25)) $((cx-15)),$((cy+25)) $((cx+30)),${cy}" \
"$thumb"

echo "video_path=$mp4" >> $GITHUB_OUTPUT
echo "video_name=$(basename $mp4)" >> $GITHUB_OUTPUT
echo "thumb_path=$thumb" >> $GITHUB_OUTPUT
Expand Down
21 changes: 20 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ Thumbs.db
# TypeScript
*.tsbuildinfo

# Generated by wrangler types (regenerated during typecheck)
worker-configuration.d.ts

# Docker build artifacts
*.tar

Expand All @@ -44,4 +47,20 @@ Thumbs.db
*.greger

# playwright-cli
.playwright-cli/
.playwright-cli/

# Terraform
*.tfstate
*.tfstate.*
.terraform/
.terraform.lock.hcl
terraform.tfvars

# E2E test credentials
test/e2e/.dev.vars

# Temporary e2e wrangler configs
.wrangler-e2e-*.jsonc

# npm config (may contain registry overrides for @cloudflare packages)
.npmrc
12 changes: 12 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"useTabs": false,
"trailingComma": "all",
"printWidth": 100,
"arrowParens": "always",
"endOfLine": "lf",
"ignorePatterns": ["dist", "node_modules"]
}
15 changes: 15 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxlint/configuration_schema.json",
"plugins": ["react", "typescript", "unicorn", "oxc", "import", "vitest"],
"categories": {
"correctness": "error",
"suspicious": "warn",
"perf": "warn"
},
"rules": {
"no-unused-vars": "warn",
"react/react-in-jsx-scope": "off",
"import/no-unassigned-import": "off"
},
"ignorePatterns": ["dist", "node_modules", "*.d.ts"]
}
82 changes: 82 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Guidelines for AI agents working on this codebase.

> **IMPORTANT:** Also read `CLAUDE.md` for project instructions and `claude-share/core/SYNC_CHECKLIST.md` for post-task requirements.

## Project Overview

This is a Cloudflare Worker that runs [Moltbot](https://molt.bot/) in a Cloudflare Sandbox container. It provides:
Expand Down Expand Up @@ -244,3 +246,83 @@ R2 is mounted via s3fs at `/data/moltbot`. Important gotchas:
- **Never delete R2 data**: The mount directory `/data/moltbot` IS the R2 bucket. Running `rm -rf /data/moltbot/*` will DELETE your backup data. Always check mount status before any destructive operations.

- **Process status**: The sandbox API's `proc.status` may not update immediately after a process completes. Instead of checking `proc.status === 'completed'`, verify success by checking for expected output (e.g., timestamp file exists after sync).

---

## Multi-Agent Coordination

> Multiple AI assistants (Claude, Codex, others) work on this codebase simultaneously.
> These rules ensure coordination without conflicts.

### Orchestration Documentation

Orchestration docs are stored in a **private companion repo** and symlinked into `claude-share/`.
If `claude-share/` exists locally, read and follow those docs. If not, follow the protocols below.

### Branch Naming Convention

| AI Agent | Branch Pattern | Example |
|----------|---------------|---------|
| Claude | `claude/<task-slug>-<id>` | `claude/parallel-tools-x7k2` |
| Codex | `codex/<task-slug>-<id>` | `codex/cost-tracking-m3p1` |
| Other AI | `bot/<task-slug>-<id>` | `bot/gemini-flash-tools-q2w3` |
| Human | `feat/<slug>` or `fix/<slug>` | `feat/mcp-integration` |

### Session Start Protocol

1. Fetch latest main: `git fetch origin main`
2. Check recent merges: `git log origin/main --oneline -10`
3. Read `claude-share/core/SYNC_CHECKLIST.md`
4. Read `claude-share/core/next_prompt.md` for current task
5. Acknowledge with format:
```
ACK: [Task ID] — [Task Name]
Branch: [branch-name]
Files to modify: [list]
Starting now.
```

### Session End Protocol

1. Update session log (`claude-share/core/claude-log.md` or equivalent)
2. Update `claude-share/core/GLOBAL_ROADMAP.md` — task status + changelog entry
3. Update `claude-share/core/WORK_STATUS.md` — sprint state
4. Update `claude-share/core/next_prompt.md` — point to next task
5. Run `npm test && npm run typecheck`
6. Commit and push

### Verification Checklist (Before Claiming "Done")

- [ ] All changes compile: `npm run typecheck`
- [ ] All tests pass: `npm test`
- [ ] No secrets committed (check `git diff --staged`)
- [ ] Session log updated
- [ ] Global roadmap updated
- [ ] Work status updated
- [ ] Next prompt updated
- [ ] Branch pushed

### Parallel Work Rules

1. **Check WORK_STATUS.md** before starting — avoid working on same files as another agent
2. **Claim your task** — Update the Parallel Work Tracking table immediately
3. **Small, atomic PRs** — One task per branch, one concern per PR
4. **No cross-branch dependencies** — Each branch must work independently
5. **Communicate via docs** — If you discover something another agent needs to know, write it in WORK_STATUS.md under "Notes for Other Agents"

### Handoff Protocol

When handing off work to another AI agent:
1. Commit all changes (even partial work)
2. Update `next_prompt.md` with detailed context
3. Add "Notes for Next Session" to your session log entry
4. Push your branch
5. If blocked, add to the "Blocked" table in WORK_STATUS.md

### Human Checkpoint Format

```
🧑 HUMAN CHECK X.X: [Description of what to test] — ⏳ PENDING
```

Human checkpoints require manual verification before the next phase can begin. Never skip or auto-resolve these.
Loading