Chore/canonical unified proof gate - #57
Open
outlaw-dame wants to merge 130 commits into
Open
outlaw-dame wants to merge 130 commits into
outlaw-dame wants to merge 130 commits into
Conversation
Update local branch to master
…ell as now displaying and associating with a link to `/tags/<tag>`
rename public to isPublic so it does not conflict with some programming laguages
turns out not to be needed
add basic Frontend and Api to interact with the podprovider
also update the readme with instructions
make it possible to build the app with ionic
…chitecture Connects the memory UI to the mastopod Phase 5.5 AT firehose ingress pipeline. API additions (api/src/): db/atBridgeSchema.ts - at_identities, at_posts, at_firehose_cursors tables + unified_feed_view db/migrations/0001_at_bridge.sql - SQL migration for all AT bridge tables and views routes/atBridge.ts - GET /at/feed, /at/posts, /at/identities, /at/status, POST /at/subscribe routes/atBridgeWebhook.ts - POST /at/webhook/ingress (receives trusted at.ingress.v1 events) services/AtBridgeIngestionService.ts - Writes ingress events to DB (idempotent upserts) index.ts - Registers atBridgePlugin + atBridgeWebhookPlugin Frontend additions (frontend/src/): stores/atBridgeStore.ts - Pinia store for unified feed, AT posts, firehose status components/UnifiedFeedItem.vue - Renders AT + ActivityPods posts with source badges components/UnifiedFeedList.vue - Unified feed with source filter tabs + infinite scroll Integration architecture: mastopod at.ingress.v1 → AtIngressWebhookForwarder → POST /at/webhook/ingress → AtBridgeIngestionService → at_posts / at_identities tables → GET /at/feed → UnifiedFeedList (memory UI) Security: - FIREHOSE_BRIDGE_SECRET env var for webhook authentication (constant-time compare) - DID and AT URI validation before storage - Idempotent upserts prevent duplicate content
AT Protocol Bridge: Phase 5.5 integration with mastopod-federation-ar…
docker-compose.local.yml: - Complete local stack: PostgreSQL + Memory API + Vite frontend + Mastopod sidecar - All services wired together via Docker internal network - Shared FIREHOSE_BRIDGE_SECRET for HMAC-authenticated webhook - Health checks on API before Mastopod starts forwarding events api/src/index.ts: - Added GET /health endpoint for Docker healthcheck and Mastopod wait-for-api api/drizzle.config.ts: - Include atBridgeSchema.ts in schema array so drizzle:push creates AT tables frontend/src/views/HomeView.vue: - Added tab navigation: 'Federated Feed' (default) and 'My Posts' - Federated Feed tab renders UnifiedFeedList (AT Protocol + ActivityPods) - My Posts tab retains existing CreatePostForm + PostList
Phase 5.5: Full local stack setup + HomeView federated feed tab
…atus, unified feed, OIDC auth, new specs and utils
…ns, frontend sync updates
…, reply root reconciliation Sprint 1: - Add i18n keys for popular feed heading/subtitle - Carousel navigation via navigateToPost with URI filter - DB indexes 0007 (engagement), 0008 (ap_remote quoted_post_uri) - AP quote_counts CTE: fan-out-safe UNION with outer GROUP BY - Engagement weight constants in feedMetrics utils Sprint 2 (test coverage + migrations + self-healing): - extractQuotedPostUri: 18 unit tests (vendor precedence, scheme security, length boundary) - UnifiedFeedList carousel: navigateToPost and no-URI exclusion tests - atBridge UNION fan-out integration test (5th test, mode=chronological) - Migration 0009: partial index on ap_remote_posts(reply_parent_uri) - reconcileApRemoteReplyRoots(): chain-walk (max depth 50, cycle-safe), idempotent batch UPDATE - startApRemoteReconciliationService(): 5-min background sweep, wired in index.ts All tests pass: 61 API / 27 frontend. Typecheck clean.
useKeywordRules composable: typed CRUD wrappers for the sidecar GET/POST/PUT/DELETE /internal/admin/spam/keyword-rules endpoints with pending/error reactive state and consistent error message extraction. DashboardFederationView: keyword rules panel slides in when the Keyword Reject MRF module card is toggled on — shows the live rule list (semantic/literal badge, threshold, whole-word/case flags) and an add/edit form with a semantic toggle, threshold slider, and literal options. Rules refresh automatically after every mutation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- switch moderation reads to /api/dashboard/apps/moderation/{blocks,mutes,filters}
- switch block/mute writes to delegated app moderation endpoints
- keep existing retry/backoff behavior and auth headers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.