Commit Graph

5053 Commits

Author SHA1 Message Date
Nick Sweeting
6511eaa6b8
Bump preload listener fix 2026-05-15 10:34:06 -07:00
Nick Sweeting
ae3202aff2
Bump headers plugin fix 2026-05-15 10:21:01 -07:00
Nick Sweeting
d347e73d80
Bump fixed plugin dependency 2026-05-15 10:08:45 -07:00
Nick Sweeting
1c0d8b44a0
Find snapshot completion events through bus history 2026-05-15 10:06:24 -07:00
Nick Sweeting
7e97dbf14c
Use snapshot event results for completion checks 2026-05-15 09:52:17 -07:00
Nick Sweeting
37b17d61a9
Retrigger CI 2026-05-15 09:35:08 -07:00
Nick Sweeting
896d24ef43
Bump downloader package dependency
Some checks failed
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 / 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
Deploy Publicsite to GitHub Pages / deploy (push) Has been cancelled
2026-05-15 01:03:51 -07:00
Nick Sweeting
a45c9b4863
Bump latest package dependencies 2026-05-15 00:42:56 -07:00
Nick Sweeting
26cede202f
Bump fixed downloader package versions 2026-05-15 00:35:39 -07:00
Nick Sweeting
a5ccebe1c5
Fix Chrome-backed title extraction tests 2026-05-15 00:22:49 -07:00
Nick Sweeting
8384139e37
Bypass uv cache for fresh package releases 2026-05-15 00:11:04 -07:00
Nick Sweeting
93f6089b29
Fix parallel test workflow env 2026-05-15 00:09:25 -07:00
Nick Sweeting
7fe127ac24
Fix Chrome-backed archive flows 2026-05-15 00:08:42 -07:00
Nick Sweeting
70f8c3f870
Fix config TOML serialization 2026-05-14 22:19:20 -07:00
Nick Sweeting
5177cf0eef
Bump runtime package versions 2026-05-14 22:00:25 -07:00
Nick Sweeting
fa15e1edfa
Fix docker runtime and real crawl flows 2026-05-14 21:24:32 -07:00
Nick Sweeting
2c3146549a
Use published deps and isolate runner tasks
Some checks are pending
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 / 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-05-14 17:24:26 -07:00
Nick Sweeting
9b9d4b275c
Stabilize event and schedule E2E tests 2026-05-14 16:30:55 -07:00
Nick Sweeting
0ea64d889e
Lock published package releases 2026-05-14 16:22:37 -07:00
Nick Sweeting
af782ce098
Bump abxbus to PyPI 2.5.0 2026-05-14 13:39:30 -07:00
Nick Sweeting
c7b3331872
fix hook node runtime paths
Some checks failed
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
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
Parallel Tests / ${{ matrix.test.name }} (push) Has been cancelled
2026-05-13 08:37:37 -07:00
Nick Sweeting
5f8098c632
fix recursive crawls and docker runtime 2026-05-13 08:13:33 -07:00
Nick Sweeting
5d60098618
fix: stabilize dockerized crawl runtime
Some checks are pending
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 / 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-05-13 02:05:07 -07:00
Nick Sweeting
caba6e4246 Link publicsite capability chips
Some checks failed
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
Deploy Publicsite to GitHub Pages / deploy (push) Has been cancelled
Build Docker image / buildx (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
Parallel Tests / ${{ matrix.test.name }} (push) Has been cancelled
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:18:30 -07:00
Nick Sweeting
9b8f00fa26
more tweaks
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:16:51 -07:00
Nick Sweeting
166dcd5a6d
tweaks
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:16:28 -07:00
Nick Sweeting
9c71acc2b2 Add README shields to publicsite hero
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:14:44 -07:00
Nick Sweeting
166a161b85 Align publicsite hero and nav with design system
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:13:27 -07:00
Nick Sweeting
4fef401bcd Refine publicsite hero heading
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:10:04 -07:00
Nick Sweeting
4804ad315e Update publicsite source header
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:04:36 -07:00
Nick Sweeting
fc3682abfb Fix publicsite hero typo
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:03:40 -07:00
Nick Sweeting
35d630ba76 Tighten publicsite hero header
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 22:03:09 -07:00
Nick Sweeting
abc987c403 Update publicsite intro header
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 21:39:08 -07:00
Nick Sweeting
ca7eeb77eb Update publicsite configuration header
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 21:37:05 -07:00
Nick Sweeting
163e9bd626 Rename publicsite Pages workflow
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 21:36:05 -07:00
Nick Sweeting
e013817dd0
public site tweaks
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 21:03:37 -07:00
Nick Sweeting
2b71c474ca
[codex] Add static ArchiveBox landing page (#1791)
## Summary
- add a vanilla HTML/CSS landing page under repo-root `publicsite/`
- keep the existing ArchiveBox logo and custom domain CNAME in the Pages
artifact
- use the light-mode ArchiveBox design tokens with no dark-mode CSS
- update the GitHub Pages workflow to deploy `./publicsite` directly
without Jekyll
- remove the old top-level `website/` tree and duplicate Jekyll Pages
workflow

## Validation
- `ruby -e "require 'yaml';
YAML.load_file('.github/workflows/gh-pages.yml')"`
- parsed `publicsite/index.html` with Python `HTMLParser`
- served `publicsite` locally and verified `/`, `styles.css`,
`icon.png`, and `CNAME` return 200
2026-04-23 20:51:17 -07:00
Nick Sweeting
2c1700a8e0
Add static ArchiveBox landing page
Signed-off-by: Nick Sweeting <git@sweeting.me>
2026-04-23 20:48:12 -07:00
Nick Sweeting
42dc87f271
Remove slug field from Tag model (#1789)
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (none, python) (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 GitHub Pages website / deploy (push) Has been cancelled
Parallel Tests / ${{ matrix.test.name }} (push) Has been cancelled
## Summary

This PR removes the `slug` field from the Tag model and all related slug
generation logic. Tags are now identified and referenced by their name
instead of a generated slug, simplifying the data model and reducing
complexity.

## Related issues

N/A

## Changes these areas

- [x] Internal architecture
- [x] Snapshot data layout on disk

## Details

### What changed

1. **Model changes**: Removed the `slug` field from the Tag model,
including the `_generate_unique_slug()` method and slug generation logic
in the `save()` method
2. **Database migration**: Added migration `0034_remove_tag_slug` to
drop the slug column
3. **API updates**: Removed `slug` from all API schemas (TagSchema,
TagSearchCardSchema, TagUpdateResponseSchema) and responses
4. **Tag lookup**: Updated `get_tag_by_ref()` to use URL-decoded tag
names instead of slugs for lookups
5. **Tag filtering**: Simplified `get_matching_tags()` to only filter by
name instead of both name and slug
6. **Export filenames**: Changed tag export filenames to use
`quote(tag.name)` instead of `tag.slug`
7. **Admin interface**: Removed slug from TagAdmin search fields,
readonly fields, and fieldsets
8. **Templates**: Removed slug display from tag cards and similar tags
UI
9. **Tests**: Updated test expectations and removed slug assertions;
updated export filename checks to use `quote(tag.name)`

### Why

This simplifies the Tag model by removing the derived slug field. Tags
can be uniquely identified by their name, and URL encoding handles
special characters in filenames and URLs. This reduces database
complexity and eliminates the need for slug generation and uniqueness
logic.

## Test Plan

Existing tests have been updated to verify the new behavior:
- `test_tag_rename_api_updates_name` verifies tag renaming works without
slug
- `test_tag_snapshots_export_returns_jsonl` and
`test_tag_urls_export_returns_plain_text_urls` verify export filenames
use encoded tag names
- `test_tag_table_has_required_columns` verifies the database schema no
longer includes slug

All related tests pass with the updated assertions.

https://claude.ai/code/session_014KmEXoA64Ayp2t8BW2xfVP
<!-- devin-review-badge-begin -->

---

<a href="https://app.devin.ai/review/archivebox/archivebox/pull/1789"
target="_blank">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open in Devin Review">
  </picture>
</a>
<!-- devin-review-badge-end -->

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removed the stored `slug` from Tag and moved to name-based tags. Added a
derived `Tag.slug` via `django.utils.text.slugify` for clean export
filenames and an admin download fallback; public APIs no longer include
slugs and lookups resolve by URL-decoded exact name.

- **Refactors**
- Replaced stored slug with a derived `Tag.slug` property; removed slug
generation/save logic.
- Public API schemas and autocomplete drop `slug`; matching/filtering
uses `name` only.
- `get_tag_by_ref` resolves by URL-decoded `name` (case-insensitive
exact match).
- Export endpoints set filenames using `tag.slug`; admin tag cards
expose `data-slug`, and the client uses it as a fallback filename.
Removed slug from admin search fields/fieldsets and UI displays.

- **Migration**
  - Run database migrations.
- Update any consumers expecting `slug` in Tag API/admin; use the tag
`name` for references (URL-encode names in links). Rely on
server-provided filenames, with the built-in client fallback using
`tag.slug` where needed.

<sup>Written for commit 7c3a3e0dba.
Summary will update on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2026-04-21 11:54:00 -07:00
Claude
7c3a3e0dba
Put tag slug back in JS download filename
Address pirate's review: restore the slug in the client-side
download fallback filename. Expose tag.slug as data-slug on the
card element and in the search card schema so the JS can read it
directly without slugifying client-side.
2026-04-21 17:35:57 +00:00
Claude
2ea66d05d1
Move tag slug logic onto Tag.slug @property
Replaces the tag_filename_safe() helper with a Tag.slug property
that returns the slugified form via django.utils.text.slugify.
Call sites now just use tag.slug directly.
2026-04-21 17:32:25 +00:00
Claude
0041a2d407
Sanitize tag export filenames via django.utils.text.slugify
Some checks failed
Build Docker image / buildx (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
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Has been cancelled
Run tests / docker_tests (push) Has been cancelled
Addresses review feedback from cubic and devin: quote()'s percent-
encoding isn't decoded by browsers in Content-Disposition's filename
parameter (Safari saves literal %20). Switch to Django's slugify()
which does NFKD normalization, ASCII transliteration, and replaces
punctuation with hyphens — producing clean names like
"tag-alpha-research-urls.txt".

- Add tag_filename_safe(name) helper wrapping slugify
- Use it in both tag export endpoints
- Drop the now-unneeded JS fallback name (server always sets
  Content-Disposition)
2026-04-21 17:30:50 +00:00
Claude
b83e2de73a
Add TODO on tag export filename encoding
Applies pirate's review suggestion on PR #1789: mark the
Content-Disposition filename encoding as a known-rough approach
that could be hardened further (strip punctuation, convert to
ASCII equivalents) in a follow-up.
2026-04-21 17:27:06 +00:00
Claude
ec9c7c89f4
Drop Tag slug column and use URL-encoded names
Tags now support full unicode with no restrictions. URL-encode the tag
name wherever it previously used the slug (export filenames, lookups).

- Remove `slug` field, `_generate_unique_slug`, and slug handling in save()
- Add migration 0034 to drop the slug column
- `get_tag_by_ref` now resolves by URL-decoded exact name match
- Tag search/autocomplete/export filenames use the name directly
- Drop slug from admin search_fields/readonly_fields/fieldsets
- Remove slug display from similar-tag cards and client download filename
2026-04-20 17:05:07 +00:00
Nick Sweeting
b68ff3ed29
fix monorepo script
Some checks failed
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-04-18 21:55:02 -07:00
Nick Sweeting
7d8c468659
rename abx-pkg to abxpkg
Some checks failed
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-04-17 10:48:40 -07:00
Nick Sweeting
ee5685353b
rename abx-pkg to abxpkg 2026-04-17 10:37:10 -07:00
Nick Sweeting
f1287510ff
rename abxpkg 2026-04-17 10:36:19 -07:00
Nick Sweeting
2cc5a11662
update dev instructions
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (none, python) (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 GitHub Pages website / deploy (push) Has been cancelled
Parallel Tests / ${{ matrix.test.name }} (push) Has been cancelled
2026-04-07 20:29:33 -07:00
Nick Sweeting
0b9b3b7e54
split tag editor issue 2026-04-07 20:21:58 -07:00