Commit Graph
207 Commits
Author SHA1 Message Date
Brandon Thomas e2c78c7054 rename file deletion functions for more general use 2024-08-21 16:16:30 -04:00
Brandon Thomas 1b9a735756 refactor file deletion module 2024-08-21 16:04:42 -04:00
Brandon Thomas b3be085994 safer migration for model weights elasticsearch 2024-08-08 17:22:46 -04:00
Brandon Thomas 72fb4c77e9 update featured bool for model search 2024-08-08 16:36:05 -04:00
Kasisnu f731bce142 funky dev setup 2024-08-06 21:20:46 +05:30
Brandon Thomas be8822dce4 fix errors, codegen db 2024-08-01 21:20:39 -04:00
Brandon Thomas 617f500039 fix model weight search 2024-08-01 21:01:23 -04:00
Brandon Thomas 783d73a48b better organize media file queries 2024-07-07 23:13:43 -04:00
Brandon Thomas c44efc2a18 update elasticsearch cli search to match update job 2024-07-07 20:07:48 -04:00
Brandon Thomas 807c8fd4f8 add progress estimation to job status endpoints (this is incomplete) (#353)
This adds a progress indicator to the three job status endpoints. 

There's a function to calculate progress, which is mostly left as a stub
for now.

In the future we may even want to do dynamically updating averages.
2024-07-05 15:23:00 -04:00
dependabot[bot] 878c93f34c Bump tokio from 1.37.0 to 1.38.0 (#347)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.37.0 to 1.38.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.38.0</h2>
<p>This release marks the beginning of stabilization for runtime
metrics. It
stabilizes <code>RuntimeMetrics::worker_count</code>. Future releases
will continue to
stabilize more metrics.</p>
<h3>Added</h3>
<ul>
<li>fs: add <code>File::create_new</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6573">#6573</a>)</li>
<li>io: add <code>copy_bidirectional_with_sizes</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6500">#6500</a>)</li>
<li>io: implement <code>AsyncBufRead</code> for <code>Join</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6449">#6449</a>)</li>
<li>net: add Apple visionOS support (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6465">#6465</a>)</li>
<li>net: implement <code>Clone</code> for <code>NamedPipeInfo</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6586">#6586</a>)</li>
<li>net: support QNX OS (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6421">#6421</a>)</li>
<li>sync: add <code>Notify::notify_last</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6520">#6520</a>)</li>
<li>sync: add <code>mpsc::Receiver::{capacity,max_capacity}</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6511">#6511</a>)</li>
<li>sync: add <code>split</code> method to the semaphore permit (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6472">#6472</a>,
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6478">#6478</a>)</li>
<li>task: add
<code>tokio::task::join_set::Builder::spawn_blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6578">#6578</a>)</li>
<li>wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6510">#6510</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>macros: make <code>#[tokio::test]</code> append <code>#[test]</code>
at the end of the attribute list (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6497">#6497</a>)</li>
<li>metrics: fix <code>blocking_threads</code> count (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6551">#6551</a>)</li>
<li>metrics: stabilize <code>RuntimeMetrics::worker_count</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6556">#6556</a>)</li>
<li>runtime: move task out of the <code>lifo_slot</code> in
<code>block_in_place</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6596">#6596</a>)</li>
<li>runtime: panic if <code>global_queue_interval</code> is zero (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6445">#6445</a>)</li>
<li>sync: always drop message in destructor for oneshot receiver (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6558">#6558</a>)</li>
<li>sync: instrument <code>Semaphore</code> for task dumps (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6499">#6499</a>)</li>
<li>sync: use FIFO ordering when waking batches of wakers (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6521">#6521</a>)</li>
<li>task: make <code>LocalKey::get</code> work with Clone types (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6433">#6433</a>)</li>
<li>tests: update nix and mio-aio dev-dependencies (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6552">#6552</a>)</li>
<li>time: clean up implementation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6517">#6517</a>)</li>
<li>time: lazily init timers on first poll (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6512">#6512</a>)</li>
<li>time: remove the <code>true_when</code> field in
<code>TimerShared</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6563">#6563</a>)</li>
<li>time: use sharding for timer implementation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6534">#6534</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>taskdump: allow building taskdump docs on non-unix machines (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6564">#6564</a>)</li>
<li>time: check for overflow in <code>Interval::poll_tick</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6487">#6487</a>)</li>
<li>sync: fix incorrect <code>is_empty</code> on mpsc block boundaries
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6603">#6603</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>fs: rewrite file system docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6467">#6467</a>)</li>
<li>io: fix <code>stdin</code> documentation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6581">#6581</a>)</li>
<li>io: fix obsolete reference in <code>ReadHalf::unsplit()</code>
documentation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6498">#6498</a>)</li>
<li>macros: render more comprehensible documentation for
<code>select!</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6468">#6468</a>)</li>
<li>net: add missing types to module docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6482">#6482</a>)</li>
<li>net: fix misleading <code>NamedPipeServer</code> example (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6590">#6590</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tokio/commit/14c17fc09656a30230177b600bacceb9db33e942"><code>14c17fc</code></a>
chore: prepare Tokio v1.38.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6601">#6601</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/65cbf730de48ef9d3c84959d26ab717a85a5de62"><code>65cbf73</code></a>
chore: prepare tokio-macros v2.3.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6600">#6600</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/dbf93c71844a01574a10f9dee0d4d9655a569f0a"><code>dbf93c7</code></a>
sync: fix incorrect is_empty on mpsc block boundaries (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6603">#6603</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/873cb8ae2fc291eaffbd71e3c83d17b2f0ed7abf"><code>873cb8a</code></a>
runtime: move task out of the <code>lifo_slot</code> in
<code>block_in_place</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6596">#6596</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/97bb47b480c66083397c21d54e7ae33cab6c1b20"><code>97bb47b</code></a>
task: fix a typo in doc of <code>LocalSet::run_until</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6599">#6599</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/86658bd87dc470f8e36eb6b893cc403820cfb7ee"><code>86658bd</code></a>
metrics: stabilize <code>RuntimeMetrics::worker_count</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6556">#6556</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/9e00b266e08d263c497dc9de57d9acbc049ae69b"><code>9e00b26</code></a>
sync: add <code>Notify::notify_last</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6520">#6520</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/6c42d286b343f498ce29de2aab9358a0aedb081c"><code>6c42d28</code></a>
net: fix misleading <code>NamedPipeServer</code> example (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6590">#6590</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/3a6fdc05681841c30fe4e27b63924c7908ea4634"><code>3a6fdc0</code></a>
license: fix formatting and remove year in licenses (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6451">#6451</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/2890d0c3db4f595330d8d223bfbfeb81e205b048"><code>2890d0c</code></a>
metrics: fix blocking_threads count (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6551">#6551</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.37.0&new-version=1.38.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 23:48:20 -04:00
Brandon Thomas 26153f46b1 backfill media files in es for "is_featured" 2024-07-01 21:51:11 -04:00
Brandon Thomas 47a3c7935a functional search prototype 2024-06-30 21:19:20 -04:00
Brandon Thomas c8127d99fd update fields, search template 2024-06-29 22:59:21 -04:00
Brandon Thomas 8e1f49a588 search work in progress 2024-06-29 22:40:32 -04:00
Brandon Thomas 24f5660d2f elasticsearch utility for media files 2024-06-29 20:51:02 -04:00
Brandon Thomas 8675b78f2d codegen db 2024-06-29 15:44:45 -04:00
Brandon Thomas 805765f302 new query for listing media files 2024-06-28 22:42:17 -04:00
Brandon Thomas 9a938954a0 media file elasticsearch wip 2024-06-28 21:27:49 -04:00
Brandon Thomas 409eadbfe5 ES SQL dialect doesn't support all data types 2024-06-28 12:11:08 -04:00
Brandon Thomas fc83fcd490 further cleanup 2024-06-17 22:25:19 -04:00
Brandon Thomas cd848319eb update more dependencies 2024-06-16 14:41:22 -04:00
Brandon Thomas 826d710979 more package upgrades 2024-06-16 14:17:08 -04:00
dependabot[bot] ea1c092625 Bump anyhow from 1.0.75 to 1.0.86 (#326)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.75 to 1.0.86.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.86</h2>
<ul>
<li>Fix parse error in <code>ensure!</code> with non-literal after minus
sign (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/373">#373</a>)</li>
</ul>
<h2>1.0.85</h2>
<ul>
<li>Improve <code>ensure!</code> macro's rules to unblock some rustc
pretty-printer improvements (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/368">#368</a>,
<a
href="https://redirect.github.com/dtolnay/anyhow/issues/371">#371</a>)</li>
</ul>
<h2>1.0.84</h2>
<ul>
<li>Disallow calling <code>ensure!</code> through a <code>Not</code>
impl for a type that is not <code>bool</code> (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/367">#367</a>)</li>
</ul>
<h2>1.0.83</h2>
<ul>
<li>Integrate compile-time checking of cfgs (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/363">#363</a>)</li>
</ul>
<h2>1.0.82</h2>
<ul>
<li>Documentation improvements</li>
</ul>
<h2>1.0.81</h2>
<ul>
<li>Make backtrace support available when using -Dwarnings (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/354">#354</a>)</li>
</ul>
<h2>1.0.80</h2>
<ul>
<li>Fix unused_imports warnings when compiled by rustc 1.78</li>
</ul>
<h2>1.0.79</h2>
<ul>
<li>Work around improperly cached build script result by sccache (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/340">#340</a>)</li>
</ul>
<h2>1.0.78</h2>
<ul>
<li>Reduce spurious rebuilds under RustRover IDE when using a nightly
toolchain (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/337">#337</a>)</li>
</ul>
<h2>1.0.77</h2>
<ul>
<li>Make <code>anyhow::Error::backtrace</code> available on stable Rust
compilers 1.65+ (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/293">#293</a>,
thanks <a
href="https://github.com/LukasKalbertodt"><code>@​LukasKalbertodt</code></a>)</li>
</ul>
<h2>1.0.76</h2>
<ul>
<li>Opt in to <code>unsafe_op_in_unsafe_fn</code> lint (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/329">#329</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/anyhow/commit/8ea1819c4c7829d0eb09e54a52806f382b8d445b"><code>8ea1819</code></a>
Release 1.0.86</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/0a1b405631348f38b780255ac78c86a87536feb6"><code>0a1b405</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/373">#373</a>
from dtolnay/minusneg</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/e0c74f26517944f4758da61079a16d88600d37c4"><code>e0c74f2</code></a>
Ensure $:literal never matches negative literal</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/013c66e92b4ec59d2c6fa224661a85e63b28f782"><code>013c66e</code></a>
Fix parse error with non-literal after minus sign</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/ca7aff727bfd95422dfed63d12a9b499684b6d7b"><code>ca7aff7</code></a>
Add binary operator ensure tests</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/2737bbeb59f50651ff54ca3d879a3f5d659a98ab"><code>2737bbe</code></a>
Release 1.0.85</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/82b8b343893387fdb56c2816bf156139adbaed03"><code>82b8b34</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/371">#371</a>
from dtolnay/split</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/ad78d70db3da4923f4d37a4a40f7b5850ec6e52e"><code>ad78d70</code></a>
Preserve more token spans in expression parser</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/5cce406efa91fc60adb5367cdda8ddd169a41709"><code>5cce406</code></a>
Parse comparison operators before other binary operators</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/72053946780a4abad68057ec2ec426a6fd7829f3"><code>7205394</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/369">#369</a>
from dtolnay/tokensplit</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.75...1.0.86">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.75&new-version=1.0.86)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-23 12:38:22 -04:00
Brandon Thomas e440a338b3 unused dependencies 2024-05-16 08:23:42 -07:00
Brandon Thomas ebdf97f8af remove unused dependencies 2024-05-16 07:56:44 -07:00
Brandon Thomas 97a3310b59 cleanup imports 2024-05-16 07:04:48 -07:00
Brandon Thomas 26d16876d4 migrations 2024-05-01 18:16:29 -04:00
Brandon Thomas 33fe4cc01c saved scene endpoint, update swagger docs 2024-05-01 09:53:58 -04:00
Brandon Thomas 2a8af9dbf8 fixup audio improperly categorized 2024-05-01 01:27:52 -04:00
Brandon Thomas a4d620621b estimated remaining rows 2024-05-01 00:16:42 -04:00
Brandon Thomas 916d1f9750 return rows updated 2024-05-01 00:00:20 -04:00
Brandon Thomas fa05ccb8b2 cleanup 2024-04-30 23:35:48 -04:00
Brandon Thomas dc7771aa9d CLI tool for quickly migrating enum values 2024-04-30 23:32:18 -04:00
Brandon Thomas 64927795e5 write and filter engine types (#319) 2024-04-29 18:46:48 -04:00
Brandon Thomas 0cc7177de5 Add engine metadata fields to all media_file GET/LIST endpoints 2024-04-29 13:25:36 -04:00
Brandon Thomas bc16d5b048 fix delete job route, roll back terminate job (for now) 2024-04-26 11:00:45 -04:00
Brandon Thomas 8aa56776cf seed tool broken; seed roles 2024-04-17 18:13:54 -04:00
Brandon Thomas 95198f6f7d fixup seed tool 2024-04-17 18:13:54 -04:00
Brandon Thomas 5c91a19599 track source 2024-04-13 11:08:26 -04:00
Brandon Thomas d7a9a797de cleanup unused imports 2024-03-16 18:57:58 -04:00
Brandon Thomas 3b97b5f95d media_class in user list endpoint 2024-03-14 06:28:32 -04:00
Brandon Thomas 3b13603f1f scope user media files by *multiple* types 2024-02-25 18:02:36 -05:00
Brandon Thomas 2dd02272f9 tool to soft delete anonymous user images
- We'll need to go back and clean up the buckets for some of these
- Some of these are probably just for face animator and could help with
  training a better face detection model
2024-02-24 02:26:25 -05:00
Brandon Thomas b8270b0235 fix lints 2024-02-21 17:48:14 -05:00
Brandon Thomas c6555b88d5 one or two more terms 2024-02-21 05:14:32 -05:00
Brandon Thomas ce4c9a1d42 doc 2024-02-20 23:36:04 -05:00
Brandon Thomas d85fe3fb3d CLI tool to delete users' files 2024-02-20 23:19:08 -05:00
Brandon Thomas d601164b5b rename two cli apps 2024-02-20 22:12:11 -05:00
Brandon Thomas 73b6b6585e refactor CLI tools 2024-02-20 22:10:18 -05:00