feat(overton): add category domain decomposition with interactive charts and TDD tests

Populated the right_wing_motions.category column (previously 100% NULL across
3,030 motions) via parallel subagent classification — 80 agents derived a
10-category taxonomy and classified all motions in minutes.

Adds to the Overton QMD report:
- Plotly dropdown filter on Chart 1 to toggle between policy categories
- Chart 7: category delta bar chart (pre/post centrist support per domain)
- Chart 8: quarterly domain trajectories for the 5 largest categories
- Domain Decomposition narrative section

Also fixes a Streamlit tab crash (m.text -> m.body_text) and adds TDD tests.
This commit is contained in:
2026-06-15 21:49:37 +02:00
parent a5624f65bc
commit 19e8d5b8ba
24 changed files with 1296 additions and 140 deletions
+589
View File
@@ -339,5 +339,594 @@
"target_id": null,
"metadata": {},
"created_at": "2026-05-04T19:55:29.113927Z"
},
{
"id": "2f434402-546e-462e-b8a8-ad0c281e9861",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T20:56:45.614872Z"
},
{
"id": "221594e6-a969-490e-b4da-c2fbd8afe728",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T20:56:46.252164Z"
},
{
"id": "58ed7f35-8988-463c-be7d-bf4d5378d0fd",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T20:56:46.292849Z"
},
{
"id": "10b7dcfe-d039-4067-9383-0282fe627cc1",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T22:22:47.838874Z"
},
{
"id": "c078bdde-813b-473e-9382-524abf1ac822",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T22:22:48.203898Z"
},
{
"id": "3d4f1480-c467-4ec2-bedb-514275bd17a6",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T22:22:48.228872Z"
},
{
"id": "9dc9b240-8830-4249-87f7-e80c613b8dc4",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T22:34:08.839627Z"
},
{
"id": "09517995-7e41-4ddb-9b64-bb299559fe13",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T22:34:09.288983Z"
},
{
"id": "c0a284ed-af16-4c94-9f85-87581feec8ee",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T22:34:09.317751Z"
},
{
"id": "7de1af8b-c959-401b-b357-5e6d6e737422",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T22:37:26.691012Z"
},
{
"id": "8885076f-8a8a-43b7-b272-ea0e375d4d18",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T22:37:27.063729Z"
},
{
"id": "19027893-405c-4bc4-ad37-5beed3758161",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T22:37:27.088635Z"
},
{
"id": "6ee9856a-de2d-4a56-a054-0faaa75981e8",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T22:40:10.476857Z"
},
{
"id": "3f627a6b-6ee2-4d22-aee7-93c76dcb3b0d",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T22:40:10.916345Z"
},
{
"id": "2c2d7dd1-568b-480d-8bc0-c566afc66b51",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T22:40:10.944661Z"
},
{
"id": "03400271-9a2f-4ad4-be61-06c01d8f3dd6",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T23:09:55.223173Z"
},
{
"id": "af539bfe-9d8f-4267-a1b7-ba71ca41bcb9",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T23:09:55.588730Z"
},
{
"id": "cc3453ce-ed45-4c6b-9778-d86da81ccca7",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T23:09:55.611779Z"
},
{
"id": "ae941751-431d-413d-9cd5-e4c19e3b1f06",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-24T23:10:44.903850Z"
},
{
"id": "82b45689-49dc-4cea-897c-919942f59a84",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-24T23:10:45.264408Z"
},
{
"id": "5ac0f722-7c09-47fe-bd17-f84f78549b07",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-24T23:10:45.290462Z"
},
{
"id": "482dbdf9-9fb7-4685-8ed8-30aa8c6a6225",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-26T21:33:23.479829Z"
},
{
"id": "c61a971b-7962-48cb-85a4-610a734b2633",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-26T21:33:24.219398Z"
},
{
"id": "874fc2a8-6941-4755-93ba-f2a2e790e670",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-26T21:33:24.261230Z"
},
{
"id": "4806ac1e-5a18-4248-aa0b-a8aaba9e18bf",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-31T17:40:59.043583Z"
},
{
"id": "c9a90ebf-3bf4-4e83-9e8d-684c78ec46cf",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-31T17:40:59.775745Z"
},
{
"id": "82a3648e-dddc-48df-9fb1-bd824f54d47c",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-31T17:40:59.827126Z"
},
{
"id": "8080f194-67a7-4d3c-875e-ca079c52f488",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-31T20:21:14.806767Z"
},
{
"id": "e2a99b1b-d610-4514-9365-ea972783bcb0",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-31T20:21:15.533157Z"
},
{
"id": "ab84ebc1-c3e2-47e3-9dd0-e559c2d312a0",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-31T20:21:15.580065Z"
},
{
"id": "1e3c233f-e8e0-42ce-885b-bea266793d12",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-05-31T21:41:09.815578Z"
},
{
"id": "fad8822a-cc59-4764-8bec-2f534f2ec634",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-05-31T21:41:10.401970Z"
},
{
"id": "b09ce535-bf40-472f-87da-e85f55290373",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-05-31T21:41:10.441339Z"
},
{
"id": "232537f0-4d7b-4670-9694-7b9adda5b603",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-06T08:39:46.574667Z"
},
{
"id": "1e140f9e-2395-438f-97dc-1e2b5943b905",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-06T08:39:47.343780Z"
},
{
"id": "7f2214dc-7411-431c-b45b-9808cae00699",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-06T08:39:47.385403Z"
},
{
"id": "5a833101-c174-422b-b559-b75b3a17ec04",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-07T20:00:16.104074Z"
},
{
"id": "986a0dd0-bf56-417e-950b-483057b22dff",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-07T20:00:16.994790Z"
},
{
"id": "edaee702-01d3-474c-ab5d-ecee84b5fd4b",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-07T20:00:17.046635Z"
},
{
"id": "1680e89d-4cd4-4a15-ba49-36f9ae1b3b39",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-07T20:28:29.145020Z"
},
{
"id": "19dd5edb-9a00-41ce-83f1-ba6a18f72629",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-07T20:28:29.836157Z"
},
{
"id": "70975730-415e-49f7-b00f-9bb473fc1935",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-07T20:28:29.884847Z"
},
{
"id": "f2831593-75fd-45af-99b4-acecdf0ee093",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-08T17:11:03.657162Z"
},
{
"id": "7b837fc0-0d5f-4883-85c9-d47a1e31e94b",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-08T17:11:04.440823Z"
},
{
"id": "cca21a30-5d22-4ec4-b7e8-42717dfec532",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-08T17:11:04.496338Z"
},
{
"id": "912c8c16-1dba-4e7f-9b4f-1f488c227a8d",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-08T17:42:24.975923Z"
},
{
"id": "a44c8c2a-031c-4ffc-af96-7686ebd2e544",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-08T17:42:25.819976Z"
},
{
"id": "aaa2ad5c-0be8-42e2-b01d-54b00aba8ae6",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-08T17:42:25.900328Z"
},
{
"id": "052dbd04-c6d0-4284-acc7-e1758cdf6383",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-08T17:50:17.750777Z"
},
{
"id": "a8c3cbf4-88dd-4c27-b632-f4e8bad30b2a",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-08T17:50:18.457958Z"
},
{
"id": "1088482b-af47-497d-ad30-25e3a8cdada0",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-08T17:50:18.513857Z"
},
{
"id": "5e0abca8-01d3-4e95-80cd-a341e905d7b9",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-14T20:33:54.912988Z"
},
{
"id": "653b0511-4b65-4325-980b-0a9a4c0ee63c",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-14T20:33:55.676031Z"
},
{
"id": "a1cabdec-8914-4c5c-933a-c32c6e898e53",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-14T20:33:55.717602Z"
},
{
"id": "2ea7648e-5d33-4e43-86f9-556539a9cf75",
"actor_id": null,
"action": "embedding_failed",
"target_type": "motion",
"target_id": "99",
"metadata": {
"error": "RuntimeError(\"Simulated embedding failure for index 0: 'failing motion'\")"
},
"created_at": "2026-06-14T21:34:41.928775Z"
},
{
"id": "a3c4bb80-d6ff-41f5-a5e3-41984eade249",
"actor_id": null,
"action": "test_action",
"target_type": "unit",
"target_id": "u1",
"metadata": {
"k": 1
},
"created_at": "2026-06-14T21:34:42.582166Z"
},
{
"id": "6b2168de-3367-4f66-8ae3-7269688872e9",
"actor_id": null,
"action": "another_action",
"target_type": "motion",
"target_id": null,
"metadata": {},
"created_at": "2026-06-14T21:34:42.633930Z"
}
]