Alexandre Teixeira
576abb012d
feat(browser): deterministic private_browser lifecycle (Wave 5A)
...
Own each agent-browser session as a browser tree: the daemon's POSIX
session, its runtime files and its Chrome profile. Timeouts, launch
failures, bootstrap recovery, cancellation and shutdown clean that tree
and verify nothing survives, instead of killing only the daemon and
orphaning Chrome. Per-call cleanup no longer sweeps every Chrome under
the runtime TMPDIR.
Sessionless calls get an ephemeral browser closed before returning.
Actions on one session are serialized. Recovery is bounded by one
deadline with at most one retry for local HTML open, and the retry flag
is no longer model-visible. Observations after a failed navigation are
marked stale. read URL navigates and extracts in one batch because
agent-browser has no read command. Results carry a browser_lifecycle
receipt with stages, timings, ownership and cleanup evidence.
Playwright MCP tool calls are bounded by
ODYSSEUS_BROWSER_MCP_CALL_TIMEOUT_S and are not retried. research_navigator
now passes timeout_ms.
2026-10-01 20:59:27 +01:00
Alexandre Teixeira
cb5b81022b
Merge pull request #50 from pewdiepie-archdaemon/feature/runtime-request-authority
...
feat(runtime): enforce server request authority
2026-10-01 19:50:38 +01:00
Alexandre Teixeira
9d0257134f
feat(runtime): enforce server request authority
2026-10-01 18:35:41 +01:00
Alexandre Teixeira
05c6cfcfa1
Merge pull request #43 from pewdiepie-archdaemon/feature/agent-runtime-wave-1-1
...
feat(runtime): complete Agent Runtime Wave 1.1
2026-10-01 15:22:06 +01:00
Alexandre Teixeira
d49071bbec
fix: close Wave 1.1 completion-gate audit findings
...
- Headless consumers (task scheduler, background follow-up) now treat a
completion-gate final_response as the authoritative answer instead of
collecting deltas only. A gated replacement no longer leaves scheduled
output empty, which used to trigger an extra, ungated grace-summary
model call.
- The scheduler closes the agent stream with contextlib.aclosing, so the
approval-pause break unwinds the gate's journal and teacher-takeover
context in its own task. Chained runs no longer inherit a stale
parent_run_id, and later finalization no longer raises ContextVar
reset errors.
- On provider error, the completion gate applies the live answer's
statement filter to persisted round_texts. Diagnostics and the failure
note survive; claims rejected by the gate cannot reappear on reload.
2026-10-01 14:49:32 +01:00
Alexandre Teixeira
f4793696f4
merge: reconcile Wave 1.1 with post-PR40 lab
...
Merge canonical lab 9557b8d5909eb4a885c3bf49e19a65dd904f8c1d exactly once.
Retain invocation journal ownership and lineage, provider terminal ordering,
teacher handoff, framed DONE handling, and canonical authority/Ajax routing.
Combine dynamic dispatch receipts with lab policy forwarding. Adapt native
shell/patch evidence, explicit TUI verifiers, and artifact recovery presentation.
Refresh generated configuration source links and strengthen adapter regressions.
Validation: focused 2118 passed; Wave 1.1 script 2291 passed; broad runtime
5649 passed; full pytest 11581 passed, 53 skipped, 2 xfailed, 6 subtests passed.
Compileall 1689 Python files; syntax 279 JS and 82 MJS files; diff and
conflict-marker checks passed.
2026-10-01 09:09:55 +01:00
Alexandre Teixeira
e5e23e640d
Merge pull request #40 from pewdiepie-archdaemon/review/harness-latest-20260917
...
Review preview harness, editor, email and task improvements
2026-10-01 06:59:19 +01:00
Alexandre Teixeira
5dfe1c353c
test: stabilize final PR 40 validation gates
2026-10-01 06:39:22 +01:00
Alexandre Teixeira
f74a262f73
merge: reconcile PR 40 with current lab
...
Integrate lab fff55a78 into PR #40 (cc25d5ba). Lab's modular email
backend/frontend, modular settings, split stylesheets (static/style.css
stays deleted), procfs compatibility, and request-scoped TurnContract
authority win; PR #40 's routing classifiers, editor/email/task features,
and style.css changes are ported into lab's module and stylesheet homes.
Integration fixes:
- settings/api.js imports ui.js under its canonical versioned URL
- browser observations keep legacy CAPTCHA/access-block evidence
- artifact turns do not re-trigger broad-web research recovery
- env reference documents PR test-tool variables; page regenerated
PR #40 defects surfaced by lab gates and fixed here:
- web_fetch generic schema drops top-level anyOf (OpenAI contract);
the compact preview contract still requires url or urls
- get_weather registered as a brokered network read
- new lazy editor modules precached for offline use
- SearXNG pin mirrored into GPU standalone compose files
- image model picker again skips offline endpoints
Tests updated where PR #40 changed behaviour on purpose, and PR tests
moved onto lab's document_source helpers.
2026-10-01 05:03:58 +01:00
Alexandre Teixeira
f93767d5c7
Merge pull request #17 from o3LL/fix/procfs-pid-file-liveness
...
fix(browser): stop treating a missing cmdline as proof the daemon exited
2026-10-01 03:10:43 +01:00
Alexandre Teixeira
d63932f1ad
Merge lab into fix/procfs-pid-file-liveness
2026-10-01 03:10:10 +01:00
Alexandre Teixeira
a462e01483
Merge pull request #39 from o3LL/feat/admin-build-provenance
...
feat(settings): show the running build's version and commit in the admin panel
2026-10-01 02:55:54 +01:00
Alexandre Teixeira
6901c56192
Merge lab into feat/admin-build-provenance
2026-10-01 02:55:27 +01:00
Alexandre Teixeira
f817ab6e09
Merge pull request #35 from o3LL/docs/env-configuration-reference
...
docs: generate the ODYSSEUS_* configuration reference from the source
2026-10-01 02:53:07 +01:00
Alexandre Teixeira
c6f690a27b
Merge lab into docs/env-configuration-reference
2026-10-01 02:52:37 +01:00
Alexandre Teixeira
762fb891ce
Merge pull request #29 from o3LL/test/95-release-smoke-suite
...
test(smoke): add a release smoke suite over every advertised feature area
2026-10-01 02:46:16 +01:00
Alexandre Teixeira
bdccb1ddb1
Merge lab into test/95-release-smoke-suite
2026-10-01 02:45:49 +01:00
Alexandre Teixeira
95416cdbfb
Merge pull request #27 from o3LL/audit/ref-parity
...
chore(tools): add a read-only ref-to-ref parity audit
2026-10-01 02:45:38 +01:00
Alexandre Teixeira
ef0d96a3ae
Merge lab into audit/ref-parity
2026-10-01 02:45:10 +01:00
Alexandre Teixeira
fe7297547c
Merge pull request #38 from o3LL/test/runtime-behavior-regressions
...
test(runtime): pin negative capability wording, test-only
2026-10-01 02:42:50 +01:00
Alexandre Teixeira
8c7e3a9411
Merge lab into test/runtime-behavior-regressions
2026-10-01 02:42:22 +01:00
Alexandre Teixeira
1dca85cb07
Merge pull request #37 from o3LL/fix/token-cache-atomic-swap
...
fix(auth): swap the API token cache atomically instead of clearing it
2026-10-01 02:42:09 +01:00
Alexandre Teixeira
45e1e2e7d9
Merge lab into fix/token-cache-atomic-swap
2026-10-01 02:41:41 +01:00
pewdiepie-archdaemon
2e8413a54a
Preserve preview harness, editor, email and task improvements
...
Snapshot current maintainer-preview application changes and regression fixtures for integration into lab. Excludes local runtime data, evaluation outputs and source backups. Focused Python regression selection: 140 passed; full suite not certified.
2026-10-01 01:34:26 +00:00
Alexandre Teixeira
bf76c9c608
Merge pull request #36 from o3LL/fix/6174-singleflight-cancel
...
fix(tasks): clean up the singleflight cache on cancellation
2026-10-01 02:28:18 +01:00
Alexandre Teixeira
b0bc0b8c40
Merge lab into fix/6174-singleflight-cancel
2026-10-01 02:27:49 +01:00
Alexandre Teixeira
236baea232
Merge pull request #33 from o3LL/refactor/email-library-package
...
refactor(email): decompose emailLibrary.js into a package behind a re-export wrapper
2026-10-01 02:23:56 +01:00
Alexandre Teixeira
799adbbde6
Merge lab into refactor/email-library-package
2026-10-01 02:22:23 +01:00
Alexandre Teixeira
eef390b9ae
Merge pull request #22 from o3LL/refactor/routes-email-subpackage
...
refactor(routes): move the email modules into routes/email/
2026-10-01 02:17:29 +01:00
Alexandre Teixeira
9477616e05
Merge lab into refactor/routes-email-subpackage
2026-10-01 02:15:36 +01:00
Alexandre Teixeira
aedec7d005
fix(runtime): isolate nested invocation ownership
2026-10-01 02:11:53 +01:00
Alexandre Teixeira
b35010c3d1
Merge pull request #24 from o3LL/refactor/settings-shell-modules
...
refactor(settings): move the shell out of settings.js into settings/
2026-10-01 01:42:18 +01:00
Alexandre Teixeira
33387d4a4c
Merge lab into refactor/settings-shell-modules
2026-10-01 01:41:27 +01:00
Alexandre Teixeira
4c122de880
fix(runtime): scope completion claims to execution obligations
2026-10-01 01:36:18 +01:00
Alexandre Teixeira
290bb0d61d
Merge pull request #23 from o3LL/refactor/settings-panel-modules
...
refactor(settings): extract four panels into settings/ modules
2026-10-01 01:08:58 +01:00
Alexandre Teixeira
9ee9205bfc
merge: sync lab after stylesheet split
2026-10-01 01:08:15 +01:00
Alexandre Teixeira
86212bfe99
Merge lab into refactor/settings-panel-modules
2026-10-01 01:03:49 +01:00
Alexandre Teixeira
0f23439a31
Merge pull request #20 from o3LL/refactor/split-style-css
...
refactor(css): split style.css into ordered fragments
2026-10-01 00:55:35 +01:00
Alexandre Teixeira
23fdc26079
Merge lab into refactor/split-style-css
2026-10-01 00:48:58 +01:00
Alexandre Teixeira
466a6b323a
fix(runtime): preserve provider error terminal ordering
2026-10-01 00:33:46 +01:00
Alexandre Teixeira
fe80eb795e
merge: reconcile reviewed lab baseline for runtime wave 1.1
2026-10-01 00:25:42 +01:00
Alexandre Teixeira
0a88b3c322
Merge pull request #31 from o3LL/test/document-module-set-helper
...
test(document): read the editor through a module-set helper before it is split
2026-09-30 22:59:49 +01:00
Alexandre Teixeira
40dbe17a95
Merge lab into test/document-module-set-helper
...
Resolve the overlap with #19 by preserving the whole-cascade stylesheet
helpers alongside #31 's document-source/module-set helpers.
Maintainer validation:
- document/module contract and composition guards: 15 passed
- all 54 touched Python test modules: 366 passed
- py_compile: clean
- git diff --check: clean
2026-09-30 22:56:56 +01:00
Léo
40678bc466
feat(settings): show the running build's version and commit in the admin panel
...
Nothing in the UI said which build was loaded. /api/version has reported
version, build and source_commit since the harness started versioning itself
apart from the public semver, but the only way to read it was to curl the
endpoint — so "is the preview actually running the commit I just merged?" took
a terminal to answer.
Pins a footer under the settings sidebar nav showing the registered version
(plus the harness build when it differs) and the short source commit, with the
full hash on hover. It sits outside the nav's scroll container so it stays at
the bottom-left, and it is .admin-only, so syncAdminVisibility() hides it from
non-admins the same way it hides the Admin nav group.
The commit resolves at import via `git rev-parse HEAD` and is the string
"unknown" when that fails — a read-only Docker tree with no .git. The footer
treats "unknown" as absent and stays hidden when nothing is left to show,
rather than printing it. The collapsed rail and the two narrow tab-rail
layouts hide it too: neither has a bottom-left to write in.
2026-09-30 22:59:58 +02:00
Alexandre Teixeira
741f5dff2b
Merge pull request #19 from o3LL/refactor/tests-read-the-whole-cascade
...
refactor(tests): read the whole cascade instead of style.css alone
2026-09-30 19:27:58 +01:00
Alexandre Teixeira
6ee51fee72
Merge pull request #18 from o3LL/fix/duplicate-keyframes
...
fix(css): collapse duplicate @keyframes names to the definition that wins
2026-09-30 19:18:13 +01:00
Alexandre Teixeira
a969a68016
Merge pull request #34 from o3LL/test/macos-failures-and-stub-leak-guard
...
test: fix environment-dependent failures and guard module-stub leaks
2026-09-30 19:16:43 +01:00
Alexandre Teixeira
56484df737
test(media): detect ffmpeg encoders by codec alias
2026-09-30 19:16:29 +01:00
Alexandre Teixeira
eaddc03729
Merge pull request #26 from o3LL/fix/tmp-realpath-test-bugs
...
fix(tests): resolve temp paths consistently on macOS
2026-09-30 18:21:04 +01:00
Alexandre Teixeira
bfae249120
Merge pull request #28 from o3LL/fix/cookbook-stop-procfs-guard
...
fix(cookbook): skip the pid sweep when the host has no procfs
2026-09-30 18:07:07 +01:00