Commit graph

11 commits

Author SHA1 Message Date
al-munazzim
b516cb2a1e
fix: re-open dismissed notifications on new GitHub activity (#3)
* feat: add tag/untag/check-prior commands for triage dedup

- Add 'tags' column to notifications table (comma-separated)
- argus notif tag <id> <tag> — add tags like triaged, hostile, follow-up
- argus notif untag <id> <tag> — remove tags
- argus notif check-prior <url> — check if URL was previously triaged
  (exit 0 = prior found, exit 1 = first touch)
- Show tags in notif list output with 🏷 prefix
- Add processing + tags columns to migration function
- Bump version to 0.5.0

Motivation: postmortem/2026-03-26-duplicate-triage-2504.md
Prevents duplicate triage comments by providing a fast local
dedup check before hitting the GitHub API.

* fix: re-open dismissed notifications on new GitHub activity

Previously, notif pull skipped any notification ID already in the DB,
even if GitHub re-triggered it (new @mention, comment, etc).
This caused mentions to be silently swallowed - 5 notifications
were stuck dismissed for up to 4 days.

Now: if a dismissed notification appears in the GitHub API again
(meaning it has new unread activity), undismiss it and update the
reason field. Reports re-opened count in pull output.

* fix: avoid sqlite3.Row.get in notif audit escalation

---------

Co-authored-by: Nazim <nazim@openclaw.ai>
2026-04-29 21:08:16 +02:00
31ca165499 fix: use DELETE (done) instead of PATCH (read) for GitHub notifications
PATCH only marks as read — notification stays in inbox.
DELETE marks as done — removes from inbox entirely.
2026-03-26 16:23:32 +00:00
34dfdaaa70 fix: mark GitHub notifications as read after DB insert
Prevents accumulation of ~5000 unread notifications on GitHub,
which caused argus notif pull to paginate through all of them
on every poll (taking 10-20s instead of <1s).

Each notification is marked as read via PATCH /notifications/threads/{id}
immediately after being inserted into the DB. Best-effort — failures
don't break the pull.
2026-03-26 15:36:46 +00:00
f37f3d62f6 feat: notif lock/unlock for duplicate processing prevention, dismiss auto-logs activity 2026-03-24 12:26:30 +00:00
091e17c55b feat: smart notification filtering with reasons, own-PR detection, pagination
- Add filter_rules table for configurable dismiss/keep rules
- Batch own-PR lookup via GitHub search API (1 call vs N)
- CI status check only for own PRs (targeted, not blanket)
- filter_reason column on every notification explaining why kept/dismissed
- --no-filter flag to bypass filtering
- notif filter list/add/rm subcommands for rule management
- notif list --dismissed/--own flags
- gh_api --paginate support (was capped at 50)
- Auto-migration for existing databases
- Version bump to 0.4.0
2026-03-19 14:22:15 +00:00
Zeus
8eff3e548b feat: add repo watching commands
- argus repo list: show watched repositories
- argus repo watch <owner/repo>: subscribe to notifications
- argus repo unwatch <owner/repo>: unsubscribe

Works with both gh (GitHub) and tea (Forgejo) backends.

Bump to v0.3.0
2026-02-22 11:56:01 +00:00
Zeus
7bb19ef3fb fix: filter NOTE: lines from tea output before YAML parsing
Also construct proper Forgejo URLs from repo+index
2026-02-22 11:16:58 +00:00
Zeus
b8f67ca46c fix: bind datasette to 0.0.0.0 for remote access 2026-02-22 10:57:20 +00:00
Zeus
91b7bc3ec1 feat: add backend flag for GitHub/Forgejo support
- --backend gh|tea flag on notif pull command
- ARGUS_BACKEND env var (default: gh)
- gh backend: uses gh CLI for GitHub notifications
- tea backend: uses tea CLI for Forgejo notifications

Bump to v0.2.0
2026-02-22 10:47:18 +00:00
Zeus
4d57e93196 feat: single port config (dashboard on port, datasette on port+1)
- ARGUS_PORT now sets dashboard port, datasette auto-derives as port+1
- Dashboard dynamically injects correct datasette URL
- Simplifies multi-agent deployment (each agent gets own port namespace)
- Removed ARGUS_DASHBOARD_PORT env var
2026-02-22 10:34:57 +00:00
Zeus
90361fbe16 feat: initial Argus implementation
- CLI with notification, activity, and escalation commands
- SQLite database with schema
- Datasette + static HTML dashboard
- Systemd service for background operation
- Install/uninstall scripts
- SKILL.md and procedures for sub-agent usage
2026-02-22 10:25:46 +00:00