What's Changed
- v0.6.0 Release beta 1 by @pirate in #655
- Bump y18n from 5.0.1 to 5.0.5 by @dependabot[bot] in #685
- v0.6.0 Release by @pirate in #680
- add command: --parser option (fixes #235) by @FliegendeWurst in #669
- fix bookmarklet script by @dryrain39 in #708
- point to master image, not latest by @FiddlyRumpus in #739
- Docs: Improve spelling on readme by @Namdrib in #766
- Exempt /add route from CSRF by @tjhorner in #777
- Bump ws from 5.2.2 to 5.2.3 by @dependabot[bot] in #784
- Discard Referer header from iframe and link to original URL by @Inndy in #799
- Update setup.sh in #804
- Fix Pinboard RSS parsing valid links as
Noneby @overhacked in #822 - healthcheck endpoint by @ajgon in #873
- Update README.md by @adamwolf in #884
- Fixes Add button behavior on Safari by @adamwolf in #886
- Tweak JS so Safari can choose admin actions by @adamwolf in #885
- Avoid KeyError on Pocket API parser by @bltavares in #843
- (#847) Decode error output hints to string if needed by @TheCakeIsNaOH in #904
- Change logfile open to write mode only by @tuupola in #906
- Fix #725 - correctly parse tags on json import by @hannah98 in #908
- Bump ansi-regex from 5.0.0 to 5.0.1 by @dependabot[bot] in #910
- Bump jszip from 3.6.0 to 3.7.1 by @dependabot[bot] in #909
- Added TAG_SEPARATOR_PATTERN option for splitting tags by @hannah98 in #911
- Fix typo: volumes section in docker-compose.yml should use array notation by @akhilleusuggo in #918
- Fix broken URI fragment in README.md by @xfq in #942
- Fix typo in README.md by @hyfen in #932
- Fix bin_version: set LANG=C when calling executables to avoid parsing localized output by @pellaeon in #936
- Fix arch installation command by @CrazyPython in #923
- Update pywb entrypoint by @kusold in #961
- Fix missing input redirection in a hint text by @rossvor in #967
- improve title extractor by @prnake in #924
- Bump node-fetch from 2.6.1 to 2.6.7 by @dependabot[bot] in #969
- Add PikaPods as commercial hosting option by @m3nu in #974
- Attempted to warn on #984 and #1014 by @turian in #1020
- Method typo? by @EsEnZeT in #1048
- Added standalone dockerfile instructions by @turian in #1023
- Add missing migration 0021 by @turian in #1027
- get setup.sh to run on FreeBSD again (13.x) by @mwestza in #1068
- Warn on broken steps, use yt-dlp to avoid youtube-dl errors, and don't crash on bad UTF-8 by @turian in #1026
- Add SINGLEFILE_ARGS to control single-file arguments by @ntevenhere in #1021
- Support for Reverse Proxy authentication backends (like authelia) by @ajgon in #866
- Bump moment from 2.29.3 to 2.29.4 by @dependabot[bot] in #1081
- Install the CodeSee workflow. in #1103
- Revert "Install the CodeSee workflow." by @pirate in #1104
- add systemd config by @fa0311 in #1115
- add CHROME_TIMEOUT args by @fa0311 in #1120
- add explicitly specify --headless=new by @fa0311 in #1123
- Add missing closing quote to style attribute by @tejr in #1128
- Fix for Issue #1008 by @dcalano in #1131
- Add FAVICON_PROVIDER option for custom favicon service by @mrled in #1146
- Set /app permissions in the Dockerfile by @mrled in #1147
- Update export_browser_history.sh by @jess-sol in #1152
- Add links to new social media profiles under Further Reading by @pirate in #1153
- fix: make oneshot command return successful exit code by @sissbruecker in #1154
- Update docker-compose.yml scheduled task image and container name by @pirate in #1159
- Fix Instapaper export link in README.md by @wogong in #1194
- bin_version means to modify, not replace environ by @overhacked in #1197
- More reliably detect Google Chrome major version number by @overhacked in #1199
- Fix hyphen placement in util.URL_REGEX by @overhacked in #1205
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot[bot] in #1186
- Fix archive_org icon "exists" by @DanielBatteryStapler in #1211
- After a timeout, chrome will leave behind a SingletonLock, which prev… by @spresse1 in #1219
- Update singlefile to the latest version and switch it to single-file-cli by @spresse1 in #1221
- Add Readwise Reader API parser by @mAAdhaTTah in #1168
- Add LDAP support by @DanielBatteryStapler in #1214
- Skip first line of the "JSON" file by @barthalion in #996
- README: update outdated links by @jamesob in #1229
- Fix HTML title parsing bugs. by @benmuth in #1242
- Add config options to initialize admin user on first run without prompting by @benmuth in #1245
- Replace
setup.pywith PDM, update Python, NodeJS, package versions, andDockerfileby @pirate in #1249 - Fix docker build by @c01o in #1252
- Add method-specific URL allow/deny lists by @overhacked in #1195
- Fix readwise token by @mAAdhaTTah in #1259
- Remove
playwrightfrom armv7 by @c01o in #1254 - Fix
python_testsby @c01o in #1255 - Add new SQLite FTS5 full-text search backend by @overhacked in #1241
- Fix archivebox user UID & GID by @malteo in #1267
- search index extract html text by @overhacked in #1244
- Bump yt-dlp from 2023.10.13 to 2023.11.14 by @dependabot[bot] in #1271
- make local auth working along with ldap auth so that local superuser … by @vladimirdulov in #1281
- make get_commit_hash more precisce by using exact ref by @pirate in #1270
- Show banner and hints to upgrade when ArchiveBox is out of date by @benmuth in #1274
- 0.7.2 Release Candidate by @pirate in #1297
- Fallback to not
chown'ing./data/archivedir if it's a network mount that prevents ownership changes by @gnattu in #1312 - Make "DOCS" link in navigation bar open in new tab by @TrisSherliker in #1323
- Fixes #1193 Bug: Search sometimes shows the same snapshot twice by @neel-suthar in #1330
- Fix for Bug: Search sometimes shows the same snapshot twice #1193 by @neel-suthar in #1331
- Show the upgrade notification only in specific views by @benmuth in #1314
- ability to populate is_staff and is_superuser flags at LDAP authentication by @vladimirdulov in #1335
- Update README.md by @pirate in #1336
- Fix generic_json parser by @jimwins in #1365
- Make it a little easier to run specific tests by @jimwins in #1371
- Add COOKIES_FILE support for singlefile extractor by @naoph in #1372
- Update README.md Browser Extension link by @rdela in #1374
- Use feedparser for RSS parsing by @jimwins in #1362
- Use
COOKIES_FILEto fetch page titles by @benmuth in #1364 - Add
_EXTRA_ARGSfor various extractors by @benmuth in #1360 - Add generic_jsonl parser by @jimwins in #1370
- Revise md section not formatting properly in html by @n-hebert in #1382
- Update to Django 4.2.x by @jimwins in #1388
- REST API v1 using
django-ninjaby @Brandl in #1397 - fix the URL_REGEX used in generic_html parsers by @tqobqbq in #1396
- Add Railway self-host option by @boehs in #1417
- Add Webhooks support to new REST API by @pirate in #1418
- Add ability to view configuration in Admin UI (ability to edit coming later...) by @pirate in #1420
- Fix quotation by @Brandl in #1421
- Change phrasing by @boehs in #1419
- Bump cryptography from 42.0.6 to 42.0.7 by @dependabot[bot] in #1422
- Text Search and Filters don't work at the same time in the web UI #1316 by @neel-suthar in #1333
- Path validation fixes for wget_output_path() by @pirate in #1424
- Update README.md by @pirate in #1427
- Update README.md to fix typo by @ckcr4lyf in #1434
- Refactor Snapshot and ArchiveResult to use
ulidandtypeidinstead ofuuidv4by @pirate in #1430 - Add new plugin system to separate out ArchiveBox components by @pirate in #1432
- New Snapshot detail page UI by @pirate in #1429
- Bump pydantic from 2.7.2 to 2.7.3 by @dependabot[bot] in #1447
- Bump pydantic-core from 2.18.3 to 2.18.4 by @dependabot[bot] in #1446
- Bump uuid6 from 2023.5.2 to 2024.1.12 by @dependabot[bot] in #1444
- fix README typo by @benharri in #1478
- ABID, Admin UI, and REST API improvements to prepare for v0.8 release by @pirate in #1488
- Implement searching individual fields by @sclu1034 in #1457
- v0.8.+: Massive speed improvements for Admin UI & common queries, v3 plugins progress, and bugfixes by @pirate in #1498
- Fixed typo in opening paragraph by @ssoel in #1516
- Move novnc web-ui to 8081 by @agowa in #1522
- Add OpenContainer Image Format Annotations as Labels to Docker Image by @mpgirro in #1525
- Cleanup of new plugin system to remove unecessary pydantic complexity by @pirate in #1534
- Fix API crash by @benmuth in #1569
- playwright: support PLAYWRIGHT_BROWSERS_PATH environment variable by @andrew-d in #1583
- v0.8.6-rc: Moving plugins to independent python packages with finite state machine interfaces by @pirate in #1576
- Update config.yml by @pirate in #1598
- fix syntax errors by @pyrox0 in #1609
- fix syntax error in archivebox/core/models.py by @pyrox0 in #1621
- Fix typo in timestamp scale factor by @1over137 in #1627
- Fix two small errors in abx-{readwise,spec-config} by @ckiee in #1635
- Kill the timer process if it doesn't properly terminate. by @benmuth in #1649
- fix(export_browser_history): tilde doesn't expand in quotes by @pirate in #1661
- Add link to Proxmox installer by @NelsonMinar in #1682
- Improve test suite and remove mock dependencies by @pirate in #1719
- Improve filesystem based hook architecture by @pirate in #1720
- Improve concurrency control between plugin hooks by @pirate in #1721
- Rename media plugin to ytdlp by @pirate in #1722
- Add MAX_URL_ATTEMPTS option to ArchiveBox by @pirate in #1723
- Add Claude Code GitHub Workflow by @pirate in #1724
- fix: Use CustomUserAdmin to fix user creation bug by @pirate in #1726
- Fix: Make CUSTOM_TEMPLATES_DIR configurable again by @pirate in #1725
- Implement tags editor widget for Django admin by @pirate in #1729
- Convert snapshot index from JSON to JSONL by @pirate in #1730
- Fix hook file overwrites in plugin directory by @pirate in #1732
- Process.launch()/kill()/.pidfile/.wait()/etc. centralize process handling logic on model methods by @pirate in #1734
- Persona system and CHROME_USER_DATA_DIR by @pirate in #1731
- archivebox create|list|update|delete | ... piping support by @pirate in #1735
- Review output file paths and data directory structure by @pirate in #1736
- Reduce code duplication between Chrome utilities by @pirate in #1737
- Consolidate Chrome test helpers across all plugin tests by @pirate in #1738
- Change hook timeout enforcement strategy by @pirate in #1739
- Add real-world use cases to CLI pipeline plan by @pirate in #1740
- Add unit tests for JSONL CLI pipeline commands (Phase 5 & 6) by @pirate in #1743
- Add pluginmap management command by @pirate in #1742
- Delete pid_utils.py and migrate to Process model by @pirate in #1741
- Improve admin snapshot list/grid views with better UX by @pirate in #1744
- Fix CLI tests to use subprocess and remove mocks by @pirate in #1746
- Add comprehensive tests for machine/process models, orchestrator, and search backends by @pirate in #1745
- Add persona CLI command with browser cookie import by @pirate in #1747
- Add tests for accessibility, parse_dom_outlinks, and consolelog plugins by @pirate in #1749
- Add DNS traffic recorder plugin by @pirate in #1748
- Clean up on_Crawl hooks and remove dead code by @pirate in #1751
- Remove redundant chrome_validate hook, rename wget_validate to wget_i… by @pirate in #1752
- Add thumbnail previews to live progress header by @pirate in #1753
- Fix: Make SingleFile use SINGLEFILE_CHROME_ARGS with fallback to CHROME_ARGS by @pirate in #1754
- Implement native LDAP authentication by @pirate in #1756
- FIX: docker build by @pellaeon in #1760
- Tag current maintainer of AUR package by @jasongodev in #1761
- Allow tags in JSON to be CSV or array of strings by @danielalanbates in #1767
- Update documentation and dependencies for v0.9.0 release by @pirate in #1770
- Add Debian and Homebrew package build automation by @pirate in #1771
- Add configurable server security modes by @pirate in #1773
- fix: skip URL entries in save_text_as_source to prevent Path() errors by @zkksdk in #1787
- Remove slug field from Tag model by @pirate in #1789
- [codex] Add static ArchiveBox landing page by @pirate in #1791
- Update docker-compose.yml by @pirate in #1802
- Support URLs up to 8000 chars with TextField storage by @pirate in #1817
- fix: pass archive_results=[] to LiveBusUI.print_summary() in _run_install by @slmingol in #1826
- Add PostgreSQL backend support alongside SQLite by @pirate in #1839
- Fix complete static exports and supervised crawl progress by @pirate in #1848
- Unify plugin runtime and queue lifecycle boundaries by @pirate in #1850
- Eliminate request-side SQLite write transactions by @pirate in #1846
- Expose yt-dlp media metadata for snapshot cards by @FellowTraveler in #1819
- refactor: simplify snapshot maintenance orchestration by @pirate in #1853
- Fix snapshot backfill orchestration regressions by @pirate in #1854
- Allow same-origin OpenCode agent framing by @pirate in #1855
- Avoid OpenCode proxy startup stalls by @pirate in #1856
- Keep embedded OpenCode proxy resilient by @pirate in #1857
- Stop the full OpenCode process group by @pirate in #1858
- Keep OpenCode SSE reconnects off blocked ASGI request threads by @pirate in #1859
- Reload stale OpenCode frames after server recovery by @pirate in #1860
- Avoid restarting OpenCode on transient health misses by @pirate in #1861
- Trust ready OpenCode processes by @pirate in #1862
- Remove duplicate issue detection workflow by @pirate in #1865
- Fix OpenCode defaults and false health failures by @pirate in #1866
- Handle existing OpenCode JSONC defaults by @pirate in #1867
- Disable OpenCode filesystem snapshots by @pirate in #1868
- Isolate OpenCode in its plugin and stop forced Git initialization by @pirate in #1869
- Route authenticated OpenCode WebSockets and verify mounted browser navigation by @pirate in #1870
- Test immediate OpenCode events and real terminal ticket handshakes by @pirate in #1871
- Reuse agent request config and cover private OpenCode asset caching by @pirate in #1874
- Self-heal Docker permissions and wait for Sonic search readiness by @pirate in #1877
- Remove unused helpers and simplify equivalent tests by @pirate in #1880
- Fix explicit DISPLAY handling for Docker noVNC persona setup by @pirate in #1882
- Group snapshot outputs into compact expandable stacks by @pirate in #1883
- Avoid duplicate preview iframe loads in snapshot stacks by @pirate in #1884
- Keep snapshot HTML DB-only and discover orphan files on demand by @pirate in #1885
New Contributors
- @FliegendeWurst made their first contribution in #669
- @dryrain39 made their first contribution in #708
- @FiddlyRumpus made their first contribution in #739
- @Namdrib made their first contribution in #766
- @tjhorner made their first contribution in #777
- @Inndy made their first contribution in #799
- @overhacked made their first contribution in #822
- @ajgon made their first contribution in #873
- @TheCakeIsNaOH made their first contribution in #904
- @tuupola made their first contribution in #906
- @akhilleusuggo made their first contribution in #918
- @xfq made their first contribution in #942
- @hyfen made their first contribution in #932
- @pellaeon made their first contribution in #936
- @CrazyPython made their first contribution in #923
- @kusold made their first contribution in #961
- @rossvor made their first contribution in #967
- @prnake made their first contribution in #924
- @m3nu made their first contribution in #974
- @turian made their first contribution in #1020
- @EsEnZeT made their first contribution in #1048
- @mwestza made their first contribution in #1068
- @ntevenhere made their first contribution in #1021
- @fa0311 made their first contribution in #1115
- @tejr made their first contribution in #1128
- @dcalano made their first contribution in #1131
- @mrled made their first contribution in #1146
- @jess-sol made their first contribution in #1152
- @sissbruecker made their first contribution in #1154
- @wogong made their first contribution in #1194
- @DanielBatteryStapler made their first contribution in #1211
- @spresse1 made their first contribution in #1219
- @barthalion made their first contribution in #996
- @jamesob made their first contribution in #1229
- @benmuth made their first contribution in #1242
- @c01o made their first contribution in #1252
- @malteo made their first contribution in #1267
- @vladimirdulov made their first contribution in #1281
- @gnattu made their first contribution in #1312
- @TrisSherliker made their first contribution in #1323
- @neel-suthar made their first contribution in #1330
- @jimwins made their first contribution in #1365
- @naoph made their first contribution in #1372
- @rdela made their first contribution in #1374
- @n-hebert made their first contribution in #1382
- @Brandl made their first contribution in #1397
- @tqobqbq made their first contribution in #1396
- @boehs made their first contribution in #1417
- @ckcr4lyf made their first contribution in #1434
- @benharri made their first contribution in #1478
- @sclu1034 made their first contribution in #1457
- @ssoel made their first contribution in #1516
- @agowa made their first contribution in #1522
- @mpgirro made their first contribution in #1525
- @andrew-d made their first contribution in #1583
- @pyrox0 made their first contribution in #1609
- @1over137 made their first contribution in #1627
- @ckiee made their first contribution in #1635
- @NelsonMinar made their first contribution in #1682
- @jasongodev made their first contribution in #1761
- @danielalanbates made their first contribution in #1767
- @zkksdk made their first contribution in #1787
- @slmingol made their first contribution in #1826
- @FellowTraveler made their first contribution in #1819
Full Changelog: https://github.com/ArchiveBox/ArchiveBox/commits/v0.9.36