Commit Graph

6 Commits

Author SHA1 Message Date
0389ae0b88 refactor: drop old env var fallbacks, GITEA_ prefix only
Removed PI_WEBHOOK_*, PI_BOT_POLL_INTERVAL, PI_NOTIF_POLL_INTERVAL,
PI_GIT_USER, OPENCLAW_* fallbacks. Only GITEA_* vars now.
GITEA_TOKEN still falls back to PI_GIT_TOKEN in client.ts for CLI compat.
2026-03-13 18:28:28 -07:00
c07bcca417 refactor: consolidate env vars under GITEA_ prefix
All env vars now use GITEA_ prefix with fallback to old names:
- GITEA_TOKEN (was PI_GIT_TOKEN)
- GITEA_USER (was PI_GIT_USER)
- GITEA_WEBHOOK_HOST/PORT/TOKEN/URL (was PI_WEBHOOK_*)
- GITEA_POLL_INTERVAL (was PI_BOT_POLL_INTERVAL)
- GITEA_NOTIF_INTERVAL (was PI_NOTIF_POLL_INTERVAL)
- GITEA_HOOKS_URL/PATH/TOKEN (was OPENCLAW_HOOKS_*)

Old names still work as fallbacks for backward compat.
2026-03-13 18:24:22 -07:00
1d85ab86ba feat: auto-detect pi-bot vs openclaw runtime for event delivery
- pi-bot: uses ctx.sendUserMessage (persistent session, followUp mode)
- openclaw: POSTs to /hooks/agent endpoint (request/response model)
- Detection: checks if ctx.sendUserMessage exists on session_start
- openclaw env vars: OPENCLAW_HOOKS_URL, OPENCLAW_HOOKS_PATH, OPENCLAW_HOOKS_TOKEN
- Same extension, tools, poller, and @mention routing work in both runtimes
2026-03-13 18:19:00 -07:00
83a42de9e2 feat: @mention routing via Gitea notifications API
- Replace per-repo event polling with notification-based polling
- Collab repos default to mention-only mode (respond only when @mentioned)
- Own repos default to all-events mode (respond to everything)
- Parse @mentions and extract directive text for focused LLM context
- Notification poll interval: 30s (configurable via PI_NOTIF_POLL_INTERVAL)
- Mark notifications as read after processing (no ID tracking needed)
- Add gitea_repo_config tool to switch repos between 'all' and 'mention' modes
- Add gitea_tracked_repos tool to show all repos and their response modes
- Persist per-repo configs to disk across reloads
- Multi-bot coordination: issues can @mention different bots with directives
2026-03-13 17:52:47 -07:00
b868ad4df5 fix: POST for file creation (Gitea 1.25+), add edit_issue tool, persist poll state
- files.ts: Use POST for new files, PUT for updates (Gitea 1.25 requires this)
- issues.ts: Add editIssue() for state/title/body changes
- write-tools.ts: Add gitea_edit_issue tool (open/close/edit issues)
- webhook/server.ts: Persist lastPollAt to disk to prevent duplicate
  events on reload; use followUp delivery to queue events during LLM turns
- index.ts: Use deliverAs:'followUp' for sendUserMessage
2026-03-13 17:14:06 -07:00
25e49db155 feat: consolidated Gitea API client and pi extension
- Pure fetch-based API client (src/) with zero external dependencies
- Pi extension adapter (pi-extension/) registering 17 tools
- Standalone CLI (cli.ts) replacing gitea-scripts/gitea.js
- Token auth everywhere (no HMAC secrets)
- SKILL.md for agent auto-discovery
- TOOL.md with full parameter reference

Consolidates pi-bot/extensions/pi-gitea and clawbot/gitea-scripts
into a single shared package.
2026-03-13 14:49:55 -07:00