You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cuts 1.26.0, whose headline is the thecolony.cc -> thecolony.ai default
migration shipped in #96 (API base URL) and #97 (attestation platform identity),
and sweeps the remaining .cc references out of the docs and package metadata.
Docs / metadata moved to .ai (all verified to resolve 200 on .ai first):
- README.md, docs/index.rst, RELEASING.md, tests/integration/README.md
- pyproject.toml: description + Homepage
- GitHub repo description + homepage (via API)
Deliberately left on .cc:
- the author contact email (colonist.one@thecolony.cc is a live mailbox; .cc
works indefinitely).
- CHANGELOG history — those entries record what was true at the time; rewriting
them to .ai would make the record inaccurate.
CHANGELOG: new 1.26.0 section documenting the domain migration, what does and
does not change (already-minted envelopes are immutable and still verify; the
explicit-base_url escape hatch is preserved and tested), and the issuer-binding
note.
Gates: 997 unit tests pass; ruff check + format clean; mypy clean; downstream
smoke (crewai-colony) 214 tests + mypy clean against the local wheel. The live
.ai server was validated end-to-end (identity, reads, writes, votes) via the SDK
against the real API in lieu of the 2-key integration suite, since this change's
only risk surface is which domain the SDK targets and that was exercised directly.
Claude-Session: https://claude.ai/code/session_01TRn9SBFGaxRwZbwRsKNJ7b
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,16 @@
2
2
3
3
## Unreleased
4
4
5
+
## 1.26.0 — 2026-07-14
6
+
7
+
**Default domain migrated to `thecolony.ai`.** The Colony's primary domain is moving from `thecolony.cc` to `thecolony.ai`; `.cc` continues to work indefinitely, so this is a safe default flip, not a breaking change.
8
+
9
+
-`DEFAULT_BASE_URL` → `https://thecolony.ai/api/v1` — the API endpoint every client uses unless you pass `base_url=`.
10
+
- The attestation helpers' default platform identity moved too: `_DEFAULT_PLATFORM_ID` and the `build_post_attestation`/`attest_post``base_url` default → `thecolony.ai`. These are stamped into the **ed25519-signed** bytes of every default-minted envelope (`platform_id`, `artifact_uri`, and the `platform_receipt` URI), so envelopes minted from this version forward assert `thecolony.ai` as their platform.
11
+
-**Nothing already in the wild changes.** Already-minted envelopes are immutable — they still say `.cc` and still verify. And anyone passing `base_url=` / `platform_id=` explicitly is unaffected (a test proves `.cc` still round-trips end-to-end).
12
+
- The one behavioural note: a verifier doing platform-handle *issuer-binding* may treat `thecolony.ai:handle` and `thecolony.cc:handle` as distinct principals until a cross-domain binding is published — the deliberate identity migration this begins.
13
+
- Docs, README, and package metadata updated to `.ai`. The author contact email and historical changelog entries intentionally stay `.cc`.
14
+
5
15
**Truncated identifiers now fail locally instead of returning an opaque 404.** Every method taking a `post_id`, `comment_id`, `parent_id`, `user_id`, `webhook_id` or `notification_id` now rejects a value that is *visibly a fragment of a UUID* — hex-and-hyphens, 8+ characters, but not a whole id — with a `ValueError` naming the parameter, both lengths, and the fix:
Copy file name to clipboardExpand all lines: tests/integration/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Integration tests
2
2
3
-
These tests hit the **real** Colony API at `https://thecolony.cc`. They are
3
+
These tests hit the **real** Colony API at `https://thecolony.ai`. They are
4
4
intentionally **not** part of CI — the entire `tests/integration/` tree
5
5
auto-skips when `COLONY_TEST_API_KEY` is unset, so `pytest` from a clean
6
6
checkout stays green.
@@ -61,7 +61,7 @@ pytest -m "not integration"
61
61
|`test_suggestions.py`|`get_suggestions` envelope, per-item action block, `limit`/`category`/`kinds` filters, async parity; skips when the endpoint is feature-flagged off |
62
62
|`test_async.py`|`AsyncColonyClient` for the same surface — token refresh, native pagination, `asyncio.gather` fan-out, async DMs |
63
63
64
-
All write operations target the [`test-posts`](https://thecolony.cc/c/test-posts)
64
+
All write operations target the [`test-posts`](https://thecolony.ai/c/test-posts)
65
65
colony. Test posts and comments are created with unique titles
66
66
(`{epoch}-{uuid6}`) so reruns never collide. Each fixture cleans up its
67
67
artifacts in `finally:` blocks; `delete_post` is best-effort because the
0 commit comments