Commit Graph

287 Commits

Author SHA1 Message Date
Nick Sweeting
0d061392f8
Import Chromium personas with portable authenticated browser state 2026-09-11 13:45:02 -07:00
Nick Sweeting
d044f5ee0e
Isolate OpenCode in its plugin and stop forced Git initialization (#1869)
* Stop initializing Git repositories for OpenCode sessions

* Isolate optional AI failures behind a lazy plugin adapter

* Keep explicit plugin enable flags boolean after config resolution

* Use Django login redirect encoding at the optional agent boundary

* Cover cold-start failures and real browser storage isolation

* Verify persisted dismissal and native storage denial variants

* Keep headless browser interaction independent of display timing

* Install optional OpenCode clients through the plugin extra
2026-09-03 16:05:30 -07:00
Nick Sweeting
9ee0dcf165
fix: address orchestration review findings 2026-09-02 12:56:23 -07:00
Nick Sweeting
2bba758314
refactor: simplify snapshot maintenance orchestration 2026-09-02 12:05:09 -07:00
Nick Sweeting
663017924b
refactor: consume canonical abx-dl execution plans 2026-09-02 05:23:11 -07:00
Nick Sweeting
e7b3f1c485
Adopt canonical abx-dl execution plan API 2026-09-02 04:44:55 -07:00
Nick Sweeting
3fc67705a5
Unify plugin runtime and queue lifecycle boundaries 2026-09-01 01:07:04 -07:00
Nick Sweeting
dccd7fd0a3
Scope Docker WAL guard to SQLite 2026-08-30 15:20:04 -07:00
Nick Sweeting
654f07e579
Prevent Docker bind-mount SQLite corruption 2026-08-30 15:00:37 -07:00
Nick Sweeting
319763c763
stop scoped config from mutating process state 2026-08-27 16:26:07 -07:00
Nick Sweeting
8017245c3f
handle unreadable config paths 2026-08-27 16:14:14 -07:00
Nick Sweeting
41056e0b77
separate config sources from runtime validation
Some checks are pending
CI / Linters (push) Waiting to run
CI / Install and CLI platform compatibility (push) Waiting to run
CI / Discovered test matrix (push) Waiting to run
CI / Documentation and root tests (push) Waiting to run
CI / CodeQL (push) Waiting to run
CI / Tested Python artifacts (push) Waiting to run
CI / Tested Docker images (push) Waiting to run
CI / All required CI lanes (push) Blocked by required conditions
Deploy Publicsite to GitHub Pages / deploy (push) Waiting to run
2026-08-27 16:03:35 -07:00
Nick Sweeting
cb4a68b45f
validate resolved config without reloading sources 2026-08-27 15:47:38 -07:00
Nick Sweeting
5273f99b9e
consolidate config loading hot paths 2026-08-27 15:34:28 -07:00
Nick Sweeting
24f4aaa4f8
Keep root tool traversal on service group 2026-08-14 02:01:53 -07:00
Nick Sweeting
c8f7a77430
Harden root collection ownership handoff 2026-08-14 01:53:10 -07:00
Nick Sweeting
ff555e87c3
Report newly written config values 2026-08-11 17:51:46 -07:00
Nick Sweeting
0bdcaedc03
Repair missing archivebox account home 2026-08-11 15:52:57 -07:00
Nick Sweeting
9793aa4aef
Keep root-installed uv tools importable 2026-08-11 15:17:16 -07:00
Nick Sweeting
87667c6459
Ignore inaccessible collection config 2026-08-09 17:59:05 -04:00
Nick Sweeting
c3aa7762cd
Allow root-home collections after privilege drop 2026-08-09 16:15:59 -04:00
Nick Sweeting
9e55d19c16
Hand off existing runtime logs without recursion 2026-08-09 12:59:17 -04:00
Nick Sweeting
67ad0ef503
Handle collections owned by unknown users 2026-08-09 12:57:40 -04:00
Nick Sweeting
8437e44587
Repair copied collection ownership boundaries 2026-08-02 05:22:43 -07:00
Nick Sweeting
18be570e70 Respect explicit search backend disable flags 2026-08-01 23:47:29 -07:00
Nick Sweeting
df0bb25540
Create service user for direct root runs 2026-08-01 21:58:07 -07:00
Nick Sweeting
cd47fa9c56
Select Sonic as the default search backend 2026-08-01 11:15:21 -07:00
Nick Sweeting
64fe8e1277
Hand off root-owned collection directories safely 2026-08-01 01:38:18 -07:00
Nick Sweeting
897cbdc082
Select archivebox account for root-owned collections 2026-07-31 22:36:40 -07:00
Nick Sweeting
24efe6fa4d
Keep root-owned collections under root 2026-07-29 15:08:58 -07:00
Nick Sweeting
983708f230
Package ArchiveBox commit metadata safely 2026-07-28 22:14:13 -07:00
Nick Sweeting
3fdb5a5d88
Reset runtime env after privilege drop 2026-07-26 23:52:00 -07:00
Nick Sweeting
8254f962ba
Fix CI runtime resolution and host policy regressions 2026-07-25 18:35:25 -07:00
Nick Sweeting
8dd35d0d36
Handle missing machine table during init config load 2026-07-25 14:51:54 -07:00
Nick Sweeting
05350846ab
Sync ArchiveBox UI and setup updates 2026-07-25 14:50:15 -07:00
Nick Sweeting
d4ff0d033f
Merge remote-tracking branch 'origin/dev' into codex/all-tests-ci 2026-07-25 11:51:21 -07:00
Nick Sweeting
7658df9208 Fix ArchiveBox CI runtime paths and docs validation 2026-07-25 11:51:15 -07:00
Claude
7167c5dd8a
Add native PostgreSQL support alongside SQLite
Add DATABASE_ENGINE=postgres (plus DATABASE_HOST/PORT/USER/PASSWORD/NAME)
config and centralize all sqlite-vs-postgres branching in
archivebox.misc.db:

- get_database_settings() builds DATABASES for either backend; the sqlite
  path is unchanged (custom lock-retry backend, same PRAGMAs).
- database_exists()/ensure_database_ready() replace index.sqlite3 file
  checks; init auto-creates the postgres database when missing.
- approximate_row_counts() serves admin index counts from sqlite_stat1 or
  pg_class.reltuples; missing-table detection covers both vendors.
- rebuild_models_from_migration_state() lets historical sqlite-only raw
  SQL migrations resync postgres schema from Django migration state at
  every divergence point (postgres can never hold legacy data, so
  affected tables are empty when these run). All raw-DDL and PRAGMA
  migrations are now vendor-gated with sqlite behavior byte-for-byte
  unchanged.
- A pre_save clamp truncates CharField values to max_length: sqlite
  never enforced varchar(n) but postgres does (e.g. long crawl labels).
- Collation-sensitive URL range scans branch to escaped LIKE on postgres
  (with a text_pattern_ops index) since linguistic collations break
  bytewise range tricks; the crawl-config JSON search wave gets a
  jsonb-text implementation.

Verified on real PostgreSQL 16: fresh init applies the entire migration
graph, schema matches models exactly (column-level parity check +
makemigrations --check), and add/run/list/search/status/remove all work
end-to-end. New test_postgres_backend.py suite boots a real throwaway
postgres cluster (initdb + pg_ctl); CI workflows install postgres server
binaries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YHSjZM6TstSAMN2PhgfUg
2026-07-23 17:08:47 +00:00
Nick Sweeting
6592af0d19
Exercise ArchiveBox through unified runtime lifecycles 2026-07-21 19:26:42 -07:00
Nick Sweeting
cfb0f7c5d9
Keep search backend selection independent of plugin filters 2026-06-24 13:19:25 -07:00
Nick Sweeting
d9b7052d5a
Use abx-dl plugin dependency pruning 2026-06-24 12:36:00 -07:00
Nick Sweeting
ca2254d55b
Centralize plugin selection dependency resolution 2026-06-24 12:12:52 -07:00
Nick Sweeting
0a9a32b6e8
Respect crawl plugin selection over env defaults 2026-06-24 11:40:30 -07:00
Nick Sweeting
28bce9ebaf
Honor explicit plugin enable aliases over plugin selection 2026-06-24 10:41:59 -07:00
Nick Sweeting
8284321510
Resolve plugin config aliases in ArchiveBox config 2026-06-24 10:14:28 -07:00
Nick Sweeting
3fa4fd5d18
Fix runtime hook config regressions 2026-06-21 06:09:04 -07:00
Nick Sweeting
76da863a02
fix docker image commit metadata 2026-06-21 02:53:28 -07:00
Nick Sweeting
4d4a4a96b6
fix docker commit metadata lookup 2026-06-14 19:32:24 -07:00
Nick Sweeting
8b57085827
chore: commit local archivebox changes 2026-06-14 11:44:38 -07:00
Nick Sweeting
73ec255855
fix: harden admin metadata surfaces 2026-06-13 23:44:59 -07:00