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
fbff88fb0e
Merge remote-tracking branch 'origin/dev' into audit-pr1846
...
# Conflicts:
# archivebox/cli/archivebox_extract.py
# archivebox/core/recovery_util.py
# archivebox/services/archive_result_service.py
# archivebox/services/runner.py
2026-09-01 15:43:48 -07:00
Nick Sweeting
032c20bdf5
cleanup: delete obsolete model lifecycle helpers
2026-09-01 15:06:48 -07:00
Nick Sweeting
3fc67705a5
Unify plugin runtime and queue lifecycle boundaries
2026-09-01 01:07:04 -07:00
Nick Sweeting
c062a3c54f
Eliminate request-side SQLite write transactions
2026-08-28 21:56:18 -07:00
Nick Sweeting
6c87629b39
Make API pause win over runner leases
2026-07-31 23:50:40 -07:00
Nick Sweeting
6592af0d19
Exercise ArchiveBox through unified runtime lifecycles
2026-07-21 19:26:42 -07:00
Nick Sweeting
01f5666dbc
Route runtime binaries through abxpkg
2026-07-20 12:50:14 -07:00
Nick Sweeting
1dbde4776f
release: archivebox 0.9.35rc27
2026-06-13 23:12:36 -07:00
Nick Sweeting
c9e63ccffd
Centralize synthetic root snapshot creation in CrawlRunner
...
Direct URL inputs from CLI/UI/API now seed Crawl.urls as explicit
{type:CrawlSeed,url,depth} JSONL rows; raw stdin/UI/API import text
stays verbatim. The runner's create_initial_snapshots() is now the
single place that either expands seed rows or creates the synthetic
archivebox://internal root + staticfile/stdin.txt, so add paths no
longer perform DB/FS side effects and the parser hooks run through
the same Snapshot lifecycle as every other extractor.
2026-06-13 17:10:06 -07:00
Nick Sweeting
6e0f2a41a3
Fix add input routing and plugin dependencies
2026-06-11 07:06:41 -07:00
Nick Sweeting
2bda2abbf0
Fix tagged internal add crawl sealing
2026-06-10 21:04:48 -07:00
Nick Sweeting
2127d07697
Inherit crawl tags on snapshot creation
2026-06-10 00:24:21 -07:00
Nick Sweeting
2bfb3ad4eb
release: archivebox 0.9.35rc5
2026-06-09 22:09:28 -07:00
Nick Sweeting
4fa90e484a
release: archivebox 0.9.34rc71
2026-06-07 20:51:28 -07:00
Nick Sweeting
87b518314a
release: archivebox 0.9.34rc67
2026-06-07 04:06:45 -07:00
Nick Sweeting
051d16697e
Tighten state machine model typing
2026-06-01 15:14:41 -07:00
Nick Sweeting
c075d654d8
Consolidate runtime config handling
2026-06-01 15:03:40 -07:00
Nick Sweeting
cab05eb1c6
Refactor plugins search progress and config flows
2026-06-01 00:08:27 -07:00
Nick Sweeting
9bcba41b58
release: archivebox 0.9.33rc58
2026-05-31 04:38:45 -07:00
Nick Sweeting
5a38193f56
release: archivebox 0.9.33rc50
2026-05-30 22:27:28 -07:00
Nick Sweeting
6ce2555dfd
fix: rename utils.py → util.py across modules, fix add --index-only, misc cleanups
...
Renames (no functional change, just consistency with the rest of the codebase):
- cli/cli_utils.py → cli/cli_util.py
- core/host_utils.py → core/host_util.py
- core/tag_utils.py → core/tag_util.py
- crawls/schedule_utils.py → crawls/schedule_util.py
- machine/env_utils.py → machine/env_util.py
Functional fixes:
- archivebox add --index-only now materializes Snapshot rows synchronously
via crawl.create_snapshots_from_urls() instead of just queueing the Crawl
and leaving the index empty. The previous behavior broke every test that
expected --index-only to populate the index, since the runner is never
started in index-only mode.
- config/collection.py: add _coerce_from_str_dict as the inverse of
_coerce_to_str_dict so JSON-encoded INI values are decoded back to native
dict/list types when mirrored into Machine.config (a JSONField). Without
this, downstream consumers like MachineEvent / abx-dl get raw JSON
strings where they expect dicts.
Plus matching admin / middleware / model touch-ups, the registration
password_change_form template, and assorted small cleanups the user
worked through while validating the deploy path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 14:30:33 -07:00
Nick Sweeting
383e4b5c6e
release: archivebox 0.9.33rc45
2026-05-30 05:42:53 -07:00
Nick Sweeting
b0a47e8bf5
wip: snapshot live progress, universal --init, runner perms, supervisord SIGINT
...
- Snapshot detail page: embed scoped live-progress monitor (same-origin
/progress.json on whichever host the page is served from); hide admin
action buttons when scoped; per-snapshot perms via can_view_snapshot.
- crawl_file API: respect crawl-level permissions; PUBLIC/UNLISTED served
to guests, PRIVATE returns 404 for non-admin/non-owner.
- CrawlRunner: replace allow_paused_snapshot_maintenance with
allow_maintenance_on_inactive_crawl so SEALED crawls don't short-circuit
the cancellation guard for legitimate maintenance hooks (search backend
backfill, fs migration, etc.). Fixes infinite STARTED loop on snapshots
with queued search_backend results.
- Universal `--init` flag: works on any subcommand (server, update, add,
shell, install, ...). Detected at module load, stripped from argv, and
consumed in the dispatcher so subprocesses inherit a clean env.
- supervisord_util.run_runner_worker: route Ctrl+C through
supervisor.signalProcess(name, "SIGINT") instead of raw os.kill on a
cached pid, gated on statename=RUNNING. Prevents killing unrelated
processes when the worker's pid has been reused by the OS.
- Login page: remove non-functional password-reset links; add
has_real_admin_users template tag to gate the bootstrap hint.
- Add page: hide underline on the "Get the extension" link.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 04:45:15 -07:00
Nick Sweeting
c750084c3c
release: archivebox 0.9.33rc37
2026-05-29 02:50:04 -07:00
Nick Sweeting
04f20447f8
Fix snapshot finalization race
2026-05-28 20:32:51 -07:00
Nick Sweeting
881a858383
release: archivebox 0.9.33rc35
2026-05-28 20:23:01 -07:00
Nick Sweeting
031e956080
release: archivebox 0.9.33rc29
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Build Debian package / build (amd64) (push) Waiting to run
Build Debian package / build (arm64) (push) Waiting to run
Build Debian package / test (amd64, ubuntu-24.04) (push) Blocked by required conditions
Build Debian package / test (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build Debian package / release (push) Blocked by required conditions
Build Docker image / build ${{ matrix.platform }} (digest-linux-amd64, docker-amd64, linux/amd64, ubuntu-24.04) (push) Waiting to run
Build Docker image / build ${{ matrix.platform }} (digest-linux-arm64, docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Build Docker image / publish multiarch tags (push) Blocked by required conditions
Run linters / lint (push) Waiting to run
Build Pip package / build (push) Waiting to run
Release State / release-state (push) Waiting to run
Parallel Tests / Discover test files (push) Waiting to run
Parallel Tests / ${{ matrix.test.name }} (push) Blocked by required conditions
Parallel Tests / ${{ matrix.plugin.name }} (push) Blocked by required conditions
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Waiting to run
Run tests / docker_tests (push) Waiting to run
2026-05-28 15:35:33 -07:00
Nick Sweeting
f60b190182
fix: centralize ctrl-c rich logging
2026-05-28 08:49:17 -07:00
Nick Sweeting
b1fa3de5a5
release: archivebox 0.9.33rc13
2026-05-28 06:27:57 -07:00
Nick Sweeting
f09c3a8e0d
release: archivebox 0.9.33rc9
2026-05-28 05:50:28 -07:00
Nick Sweeting
fbcc972441
backup: save in-progress dev changes
2026-05-28 05:20:52 -07:00
Nick Sweeting
09f7c8bba0
release: archivebox 0.9.32rc32
2026-05-27 14:50:49 -07:00
Nick Sweeting
89a3119f2a
release: v0.9.32rc24
2026-05-27 12:40:49 -07:00
Nick Sweeting
066f79a029
release: v0.9.32rc23
2026-05-27 12:07:58 -07:00
Nick Sweeting
aa3f67ae7b
release: v0.9.32rc22
2026-05-27 12:05:57 -07:00
Nick Sweeting
1126c469d0
release: archivebox 0.9.32rc7
2026-05-27 03:24:04 -07:00
Nick Sweeting
a34abb5c52
release: archivebox 0.9.32rc4
2026-05-27 03:03:04 -07:00
Nick Sweeting
30c841d477
Update dev docs and MHTML preview handling
2026-05-24 22:41:16 -07:00
Nick Sweeting
69a6bb360d
release: archivebox 0.9.31rc42
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Build Debian package / build (amd64) (push) Waiting to run
Build Debian package / build (arm64) (push) Waiting to run
Build Debian package / test (amd64, ubuntu-24.04) (push) Blocked by required conditions
Build Debian package / test (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build Debian package / release (push) Blocked by required conditions
Build Docker image / buildx (push) Waiting to run
Run linters / lint (push) Waiting to run
Build Pip package / build (push) Waiting to run
Release State / release-state (push) Waiting to run
Parallel Tests / Discover test files (push) Waiting to run
Parallel Tests / ${{ matrix.test.name }} (push) Blocked by required conditions
Parallel Tests / ${{ matrix.plugin.name }} (push) Blocked by required conditions
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Waiting to run
Run tests / docker_tests (push) Waiting to run
2026-05-24 15:40:51 -07:00
Nick Sweeting
ec4eded38a
release: archivebox 0.9.31rc39
2026-05-24 13:25:16 -07:00
Nick Sweeting
a18a10c5f3
release: archivebox 0.9.31rc34
2026-05-24 03:36:47 -07:00
Nick Sweeting
cadd3f517d
release: archivebox 0.9.31rc30
2026-05-24 02:05:13 -07:00
Nick Sweeting
0cc4251c8a
Update ArchiveBox for abx dependency releases
2026-05-16 23:50:16 -07:00
Nick Sweeting
5f8098c632
fix recursive crawls and docker runtime
2026-05-13 08:13:33 -07:00
Nick Sweeting
f3622d8cd3
update working changes
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Build Debian package / build (amd64) (push) Has been cancelled
Build Debian package / build (arm64) (push) Has been cancelled
Build Docker image / buildx (push) Has been cancelled
Deploy static content to Pages / deploy (push) Has been cancelled
Build GitHub Pages website / build (push) Has been cancelled
Run linters / lint (push) Has been cancelled
Build Pip package / build (push) Has been cancelled
Release State / release-state (push) Has been cancelled
Parallel Tests / Discover test files (push) Has been cancelled
Parallel Tests / Plugin tests (push) Has been cancelled
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Has been cancelled
Run tests / docker_tests (push) Has been cancelled
Build Debian package / test (amd64, ubuntu-24.04) (push) Has been cancelled
Build Debian package / test (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Build Debian package / release (push) Has been cancelled
Build GitHub Pages website / deploy (push) Has been cancelled
Parallel Tests / ${{ matrix.test.name }} (push) Has been cancelled
2026-03-25 05:36:07 -07:00
Nick Sweeting
39450111dd
Update CI uv handling and runner changes
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Build Debian package / build (amd64) (push) Waiting to run
Build Debian package / build (arm64) (push) Waiting to run
Build Debian package / test (amd64, ubuntu-24.04) (push) Blocked by required conditions
Build Debian package / test (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build Debian package / release (push) Blocked by required conditions
Build Docker image / buildx (push) Waiting to run
Deploy static content to Pages / deploy (push) Waiting to run
Build GitHub Pages website / build (push) Waiting to run
Build GitHub Pages website / deploy (push) Blocked by required conditions
Run linters / lint (push) Waiting to run
Build Pip package / build (push) Waiting to run
Release State / release-state (push) Waiting to run
Parallel Tests / Discover test files (push) Waiting to run
Parallel Tests / ${{ matrix.test.name }} (push) Blocked by required conditions
Parallel Tests / Plugin tests (push) Waiting to run
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Waiting to run
Run tests / docker_tests (push) Waiting to run
2026-03-23 13:27:23 -07:00
Nick Sweeting
25f935b9d1
split CrawlSetup into Install phase with new Binary + BinaryRequest events
2026-03-23 13:15:41 -07:00
Nick Sweeting
b749b26c5d
wip
2026-03-23 03:58:32 -07:00