a0e15975df
fix(invites): list invites via per-group KV index instead of kv.list
...
Cloudflare KV's list operation is eventually consistent and can lag
behind a fresh write, so pending invites were invisible right after
creation (GET /admin/api/groups/:id/invites returned {invites: []}).
Keep a per-group token index (invite:group:{id}) updated on create,
revoke, accept and expiry; the members panel also inserts the freshly
created invite into the list immediately and copies the absolute link.
2026-08-11 23:53:58 +08:00
ce9f6147f1
docs: document roles, invites, audit log and self-signup
...
- configuration.md (en/zh): ALLOW_SELF_SIGNUP, AUDIT_RETENTION_DAYS,
member schema, role table, invite/self-signup sections, invite KV key,
audit_logs D1 table, new admin endpoints
- deployment.md (en/zh): migration list through 0005
- README (en/zh) and AGENTS.md: access model, invites, audit log
- config.example.yaml: members example; .env.example: new variables
- .gitignore: ignore local saas-roadmap.md
2026-08-11 23:38:50 +08:00
aec0d1a257
feat: add gitea/forgejo support
2026-08-11 22:01:04 +08:00
e1b1daac98
chore: remove dead code and unused dependencies
...
Cleans up stale implementation artifacts:
- Delete legacy `src/webhook.ts` (dead code per AGENTS.md)
- Delete admin composables `useMe.ts` and `useRoutes.ts`
- Remove unused dependencies `jose` and `yaml`
- Remove stale `Me` interface, `FILTER_LABELS`, `invalidateConfigCache`, and formatter re-exports
2026-08-11 16:31:13 +08:00
76ba2c0a89
feat: add Discord role mention support to routes
2026-08-11 15:48:44 +08:00
feada32e83
feat: add stop property to route for exclusive matching
2026-08-08 00:40:45 +08:00
wyf9
cb18683fb8
chore: add db:migrate scripts and document the D1 migration step
...
- Add npm scripts db:migrate (local) and db:migrate:prod (remote) for
wrangler d1 migrations apply webhooker
- Document the D1 database creation + migration step in the deployment
guides (README en/zh, docs en/zh) and AGENTS.md
- Note the d1 execute fallback for databases already migrated manually
2026-08-05 17:39:14 +08:00
wyf9
afe19795b1
docs: sync documentation with current codebase
...
- Update event formatter count 23 -> 28 (add ping, workflow_job, status, deployment, check_suite)
- Document Telegram support end-to-end (routes, /gh commands, richheader, secrets)
- Fix route schema to use targets array and group fields (owners, emoji)
- Correct KV/D1 storage layout (msg:*, i18n:*, D1 links/send_logs)
- Note GITHUB_APP_ID/GITHUB_PRIVATE_KEY are unused; drop legacy DISCORD_CHANNEL_ID/PORT/CONFIG_PATH
- Remove stale Docker deployment section
- Update color table, branch filter compatibility, admin API endpoints
- AGENTS.md: add Documentation section requiring doc updates after functional changes
2026-08-05 17:22:15 +08:00
wyf9
e343885272
fix(docs): full repo permissions in github app settings
2026-08-05 15:20:37 +08:00
github-actions[bot]
cd591d658a
chore: auto-fix lint & formatting [skip ci]
2026-08-03 01:52:14 +00:00
2dcb684e94
docs: document workflow_run in-place message updates
2026-08-03 09:51:40 +08:00
github-actions[bot]
d6c15a32cd
chore: auto-fix lint & formatting [skip ci]
2026-08-02 23:31:48 +00:00
4f6b5929c1
docs: document Telegram richheader avatar card
2026-08-03 07:30:33 +08:00
github-actions[bot]
568e206643
chore: auto-fix lint & formatting [skip ci]
2026-08-02 21:19:33 +00:00
bd7a8f2632
feat: add Telegram push support with multi-target routes
...
Add a platform-aware route target system so a single route can forward
to several destinations at once (e.g. a Discord channel and a Telegram
group). Route.target becomes Route.targets[] with per-entry platform,
channelId/threadId for Discord and chatId/topicId for Telegram; the
legacy single-target format is normalized on load and accepted by the
admin API.
Implement the Telegram driver with HTML rendering and Bot API
sendMessage (chat_id + message_thread_id for topics, retry on 429/5xx),
plus /gh commands served over POST /telegram/webhook: login, logout,
comment, merge and close. The comment/merge/close commands resolve the
issue or PR from the replied-to notification message. OAuth binding now
stores a D1 telegram_links mapping and replies with a confirmation.
Sync the Telegram webhook from the scheduled trigger via setWebhook.
2026-08-03 05:19:05 +08:00
3a6a2cbbc5
feat: migrate send logs and discord links to D1
2026-08-03 05:18:58 +08:00
0af6b9a4b8
refactor: modularize into core/events/formatters/drivers
2026-08-03 03:36:36 +08:00
github-actions[bot]
7b341ff9f4
chore: auto-fix lint & formatting [skip ci]
2026-08-02 19:03:12 +00:00
d540d465d1
refactor: replace Discord Gateway DO with Interaction Endpoint
2026-08-03 03:02:42 +08:00
1fc702ceb4
docs: add filter tutorial and clarify exact matching rules
2026-08-03 00:39:52 +08:00
8c9720b1b3
docs: document admin groups, OAuth redirect, and API renames
2026-08-03 00:33:18 +08:00
44b8fead78
feat: add merge/close PR buttons to Discord PR notifications
2026-08-02 23:02:37 +08:00
d996dbe45d
docs: align VitePress site with REST send, optional gateway and slash commands
...
- deployment: drop DISCORD_CHANNEL_ID, add ADMIN_USER_IDS, PKCS#8 key note,
applications.commands invite scope, and an optional Gateway section
- getting-started: PKCS#8 .dev.vars example, remove channel ID
- introduction: REST delivery, optional DiscordGateway DO, delivery dedup,
/admin Web UI in architecture and data flow
- index: refresh Workers feature, add Web UI & slash commands feature
2026-08-02 07:02:40 +08:00
4349b24d2a
docs: document WebUI, optional gateway, routes-only config and slash commands
2026-08-02 06:51:41 +08:00
512d4b01d5
initial commit
2026-07-24 21:48:50 +08:00