Skip to content

Release: v0.5.0 - #190

Merged
themightychris merged 9 commits into
mainfrom
develop
Sep 18, 2026
Merged

themightychris merged 9 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown

The members roster now shows how each member got here and whether GitHub, Slack, and their mailbox still vouch for them: origin and GitHub-reputation badges (with daily re-checks for deleted or suspended GitHub accounts), Slack sign-in recency, Postmark bounces, row-local spam signals with an attention tint, an origin filter, and keyboard triage.

Improvements

themightychris and others added 9 commits September 18, 2026 16:17
…ce webhook

The roster gains origin, GitHub facts (captured at sign-in, re-probed
daily), Slack SSO recency, Postmark bounces, and row-local signals with
an attention tint; the private profile grows the three fields behind
them; a new webhook spec covers Postmark bounces; the pipeline gains a
github-probe evaluator.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
…t probe

/user already returns created_at, public_repos, followers, following
and type; store them on the private profile on every GitHub sign-in.
probeGitHubUser() asks GET /user/{id} with the OAuth app's client
credentials — a 404 means GitHub deleted or suspended the account.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
Best-effort private-profile write on all three assertion paths so the
roster can show whether a member has actually signed into Slack.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
POST /api/_webhooks/postmark/bounce, guarded by POSTMARK_WEBHOOK_SECRET
(bearer or basic-auth password), stores terminal bounce types on the
member's private profile. A hard bounce on mail we already send is the
reliable "mailbox disabled" signal; no SMTP probing of our own.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
…, signals

Row-local signals (never-signed-in, no-avatar, no-bio, bio links,
email/name mismatch, bounced email, GitHub gone/new/inactive) count
toward an attention score; positives (slack-sso, has-footprint) are
informational. Linked accounts on the requested page are re-probed
against GitHub when their record is older than a day, with bounded
concurrency and a failure-keeps-old-record rule. New origin filter.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
Signed-up-here / Imported, GitHub (linked, with age, repos, followers;
red when gone; amber when new or inactive), Slack SSO recency, bounced
email, email-vs-name mismatch, links in bio, no bio / no avatar. Rows
tint amber at three negative signals and red at five or on a critical
one. Default filter is "no vote yet"; j/k/s/n/Enter drive triage.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFyA5poHwrhAktrnsKrUiQ
feat: roster signals — origin, GitHub reputation, Slack SSO, bounces
@github-actions

Copy link
Copy Markdown
Author

Changelog

- feat: roster signals — origin, GitHub reputation, Slack SSO, bounces [#189] @themightychris

@themightychris themightychris changed the title Release: v0.4.1 Release: v0.5.0 Sep 18, 2026
@themightychris
themightychris merged commit 322f5e2 into main Sep 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant