Léo
130b49f75d
docs(security): document the tool approval gate and its default
...
The post-external-context gate is off unless ODYSSEUS_TOOL_APPROVAL_GATE is
set, but THREAT_MODEL.md described only the untrusted-context wrapper. A reader
auditing the prompt-injection posture would reasonably assume the gate was
active.
State the default, what it blocks when enabled, the two deliberate exemptions,
and note in Known Gaps that the compensating control for the missing shell
sandbox is off by default.
2026-09-23 11:09:48 +02:00
Léo
3412c4212e
fix(editor-drafts): refuse oversized drafts before parsing the body
...
The 256 MiB ceiling was only enforced inside _dump_payload, which runs after
FastAPI has parsed the request and after json.dumps has re-serialised it. By
that point the payload has been materialised several times over, so the limit
rejected an allocation it had already paid for.
Check Content-Length first, on both write routes. A request that omits or lies
about the header still reaches the exact byte count, which remains
authoritative.
2026-09-23 11:09:48 +02:00
Léo
edc94a244e
fix(search): bound and police the scholarly metadata lookups
...
The arXiv and OpenAlex title resolvers called two hardcoded endpoints with a
hand-written "Odysseus/0.20" User-Agent, no outbound-URL policy, and a full
12s timeout each. APP_VERSION was already 1.0.3, so the agent string was wrong
the moment it was written, and a scholarly query could hold a user-facing
search open for the sum of all three hops.
Move the endpoints to named constants, build the User-Agent from APP_VERSION,
run both calls through check_outbound_url (they follow redirects, so the final
host is not the one in the constant), and give the whole SearXNG -> OpenAlex ->
arXiv chain one shared wall-clock budget.
The budget is a ContextVar rather than a parameter so the existing test doubles
for _openalex_title_results and _arxiv_title_results keep working unchanged.
2026-09-23 11:09:48 +02:00
Alexandre Teixeira
771d48f147
ci: install FFmpeg for media integration tests
2026-09-23 01:08:20 +01:00
Alexandre Teixeira
3cabbb9bca
test(agent): restore exact turn-policy regressions
2026-09-23 00:14:30 +01:00
Alexandre Teixeira
c0b71a5cef
fix(tools): constrain Python environment namespace mount
2026-09-23 00:10:50 +01:00
Alexandre Teixeira
0012baa17c
ci(trivy): free build cache before image scan
2026-09-22 23:27:29 +01:00
Alexandre Teixeira
c0a1cecc00
test(baseline): align UI and model profile expectations
2026-09-22 23:27:17 +01:00
Alexandre Teixeira
9bc1cdcab0
test(harness): isolate imports and stabilize browser and DNS fixtures
2026-09-22 23:27:08 +01:00
Alexandre Teixeira
4520b4f6f0
fix(ui): restore rich text controls and accessible research map
2026-09-22 23:26:43 +01:00
Alexandre Teixeira
b9cccb93ac
fix(tools): expose active Python environment in workspace namespace
2026-09-22 23:26:28 +01:00
Alexandre Teixeira
79a55fac38
fix(agent): preserve focused turn contracts and verified completion
2026-09-22 23:26:16 +01:00
Alexandre Teixeira
128102ef26
test(runtime): isolate tool execution module state
2026-09-22 18:17:42 +01:00
Alexandre Teixeira
5568d7d631
fix(sw): complete editor panel precache
2026-09-22 18:09:04 +01:00
Alexandre Teixeira
83088f8811
ci: provision browser dependencies for pytest
2026-09-22 18:08:16 +01:00
Alexandre Teixeira
ebcc6c524f
test(database): restore model endpoint isolation
2026-09-22 18:07:09 +01:00
Alexandre Teixeira
dbba4978ee
test(harness): support cache-busted frontend module imports
2026-09-22 18:06:18 +01:00
Alexandre Teixeira
7e798fe925
Merge pull request #6 from pewdiepie-archdaemon/pr/alteixeira20/subscription-provider-ux
...
feat(provider): improve subscription UX and lazy discovery
2026-09-22 14:02:55 +01:00
Alexandre Teixeira
8bb48780a1
feat(provider): add lazy Featherless model discovery
2026-09-22 13:12:19 +01:00
Alexandre Teixeira
2b2bf0fb90
fix(ui): refine provider endpoint controls
2026-09-22 13:12:19 +01:00
Alexandre Teixeira
46c8451a29
fix(ui): bust cache for collapsible subscription usage
2026-09-22 13:12:19 +01:00
Alexandre Teixeira
411559913c
feat(ui): refine subscription model and usage controls
2026-09-22 13:12:19 +01:00
Alexandre Teixeira
ed7ccfd584
feat(provider): support multiple ChatGPT subscriptions with usage
2026-09-22 13:12:19 +01:00
Alexandre Teixeira
45330097b8
Merge pull request #7 from pewdiepie-archdaemon/fix/maintainer-harness-ci-reproducibility-v1
...
fix(ci): make maintainer harness and lab workflow portable
2026-09-22 12:44:20 +01:00
Alexandre Teixeira
dd13f53507
ci: support maintainer lab pull requests
2026-09-22 12:39:14 +01:00
Alexandre Teixeira
822ceaaac4
fix(ci): make maintainer harness contract self-contained and portable
2026-09-22 11:31:45 +01:00
pewdiepie-archdaemon
297ad19248
Harden maintainer-preview harness and review fixes
...
Unify conversational domain routing, preserve artifact completion evidence, replace provisional tool-round prose with terminal synthesis, and resolve verified maintainer review findings across search, frontend module identity, path policy, configuration, and built-in skill startup.
2026-09-21 06:54:03 +00:00
pewdiepie-archdaemon
d7cad0621f
reserve wall time for artifact completion
2026-09-19 12:45:09 +00:00
pewdiepie-archdaemon
efe8dbeab3
preserve research tools through artifact completion
2026-09-19 09:24:22 +00:00
pewdiepie-archdaemon
3f9ff9d580
trust runtime materialization evidence
2026-09-19 02:44:36 +00:00
pewdiepie-archdaemon
e0c21b28d5
validate executable artifact completion code
2026-09-19 02:33:33 +00:00
pewdiepie-archdaemon
f5e3119b10
bind directory completion to output descendants
2026-09-19 02:25:27 +00:00
pewdiepie-archdaemon
27affcdb58
use native python for directory artifact completion
2026-09-19 02:14:13 +00:00
pewdiepie-archdaemon
b4cd39657d
recover mixed artifact tool payloads
2026-09-19 02:07:04 +00:00
pewdiepie-archdaemon
2308ff9b80
recover concatenated artifact writes
2026-09-19 01:53:12 +00:00
pewdiepie-archdaemon
b32fa31b37
bound malformed artifact recovery loops
2026-09-19 01:37:46 +00:00
pewdiepie-archdaemon
fbaa184a7b
recover required artifacts after tool suppression
2026-09-19 00:28:08 +00:00
pewdiepie-archdaemon
d0044163bf
exclude known inputs from completion artifacts
2026-09-19 00:08:57 +00:00
pewdiepie-archdaemon
f086f66a4f
preserve native web tools after network guard rejection
2026-09-18 21:41:24 +00:00
pewdiepie-archdaemon
75b2420239
constrain directory completion to child files
2026-09-18 20:51:04 +00:00
pewdiepie-archdaemon
ceb79d072a
handle directory artifact completion safely
2026-09-18 20:43:51 +00:00
pewdiepie-archdaemon
932f64739c
bump harness to 0.20.6
2026-09-18 20:17:59 +00:00
pewdiepie-archdaemon
0865e0e8da
require content in directory artifact outputs
2026-09-18 20:17:19 +00:00
pewdiepie-archdaemon
27e53e857c
recover boundedly from action-only replies
2026-09-18 18:22:34 +00:00
pewdiepie-archdaemon
d550bc0e74
bind binary completion code to required path
2026-09-18 18:16:12 +00:00
pewdiepie-archdaemon
7b5288f097
route binary artifact completion through Python
2026-09-18 18:08:32 +00:00
pewdiepie-archdaemon
43e50185f9
normalize named tool choice for Kimi thinking mode
2026-09-18 17:00:54 +00:00
pewdiepie-archdaemon
3985172885
recover empty artifact writer turns through body handoff
2026-09-18 16:33:30 +00:00
pewdiepie-archdaemon
629bd32d03
preserve output budget for artifact body recovery
2026-09-18 16:29:04 +00:00
pewdiepie-archdaemon
a394ea25d3
drop provider-invalid reasoning-only history turns
2026-09-18 16:22:59 +00:00