Commit graph

137 commits

Author SHA1 Message Date
5357812660
Merge pull request #1 from blacklight/copilot/fix-failing-github-actions-job-build
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
fix(tests): handle FastAPI _IncludedRouter in adapter structure test
2026-07-23 19:35:03 +01:00
copilot-swe-agent[bot]
234635a602
chore: remove build/ from tracking and add to .gitignore 2026-07-23 18:16:53 +00:00
copilot-swe-agent[bot]
bc03915e95
fix(tests): handle _IncludedRouter in test_fastapi_adapter_structure
FastAPI >= 0.115 stores included routers as _IncludedRouter objects in
app.routes (no .path attribute) instead of flattening them. Collect
paths from both direct routes and original_router.routes.
2026-07-23 18:13:54 +00:00
copilot-swe-agent[bot]
9fe6d8eae2
chore: plan for fixing test_fastapi_adapter_structure 2026-07-23 18:12:15 +00:00
copilot-swe-agent[bot]
b97b608f0f
Initial plan 2026-07-23 18:09:46 +00:00
822c90836f
Bump version: 0.2.20 → 0.2.21
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.2.21
2026-07-23 19:58:49 +02:00
b2047e1f31
fix(storage): Allow multiple replies/quotes per actor via object_id
- File adapter keys reply/quote files by object_id; add v3 migration to rename/write
- DB unique constraint and upsert keys now include object_id
- Update mention index entries to include object_id
2026-07-23 19:58:21 +02:00
e82d53bc04
Bump version: 0.2.19 → 0.2.20
Some checks failed
publish-pypi / publish (push) Has been cancelled
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
v0.2.20
2026-03-20 14:02:42 +01:00
1fef6e6900
fix(inbox): Reject non-object activities
Raise ActivityPubError when activity data is not a dict
2026-03-20 14:02:29 +01:00
97a145fee2
Bump version: 0.2.18 → 0.2.19
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.19
2026-03-20 13:20:07 +01:00
84dca734ff
docs(changelog): Updated CHANGELOG 2026-03-20 13:20:04 +01:00
a76a8ada4b
fix(outbox): Respect explicit to/cc and avoid DM follower fanout
- Preserve empty cc when to/cc provided; default only when unaddressed
- Fan out to follower inboxes only when activity targets followers/public
- Add tests for direct message and unlisted delivery behavior
2026-03-20 13:18:48 +01:00
42cece9a34
Bump version: 0.2.17 → 0.2.18
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.18
2026-03-20 08:55:26 +01:00
c719363adf
fix(inbox): Skip storing private/direct AP interactions
Some checks are pending
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
- Add _is_publicly_addressed check before storing Create interactions
- Private mentions/replies (no Public in to/cc) are not stored
- Unlisted posts (Public in cc) are still stored
- Callback still fires for all interactions (enables notifications)
- Document behavior in README under Interaction Callbacks
2026-03-20 01:44:35 +01:00
b52001ba0a
Bump version: 0.2.16 → 0.2.17
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.17
2026-03-19 21:58:20 +01:00
4f1e8c3de0
docs(changelog): Updated CHANGELOG 2026-03-19 21:58:18 +01:00
9eae846f12
fix: Sign actor GET fetches in inbox/outbox processors
Fixes fetch issues (401) with instances that enforce signed requests.

- Add HTTP Signature headers via sign_request for actor fetch requests
- Add tests asserting signing and signed headers are included
2026-03-19 21:56:39 +01:00
91ff1d50bd
Bump version: 0.2.15 → 0.2.16
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.2.16
2026-03-15 01:13:16 +01:00
ea505d4c7b
feat: Add async delivery option for outbox fan-out
- Add `async_delivery` param to handler and outbox (default True)
- Run delivery in background daemon thread when enabled
- Update docs and adjust tests to use synchronous delivery
2026-03-15 01:12:55 +01:00
1eb0b89fed
Bump version: 0.2.14 → 0.2.15
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.15
2026-03-14 18:11:18 +01:00
2c3b0208ce
feat(outbox): Add publish_activity and Like/Announce/Undo builders
- Add OutboxProcessor builders for Like, Announce, and generic Undo
- Add ActivityPubHandler.publish_activity pass-through for non-Create types
2026-03-14 18:10:44 +01:00
ac192e602f
Bump version: 0.2.13 → 0.2.14
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.14
2026-03-13 23:19:21 +01:00
76f09cb9cd
feat(outbox): Deliver activities to mentioned actors in to/cc fields
OutboxProcessor.publish() now delivers to actors in the activity's
to and cc fields, not just followers. This enables notifications
for mentioned users (e.g., @user@domain mentions).

- Add _is_actor_url() to filter non-actor URLs
- Add _extract_recipient_actors() to extract actors from to/cc
- Add _fetch_actor() with caching for actor document fetches
- Add _collect_recipient_inboxes() to resolve actor inboxes
- Deduplicate inboxes when mentioned actor is also a follower
2026-03-13 23:18:50 +01:00
0407f19805
Bump version: 0.2.12 → 0.2.13
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.13
2026-03-12 23:57:42 +01:00
0a341d9f5c
docs(changelog): Updated CHANGELOG 2026-03-12 23:57:39 +01:00
3ecd2cb1b5
feat(storage): Add schema versioning and auto migrations to file storage
- Add .schema_version tracking and v2 object_id index backfill migration
- Document auto_migrate option in README and architecture docs
- Add tests for version file, opt-out, and index backfill behavior
2026-03-12 23:56:00 +01:00
1f1dd8d010
feat(storage): Add object_id index backfill migration
This follows the same migration pattern for file storage implemented for
the mentions index.
2026-03-12 23:45:37 +01:00
a95d04b4d8
Bump version: 0.2.11 → 0.2.12
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.12
2026-03-12 23:41:28 +01:00
2e92168624
docs(changelog): Updated CHANGELOG 2026-03-12 23:41:23 +01:00
31f7d55743
docs: Document get_interaction_by_object_id and file index layout
- Add README API docs for get_interaction_by_object_id
- Update architecture storage contract and _object_ids index directory
2026-03-12 23:40:07 +01:00
00f20eb294
docs(agents): Refined execution style 2026-03-12 23:38:09 +01:00
42a4bc6b46
Bump version: 0.2.10 → 0.2.11
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.11
2026-03-11 23:09:48 +01:00
b384e72c6b
docs(changelog): Updated CHANGELOG 2026-03-11 23:09:44 +01:00
6a4fd35155
docs(readme): Add more badges and table of contents
- Add shields for issues, activity, license, PyPI, stars, forks, sponsor
- Add generated TOC with section anchors
2026-03-11 23:08:19 +01:00
db78707d29
docs(license): Add AGPL-3.0 license file
It was already specified in the project setup, but the text file was
missing.
2026-03-11 23:06:44 +01:00
7b23f951ae
chore(pre-commit): Add md-toc hook for README
Configure md-toc with GitHub style and max depth 6
2026-03-11 23:03:59 +01:00
5ced9539bd
Bump version: 0.2.9 → 0.2.10
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.10
2026-03-11 22:23:12 +01:00
62fe40c4c8
docs(changelog): Updated CHANGELOG 2026-03-11 22:23:08 +01:00
22bf2c169f
fix: Include exception details in outbox delivery retry logs but not the full stack trace 2026-03-11 22:22:15 +01:00
785872cd7d
Bump version: 0.2.8 → 0.2.9
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.9
2026-03-11 20:11:31 +01:00
bc4b5cc8ac
docs(changelog): Updated CHANGELOG 2026-03-11 20:11:29 +01:00
80cdbd3427
style: Minor style tweaks
- Increase author photo dimensions to 35px
- Remove author name font-size override
- Use large max-height for expanded collapsible content
2026-03-11 20:10:45 +01:00
9b6483e53e
Bump version: 0.2.7 → 0.2.8
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.8
2026-03-11 18:34:46 +01:00
de477dd0fb
docs(changelog): Updated CHANGELOG 2026-03-11 18:34:44 +01:00
dca40b1707
style: Unset max-height for expanded interactions 2026-03-11 18:33:46 +01:00
1b4d77e546
Bump version: 0.2.6 → 0.2.7
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.7
2026-03-11 17:20:40 +01:00
33d0ba1c51
docs(changelog): Updated CHANGELOG 2026-03-11 17:20:37 +01:00
8e9cd6b7bd
fix(storage): More robust parsing in delete_interaction_by_object_id
The method scans `data_dir/interactions/*/*.json`.

That includes the reverse-mention index files under
`interactions/_mentions/*.json`, which are stored as a JSON list. When
the scan hits one of those, the old code did `data.get(...)` and crashed
with:

```
AttributeError: 'list' object has no attribute 'get'.
```

- Ignore non-dict JSON while scanning
- Keep the mention index consistent: when an interaction is deleted by
  object_id, we now remove its entry from _mentions (same behavior as
  delete_interaction).
2026-03-11 17:17:56 +01:00
d0078f0644
Bump version: 0.2.5 → 0.2.6
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-pypi / publish (push) Has been cancelled
v0.2.6
2026-03-11 00:29:37 +01:00
39ca57e546
docs: Document mention index and backfill mentions migration
- Add CHANGELOG entry for mention indexing, new APIs, and handler
  options
- Add README section on enabling DB mention index and using
  backfill_mentions
2026-03-11 00:29:18 +01:00