Commit graph

1864 commits

Author SHA1 Message Date
Nick Sweeting
3e5b6ddeae
move config into dedicated global app 2024-09-30 15:59:05 -07:00
Nick Sweeting
ee7f73bd7b
bump version to 0.8.5 2024-09-27 01:26:12 -07:00
Nick Sweeting
8d3f45b720
merge plugantic and abx, all praise be to praise our glorious pluggy gods 2024-09-27 01:26:12 -07:00
Nick Sweeting
4f42eb0313
move ini_to_toml into misc 2024-09-27 01:26:11 -07:00
Nick Sweeting
6f7b6c6bde
move unused ansible folder 2024-09-27 01:26:11 -07:00
Nick Sweeting
7b6a491ae0
exclude dunder vars from constants 2024-09-27 01:26:10 -07:00
Nick Sweeting
0589ff2b5d
move loading of vendor libs import archivebox init 2024-09-27 01:26:10 -07:00
Nick Sweeting
8ed3155ec5
migrate plugin loading process to new pluggy-powered system based on djp 2024-09-26 02:43:12 -07:00
Nick Sweeting
efd341d8ad
add DIR_OUTPUT_PERMISSIONS to STORAGE_CONFIG and fix ripgrep constants import 2024-09-26 02:42:50 -07:00
Nick Sweeting
7b85ba7fd8
fix log line view in admin data when bytes are not utf8 2024-09-26 02:41:45 -07:00
Nick Sweeting
0cfcabf6f4
fix admin data view configs type rendering 2024-09-26 02:41:22 -07:00
Nick Sweeting
ed45f58758
use constants in more places 2024-09-26 02:41:09 -07:00
Nick Sweeting
eb360f188a
remove old insecure index.json url serving from root 2024-09-26 02:38:59 -07:00
Nick Sweeting
d8a9dca0f6
use constants in more places 2024-09-26 02:38:45 -07:00
Nick Sweeting
24a9f432c9
fix archivebox manage command not passing args correctly 2024-09-26 02:37:44 -07:00
Nick Sweeting
6ec5925b7f
fix readability plugin name 2024-09-26 02:37:26 -07:00
Nick Sweeting
45736036e0
simplify archivebox.constants to just use benedict instead of kludgy NamedTuple 2024-09-26 02:36:59 -07:00
Nick Sweeting
80d3def206
improve archivebox.__init__ and load vendor libs at very beginning 2024-09-26 02:36:34 -07:00
Nick Sweeting
446b38dc41
add favicon and archivedotorg plugins 2024-09-26 02:32:10 -07:00
Nick Sweeting
c950271bc3
fix more constants / config loading 2024-09-25 05:12:34 -07:00
Nick Sweeting
bb65b2dbec
move almost all config into new archivebox.CONSTANTS 2024-09-25 05:10:09 -07:00
Nick Sweeting
f5e8d99fdf
update archivebox setup to use new binprovider install methods 2024-09-25 01:15:15 -07:00
Nick Sweeting
bc08bb04a2
archivebox version show when binary is not loaded correctly 2024-09-25 01:15:00 -07:00
Nick Sweeting
0ef3a0913b
check python encoding in SHELL_CONFIG validation 2024-09-25 01:14:48 -07:00
Nick Sweeting
e0eb3119b7
bump pydantic-pkgr to 0.3.7 2024-09-25 01:13:34 -07:00
Nick Sweeting
a5ffd4e9d3
move pdf, screenshot, dom, singlefile, and ytdlp extractor config to new plugin system 2024-09-25 00:42:26 -07:00
Nick Sweeting
a2a586e369
fix system.run not using text arg 2024-09-25 00:41:55 -07:00
Nick Sweeting
5b6cf68d98
move system startup checks to pip and plugins_sys config model validation 2024-09-25 00:41:24 -07:00
Nick Sweeting
2fd837f254
setup rich tracebacks width properly in monkey patched exception handler 2024-09-25 00:40:37 -07:00
Nick Sweeting
ee5bec6a10
flip link_archive exception throw order so real exception is easier to read at the bottom 2024-09-25 00:39:49 -07:00
Nick Sweeting
6742888278
setup rich tracebacks width properly 2024-09-25 00:39:27 -07:00
Nick Sweeting
5e4b78d9e0
change supervisord to always start non-daemonized by default 2024-09-24 22:22:03 -07:00
Nick Sweeting
de2ba890ea
add ArchiveBox binary 2024-09-24 22:01:28 -07:00
Nick Sweeting
3dacec3f5b
prevent redundant supervisord starts 2024-09-24 22:01:18 -07:00
Nick Sweeting
b117484de7
add new Snapshot.archive method powered by huey task 2024-09-24 21:17:51 -07:00
Nick Sweeting
e99260feb2
fix rich logging issues 2024-09-24 21:17:07 -07:00
Nick Sweeting
0dffbf1bb4
fix rich autodetection of TTY, USE_COLOR, SHOW_PROGRESS 2024-09-24 19:37:29 -07:00
Nick Sweeting
bde0bf8263
load ipython rich extension in archivebox shell 2024-09-24 19:37:05 -07:00
Nick Sweeting
07eff77c0a
bump pydantic-pkgr submodule 2024-09-24 19:05:09 -07:00
Nick Sweeting
7c363bffc6
add ini_to_toml test 2024-09-24 19:04:54 -07:00
Nick Sweeting
64c7100cf9
speed up startup time, add rich startup progressbar, split logging and checks into misc, fix search index import backend bug 2024-09-24 19:04:38 -07:00
Nick Sweeting
7ffb81f61b
delete dead code 2024-09-24 15:26:43 -07:00
Nick Sweeting
97695bda5e
more settings loading tweaks and improvements 2024-09-24 15:13:54 -07:00
Nick Sweeting
fbfd16e195
fully migrate all search backends to new plugin system 2024-09-24 03:05:43 -07:00
Nick Sweeting
c9c163efed
begin migrating search backends to new plugin system 2024-09-24 02:13:01 -07:00
Nick Sweeting
2d19317e3f
rename plugins_sys base to config 2024-09-24 02:12:30 -07:00
Nick Sweeting
e8f1264954
rename plugins dirs 2024-09-24 01:34:27 -07:00
Nick Sweeting
8713091e73
remove redundant import 2024-09-24 01:32:01 -07:00
Nick Sweeting
77d3990535
temporarily add prints on plugin setup for easier debugging 2024-09-24 01:26:16 -07:00
Nick Sweeting
a9a97c013d
split plugin dirs, created new cleaner import path for plugin config in settings.py 2024-09-24 01:25:55 -07:00
Nick Sweeting
1a58967e8c
first example of plugin config based on another plugin config 2024-09-23 21:10:19 -07:00
Nick Sweeting
8df9480824
make sure hooks have the object identity everywhere in the codebase by avoiding pydantics usual deepcopy on every validation 2024-09-23 21:04:23 -07:00
Nick Sweeting
4eb1c14139
handle ConfigSet default value factories that dont take any args 2024-09-23 21:03:16 -07:00
Nick Sweeting
1f4cded152
use benedict in old config instead of AttrDict 2024-09-23 21:02:51 -07:00
Nick Sweeting
e992a84b80
add custom TOML encoder to work around issues with dumping toml of lots of different types 2024-09-23 21:02:33 -07:00
Nick Sweeting
b6cfeb8d40
add new pydantic_settings based loader for ConfigSets 2024-09-22 19:30:24 -07:00
Nick Sweeting
c8ff8f2b86
add header to generated TOML file warning its been converted from INI 2024-09-22 19:27:33 -07:00
Nick Sweeting
7f05026022
change is_registered and is_ready into private model fields 2024-09-22 19:27:00 -07:00
Nick Sweeting
8f38f70e4a
define PACKAGE_DIR and DATA_DIR in settings.py directly 2024-09-22 19:26:26 -07:00
Nick Sweeting
8c8c64d90f
swap AttrDict for benedict everywhere 2024-09-22 19:26:05 -07:00
Nick Sweeting
b611c0114c
add pydantic_settings mockup 2024-09-22 16:48:28 -07:00
Nick Sweeting
3b0a25950d
add minor pydantic pkgr fix 2024-09-22 16:28:48 -07:00
Nick Sweeting
d89b6ce419
add SQLite semaphore mockup 2024-09-22 16:28:30 -07:00
Nick Sweeting
a2d827afd6
bump pydantic pkgr to 0.3.5 2024-09-22 15:41:21 -07:00
Nick Sweeting
f8c6ff88ad
add clickable host link back to archivebox server output 2024-09-22 15:41:21 -07:00
Nick Sweeting
2d99f184d3
add mockup for new config loading process 2024-09-22 15:41:21 -07:00
Nick Sweeting
ab0087e106
cleanup chrome and playwright symlink and app names 2024-09-22 15:41:20 -07:00
Nick Sweeting
8945475f8d
bump pydantic-pkgr submodule to 0.3.4 2024-09-21 04:12:59 -07:00
Nick Sweeting
99dd812e3b
bump pydantic-pkgr version to 0.3.4 2024-09-21 04:12:34 -07:00
Nick Sweeting
541cd6c5a1
split puppeteer plugin into Puppeteer, Playwright, and Chrome 2024-09-21 04:12:34 -07:00
Nick Sweeting
33fd7fe439
fix log_list_view trying to seek past end of file on short logs 2024-09-21 04:12:34 -07:00
Nick Sweeting
aa21c56ddd
add timeout limit to bin_version loading in config 2024-09-21 04:12:34 -07:00
Nick Sweeting
575105006d
add LIB_DIR and BIN_DIR to config 2024-09-21 04:12:34 -07:00
Nick Sweeting
6096fb1427
update puppeteer plugin to create a PuppeteerBinProvider for installing browsers 2024-09-21 04:12:34 -07:00
Nick Sweeting
6c39d27ccb
update singlefile plugin to use new npm binprovider and support installing 2024-09-21 04:12:33 -07:00
Nick Sweeting
dd6d7e4975
fix npm and pip binprovider setup and paths search 2024-09-21 04:12:33 -07:00
Nick Sweeting
30def925e7
move all ansible files into plugantic folder for now 2024-09-21 04:12:33 -07:00
Nick Sweeting
11f369ee2d
bump subdependency versions 2024-09-21 04:12:33 -07:00
Nick Sweeting
61df9ea059
fix duplicate when 2024-09-17 02:04:41 -07:00
Nick Sweeting
2c8779736a
change default node version to 21 2024-09-17 02:03:28 -07:00
Nick Sweeting
f29f72f383
fix os checking for npm install 2024-09-17 01:57:06 -07:00
Nick Sweeting
a5cefb5464
install nodesource first 2024-09-17 01:46:02 -07:00
Nick Sweeting
19c7b9c24e
install nodejs and npm packages properly in npm ansible 2024-09-17 01:42:06 -07:00
Nick Sweeting
7ab1a0b873
fix singlefile and puppeteer ansible install 2024-09-17 01:33:32 -07:00
Nick Sweeting
5c0aa6fe59
more ansible fixes 2024-09-17 01:12:49 -07:00
Nick Sweeting
c55cd46ecb
consolidate ansible setup into roles dir 2024-09-17 00:48:47 -07:00
Nick Sweeting
25db6826ec
ignore lib dirs 2024-09-17 00:47:55 -07:00
Nick Sweeting
8d69469887
silence ansible errors about implicit localhost 2024-09-15 20:31:11 -07:00
Nick Sweeting
fab80632b7
add ansible runner code to get facts after execution and benedict 2024-09-15 20:29:02 -07:00
Nick Sweeting
e9ddac0219
fix ansible installed_packages and cacheable facts 2024-09-15 20:28:35 -07:00
Nick Sweeting
56b851ea1b
more ansible playbooks improvements 2024-09-13 04:55:40 -07:00
Nick Sweeting
8557e77a70
add ansible playbooks 2024-09-13 03:27:38 -07:00
Nick Sweeting
3bbf8f69ab
cleanup settings.py sqlite settings more 2024-09-13 03:27:38 -07:00
Nick Sweeting
c887af0278
minor ruff fixes 2024-09-12 02:00:07 -07:00
Nick Sweeting
c00afce71f
upgrade dependency versions to django 5.1 minimum 2024-09-11 17:08:10 -07:00
Nick Sweeting
eae11cba19
add recommended SQLite db connection settings to avoid single-writer lock contention 2024-09-11 16:50:44 -07:00
Nick Sweeting
0187c8b6cb
bump version to 0.8.4 2024-09-10 03:10:30 -07:00
Nick Sweeting
a13f71a86c
allow supervisord to start if pid file is stale 2024-09-10 03:10:10 -07:00
Nick Sweeting
cecca8d169
allow deleting results from list page 2024-09-10 03:09:43 -07:00
Nick Sweeting
f5c878b267
point select2 js resources to local statifiles 2024-09-10 01:51:08 -07:00
Nick Sweeting
0640018426
bump packages 2024-09-10 01:50:49 -07:00
Nick Sweeting
0bd678c30f
fix init 2024-09-10 00:37:01 -07:00
Nick Sweeting
d680c48942
avoid auto-starting all supervisord workers on startup 2024-09-10 00:19:32 -07:00
Nick Sweeting
8d1d5df43a
add proxy model for SinglefileResult wrapping ArchiveResult 2024-09-10 00:05:46 -07:00
Nick Sweeting
04cb6bdfd6
ignore healtcheck requests in daphne logs 2024-09-10 00:05:46 -07:00
Nick Sweeting
1ce09b88d7
show logs and workers in Django Admin data views 2024-09-10 00:05:45 -07:00
Nick Sweeting
60154fba5f
add django_huey, huey_monitor, and replace Threads with huey tasks 2024-09-10 00:05:45 -07:00
Nick Sweeting
4df90fbb40
change plugins to have both a .register that runs at import and .ready that runs later 2024-09-10 00:05:45 -07:00
Nick Sweeting
f1cca5bbba
ignore tmp dirs 2024-09-10 00:05:45 -07:00
Nick Sweeting
db5428a486
increase maximum form field POST param size 2024-09-10 00:05:45 -07:00
Nick Sweeting
31576e21a2
fix plugins and modules dataviews 2024-09-06 06:14:18 -07:00
Nick Sweeting
3f76e0a87f
fix migrations import errors 2024-09-06 03:48:52 -07:00
Nick Sweeting
ab517d9848
fix infinite recursion on pydantic instantiation 2024-09-06 03:19:03 -07:00
Nick Sweeting
cfe5798ade
bump version to 0.8.3 2024-09-06 02:59:14 -07:00
Nick Sweeting
6e2ddc14df
make archivebox server spawn daphne process instead of runserver 2024-09-06 02:55:06 -07:00
Nick Sweeting
f6ca48835a
hide more 404 and 304 errors from daphne logs 2024-09-06 02:54:53 -07:00
Nick Sweeting
52386d9c16
run all blocking commands in background threads and show nice UI messages as confirmation 2024-09-06 02:54:22 -07:00
Nick Sweeting
b56b1cac35
cleanup plugantic and pkg apps, make BaseHook actually create its own settings 2024-09-06 01:48:18 -07:00
Nick Sweeting
0e79a8b683
minor type hint fixes 2024-09-05 23:24:44 -07:00
Nick Sweeting
2e1e1945f2
add django-object-actions to provide Regenerate ABID button 2024-09-05 23:19:21 -07:00
Nick Sweeting
00aa7dc19f
setup daphne and django channels to replace runserver 2024-09-05 21:45:43 -07:00
Nick Sweeting
a190745f36
add rich support for logging and ruff for formatting 2024-09-05 21:44:18 -07:00
Nick Sweeting
2c48dabfab
add preliminary support for ASGI/daphne serving 2024-09-05 21:43:42 -07:00
Nick Sweeting
26291f81ef
prevent ABID drift entirely when its set to False on a model 2024-09-05 21:43:14 -07:00
Nick Sweeting
c76c50e71f
add HTTP byte range request support to media file serving 2024-09-05 21:41:49 -07:00
Nick Sweeting
ba6c1fd69b
minor formatting and fixes 2024-09-05 04:39:46 -07:00
Nick Sweeting
d50aed9185
improve new Hook system docstring 2024-09-05 03:51:54 -07:00
Nick Sweeting
44669fab73
add BaseHook concept to underlie all Plugin hooks 2024-09-05 03:36:18 -07:00
Nick Sweeting
ed5357cec9
add migrations for datetime field renames 2024-09-04 23:44:13 -07:00
Nick Sweeting
0fef2357c7
change default datetime template rendering to include seconds 2024-09-04 23:43:25 -07:00
Nick Sweeting
0c236b034b
allow accessing admin change pages by .abid as well as .id 2024-09-04 23:43:07 -07:00
Nick Sweeting
cbf2a8fdc3
rename datetime fields to _at, massively improve ABID generation safety and determinism 2024-09-04 23:42:36 -07:00
Nick Sweeting
68a39b7392
remove .old_id entirely and make ABID generation only happen once on initial save 2024-09-04 16:40:15 -07:00
Nick Sweeting
22a6666bab
fix pkg management subcommand 2024-09-04 02:37:19 -07:00
Nick Sweeting
9072f4a999
fix ABID added to default to bookmarked value 2024-09-04 02:34:27 -07:00
Nick Sweeting
4427869ae8
fix ABID generation by chopping ts_src precision to consistent length 2024-09-04 02:02:29 -07:00
Nick Sweeting
d060eaa499
abid gradual improvements, some regrets 2024-09-04 00:08:14 -07:00
Nick Sweeting
ae13f1811f
better ABID display in admin UI 2024-09-03 17:11:10 -07:00
Nick Sweeting
3d7dd3c9cf
bump pydantic-pkgr 2024-09-03 14:17:50 -07:00
Nick Sweeting
f915ef6c5e
try to improve django console log 404 and 200 error filtering 2024-09-03 14:17:02 -07:00
Nick Sweeting
01094ecb03
fix REST API CSRF and auth handling 2024-09-03 14:16:44 -07:00
Nick Sweeting
41a318a8bd
fix config loading precedence order 2024-09-03 03:22:37 -07:00
Nick Sweeting
8d4ace017d
fix Binary overrides getting wiped after init 2024-09-03 02:50:30 -07:00
Nick Sweeting
a18857dbb9
add ytldp extractor stub 2024-09-03 01:40:38 -07:00
Nick Sweeting
b927f5f2a9
add FFMPEG_BINARY to ytdlp plugin 2024-09-03 01:39:02 -07:00
Nick Sweeting
c1c55d6da7
fix API token_auth and CSRF setup 2024-09-03 01:21:13 -07:00
Nick Sweeting
9af260df16
BasePlugin system expanded and registration system improved 2024-09-03 00:58:50 -07:00
Nick Sweeting
f1579bfdcd
add NODE_BIN_PATH to dynamic CONFIG and make ANSI an AttrDict 2024-09-03 00:19:18 -07:00
Nick Sweeting
23c7d2f860
bump pydantic-pkgr 2024-09-02 15:06:10 -07:00
Nick Sweeting
3ea116f0b6
tweak Pkgs app name and admin button CSS 2024-09-02 01:14:41 -07:00
Nick Sweeting
9be7e1a0bc
change Snapshot admin action UI button text 2024-09-02 01:14:06 -07:00
Nick Sweeting
5f7bca298c
bump USER_AGENT config default to chrome v128 2024-09-02 01:13:50 -07:00
Nick Sweeting
dd05ad04fa
disable cookie auth in API because csrf=False 2024-09-02 01:13:19 -07:00
Nick Sweeting
da76a84c45
rename pkgs app to pkg 2024-08-30 03:32:36 -07:00
Nick Sweeting
6e13cd4820
fix loading of plugin dependencies and bump pydantic_pkgr version 2024-08-30 03:30:28 -07:00
Nick Sweeting
a8f00caff8
bump singlefile version 2024-08-29 22:33:47 -07:00
Nick Sweeting
57ed2ebcb2
switch youtube_dl install for yt-dlp 2024-08-28 03:46:45 -07:00
Nick Sweeting
038e9f32af
bump deps versions 2024-08-28 03:03:09 -07:00
Nick Sweeting
4ac980a832
hide binary loading debug output for now 2024-08-28 03:02:54 -07:00
Nick Sweeting
1e73a06ba0
change ABIDModel.created to use AutoTimeField seeded on .save instead of auto_now_add so that ts_src for ABID is available on creation before DB row is created 2024-08-28 03:02:37 -07:00
Nick Sweeting
7a734ce410
fix archivebox setup User model import 2024-08-28 03:01:35 -07:00
Nick Sweeting
e558d71b10
fix uuid checks on save 2024-08-28 03:01:19 -07:00
Nick Sweeting
6456cb1727
fix NOT NULL constraint failed: core_snapshot.created_by_id 2024-08-28 00:51:16 -07:00
Nick Sweeting
b789be098d
fix type hint 2024-08-28 00:26:37 -07:00
Nick Sweeting
d0fefc0279
add chunk_size=500 to more iterator calls 2024-08-27 19:28:00 -07:00
Nick Sweeting
44849e1ba2
fix python vendor dependendcies 2024-08-26 20:24:25 -07:00
Nick Sweeting
d7e333b5cf
fix settings.py for prod 2024-08-26 20:20:33 -07:00
Nick Sweeting
24fe958ff3
massively improve Snapshot admin list view query performance 2024-08-26 20:16:43 -07:00
Nick Sweeting
6c4f3fc83a
fix chrome headless=new arg 2024-08-26 20:15:36 -07:00
Nick Sweeting
6ffa710bb3
fix headers Elapsed timedelta is not a JSON-serializable 2024-08-26 20:15:22 -07:00
Nick Sweeting
917af4b1d7
add pydantic logfire and improve settings for debugging 2024-08-26 20:14:47 -07:00
Nick Sweeting
3a57c28ca8
bump pydantic_pkgr version to 0.1.4 2024-08-23 02:03:26 -07:00
Nick Sweeting
5fe3edd79a
new plugin loading system 2024-08-23 02:02:34 -07:00
Nick Sweeting
34389e5e7c
improve CSRF_TRUSTED_ORIGINS loading logic 2024-08-23 02:01:40 -07:00
Nick Sweeting
c6a80ab256
use pydantic_pkgr to parse semver versions 2024-08-23 02:01:24 -07:00
Nick Sweeting
2c2d034d6d
move to new vendoring fallback logic 2024-08-23 02:01:02 -07:00
Nick Sweeting
9c35f3ddb7
add new CSRF_TRUSTED_ORIGINS config option 2024-08-22 18:40:47 -07:00
Nick Sweeting
1a03db2b1d
fix api auth endpoint checking wrong user field 2024-08-22 18:28:23 -07:00
Nick Sweeting
73a3e6aad0
handle tag with no slug or name 2024-08-22 18:25:15 -07:00
Nick Sweeting
cec8015b5b
fix missing STDOUT 2024-08-22 17:58:58 -07:00
Nick Sweeting
38ca5c3228
add extra info to headers.json 2024-08-22 17:57:40 -07:00
Nick Sweeting
80d7a30f13
improve version_str detection 2024-08-22 17:57:33 -07:00
Nick Sweeting
1d31b88fa3
fix migration failing when Tag name is empty 2024-08-22 16:30:25 -07:00
Nick Sweeting
9ecc2ff91c
bump more deps 2024-08-22 15:36:11 -07:00
Nick Sweeting
09553d8340
hardcode EXTRACTOR_CHOICES to prevent nondeterministic migrations 2024-08-22 15:36:02 -07:00
Nick Sweeting
0a5b22700c
bump deps 2024-08-22 15:20:52 -07:00
Nick Sweeting
afe1307617
fix created_by field migration to create User properly if none exists 2024-08-22 15:20:36 -07:00
Nick Sweeting
9b1659c72f
make created_by_id autoapply to any ArchiveResults created under Snapshot 2024-08-20 19:43:07 -07:00
Nick Sweeting
c30ae1d2cb
add created_by_id to all Snapshot creation functions 2024-08-20 19:28:28 -07:00
Nick Sweeting
aa282daadf
show CONSTANTS in separate section of django admin config 2024-08-20 19:27:21 -07:00
Nick Sweeting
ea81f2fc14
use ABIDAdmin as base ModelAdmin 2024-08-20 19:26:40 -07:00
Nick Sweeting
57e48b432c
show redacted API tokens in django admin 2024-08-20 19:25:16 -07:00
Nick Sweeting
ff619fd31f
add api migrations 2024-08-20 18:31:40 -07:00
Nick Sweeting
0285aa52a0
config and attr access improvements 2024-08-20 18:31:21 -07:00
Nick Sweeting
4ae186dfca
fix ABID generation consistency when self._state.adding is True 2024-08-20 05:56:19 -07:00
Nick Sweeting
9d2116ad9a
migration to make fields non editable 2024-08-20 03:46:04 -07:00
Nick Sweeting
9c8ece4d7c
minor css and APIToken Admin UI fixes 2024-08-20 03:45:49 -07:00
Nick Sweeting
75018ed10b
Merge branch 'dev' into feat/search-fields 2024-08-20 03:37:56 -07:00
Nick Sweeting
05880dba8b
bump version to 0.8.2 2024-08-20 03:36:07 -07:00
Nick Sweeting
267964881c
fix tags editor in Snapshot list view 2024-08-20 03:29:57 -07:00