commits
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Replace block-level divs with inline spans and use flex-col for visual
line stacking. Move whitespace-pre to content spans only.
This allows text content copied out of diffs to match the UI, and not copy hidden newlines.
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
`sh.tangled.pipeline` events are now completely generated & streamed
from spindle
Signed-off-by: Seongmin Lee <git@boltless.me>
spindle will emit `sh.tangled.pipeline` event on:
- `sh.tangled.git.refUpdate` events from knot stream
- live create/update events of `sh.tangled.repo.pull` records
Signed-off-by: Seongmin Lee <git@boltless.me>
Spindle will sync git repo when new repo is registered
Spindle will listen to `sh.tangled.git.refUpdate` event from knot
stream and sync its local git repo instead. Spindle's git repo will
sparse-checkout only `/.tangled/workflows` directory.
Spindle now requires git version >=2.49 for `--revision` flag in `git
clone` command.
References:
- <https://stackoverflow.com/q/47541033/13150270>
- <https://stackoverflow.com/q/600079/13150270>
Signed-off-by: Seongmin Lee <git@boltless.me>
This single persistent directory can be used for storing general spindle
data like db, motd file and upcoming sparse-clone git repos.
db path will be `${DATA_DIR}/spindle.db`
Signed-off-by: Seongmin Lee <git@boltless.me>
spindle-tap will collect/stream record events from:
- users dynamically added by spindle (spindle members | collaborators of
repos using spindle)
- any users with `sh.tangled.repo.pull` collection
It might be bit inefficient considering it will also stream repo
creation events from PR authors due to second rule, but at least we now
have backfill logic and Sync 1.1 based syncing.
This inefficiency can be fixed later by modifying upstream tap cli or
embedding tap into spindle.
```
+--------- all tangled users --------+
| |
| +-- users known to spindle-tap --+ |
| | (PR author / manually added) | |
| | | |
| | +----------------------------+ | |
| | | users known to spindle | | |
| | | (members / collaborators) | | |
| | +----------------------------+ | |
| +--------------------------------+ |
+------------------------------------+
```
Close: <https://tangled.org/tangled.org/core/issues/341>
Signed-off-by: Seongmin Lee <git@boltless.me>
This new db migration won't migrate existing records in repos table.
Instead, it will simply rename the legacy table to `repos_old` and
create a new one with same name.
repo backfill will be done with tap
Signed-off-by: Seongmin Lee <git@boltless.me>
create new one if it's missing
Signed-off-by: Seongmin Lee <git@boltless.me>
This commit includes bare minimum tap client to use tap from spindle.
Signed-off-by: Seongmin Lee <git@boltless.me>
This commit won't work without following spindle rewrite to use tap and
introduce backfill because repos table is empty yet.
Signed-off-by: Seongmin Lee <git@boltless.me>
1. Use repo AT-URI as identifier.
2. Use `dom` field rather than `obj` to filter by repository. So now
it's "user with role A in repo B can do action D to field C" where
`A,B,C,D` are `sub,dom,obj,act`.
3. Manage app-logic rules in embedded csv file which won't be saved in
db and load to memory on start. This makes app's global rbac rule
change easier as we just need to edit the csv file.
Many permission check methods are missing, but should be enough to test
this new RBAC enforcer package in spindle.
Related issue: <https://tangled.org/tangled.org/core/issues/282>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
avoid using `.Knot` and `.Rkey` directly
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
By using blobs we massively increase our maximum patch size. When stored
directly on the record patches can be at most 2 MiB. By moving it to a
blob, we get a minimum of 50 MiB (smaller if the pds has set it but 50
is the default).
legacy field name `patch` in `repo.pull` lexicon is preserved (but not
used) to support some level of backward compatibility
Signed-off-by: Samuel Shuert <me@thecoded.prof>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
monospace font for textarea in dev app is so common that we can just
apply it as an opt-out style for all textareas
Signed-off-by: Seongmin Lee <git@boltless.me>
- did-method-plc
- bluesky-jetstream
- bluesky-relay
- tap
Signed-off-by: Seongmin Lee <git@boltless.me>
Add sandboxed atmosphere environment for local testing. This new vm
contains everything required to run local test appview including PLC,
PDS, Jetstream (listening to single PDS), knot and spindle.
I'm using my custom `tngl.boltless.dev` domain which resolves to
`127.0.0.1` without any proxy.
PLC: plc.tngl.boltless.dev
PDS: pds.tngl.boltless.dev
Relay: relay.tngl.boltless.dev
Jetstream: jetstream.tngl.boltless.dev
Knot: knot.tngl.boltless.dev
Spindle: spindle.tngl.boltless.dev
TLS is supported with caddy service running inside the vm.
note: `pds.env` file here is hard copy to be used for contrib/scripts.
note: upgraded pds package in order to set email settings
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: pompydev <pompydev@proton.me>
- `id` member in webmanifest should be url format based on spec.
- it is recommended to use `application/mniafest+json` mimetype
- changing the name from `pwa-manifest.json` to `manifest.webmanifest`
Reference: <https://www.w3.org/TR/appmanifest/>
Signed-off-by: Seongmin Lee <git@boltless.me>
Safari < 26.0 doesn't support svg favicon and even after 26.0, it
defaults to #000 color, resulting to black favicon on white background.
It is better to have actual ico image hosted on `/favicon.ico`
To prevent chrome and other browsers choosing ico image for favicon over
svg, we are restricting the `favicon.ico` size to `48x48`.
180x180 `apple-touch-icon.png` is also needed to support Safari bookmark
icons. Commonly known as "Favorites". Because Safari bookmark icons is
pretty large, we are using logo-dolly (dolly with eyes) here.
reference:
<https://dev.to/masakudamatsu/favicon-nightmare-how-to-maintain-sanity-3al7>
Fix: <https://tangled.org/tangled.org/core/issues/306>
Signed-off-by: Seongmin Lee <git@boltless.me>
prevents scrolling if the content is insufficient, this allows next/prev
buttons to be above the fold.
Signed-off-by: oppiliappan <me@oppi.li>
should cut down the false positives a bit. tests are included.
Signed-off-by: oppiliappan <me@oppi.li>
we now prefer links with `@`. this change also moves the styling into
the mention class entirely.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: estym <evann.regnault@pm.me>
using pandoc, tailwindcss, our standard fonts and lucide, we can build a
simple docs site with a single pandoc command.
Signed-off-by: oppiliappan <me@oppi.li>
the new documentation format is a single DOCS.md file with one section
per chapter. this guide can also be passed around in various formats
(single html, mdbook-style, manpage etc.) thanks to pandoc.
Signed-off-by: oppiliappan <me@oppi.li>
this will be replaced in the future with a single DOCS.md file
Signed-off-by: oppiliappan <me@oppi.li>
This reverts commit caffe3d5dc86ef46ee52bc7596bd3221cffa6af2.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
this will fix nix devshell failing on darwin machine
The fix was introduced on: <https://github.com/NixOS/nix/pull/14778>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
This reverts commit ada8bf645f471d0aff466d4b91beb1d07dc9f4dd.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
this will fix build error on darwin machines
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
fixes https://tangled.org/tangled.org/core/issues/339 .
Signed-off-by: helpimnotdrowning <helpimnotdrowning@gmail.com>
presently only renders in markdown and description contexts, we could
potentially apply this to commit message contexts too.
fixes https://tangled.org/tangled.org/core/issues/334 .
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Spindle will sync git repo when new repo is registered
Spindle will listen to `sh.tangled.git.refUpdate` event from knot
stream and sync its local git repo instead. Spindle's git repo will
sparse-checkout only `/.tangled/workflows` directory.
Spindle now requires git version >=2.49 for `--revision` flag in `git
clone` command.
References:
- <https://stackoverflow.com/q/47541033/13150270>
- <https://stackoverflow.com/q/600079/13150270>
Signed-off-by: Seongmin Lee <git@boltless.me>
spindle-tap will collect/stream record events from:
- users dynamically added by spindle (spindle members | collaborators of
repos using spindle)
- any users with `sh.tangled.repo.pull` collection
It might be bit inefficient considering it will also stream repo
creation events from PR authors due to second rule, but at least we now
have backfill logic and Sync 1.1 based syncing.
This inefficiency can be fixed later by modifying upstream tap cli or
embedding tap into spindle.
```
+--------- all tangled users --------+
| |
| +-- users known to spindle-tap --+ |
| | (PR author / manually added) | |
| | | |
| | +----------------------------+ | |
| | | users known to spindle | | |
| | | (members / collaborators) | | |
| | +----------------------------+ | |
| +--------------------------------+ |
+------------------------------------+
```
Close: <https://tangled.org/tangled.org/core/issues/341>
Signed-off-by: Seongmin Lee <git@boltless.me>
1. Use repo AT-URI as identifier.
2. Use `dom` field rather than `obj` to filter by repository. So now
it's "user with role A in repo B can do action D to field C" where
`A,B,C,D` are `sub,dom,obj,act`.
3. Manage app-logic rules in embedded csv file which won't be saved in
db and load to memory on start. This makes app's global rbac rule
change easier as we just need to edit the csv file.
Many permission check methods are missing, but should be enough to test
this new RBAC enforcer package in spindle.
Related issue: <https://tangled.org/tangled.org/core/issues/282>
Signed-off-by: Seongmin Lee <git@boltless.me>
By using blobs we massively increase our maximum patch size. When stored
directly on the record patches can be at most 2 MiB. By moving it to a
blob, we get a minimum of 50 MiB (smaller if the pds has set it but 50
is the default).
legacy field name `patch` in `repo.pull` lexicon is preserved (but not
used) to support some level of backward compatibility
Signed-off-by: Samuel Shuert <me@thecoded.prof>
Signed-off-by: Seongmin Lee <git@boltless.me>
Add sandboxed atmosphere environment for local testing. This new vm
contains everything required to run local test appview including PLC,
PDS, Jetstream (listening to single PDS), knot and spindle.
I'm using my custom `tngl.boltless.dev` domain which resolves to
`127.0.0.1` without any proxy.
PLC: plc.tngl.boltless.dev
PDS: pds.tngl.boltless.dev
Relay: relay.tngl.boltless.dev
Jetstream: jetstream.tngl.boltless.dev
Knot: knot.tngl.boltless.dev
Spindle: spindle.tngl.boltless.dev
TLS is supported with caddy service running inside the vm.
note: `pds.env` file here is hard copy to be used for contrib/scripts.
note: upgraded pds package in order to set email settings
Signed-off-by: Seongmin Lee <git@boltless.me>
Safari < 26.0 doesn't support svg favicon and even after 26.0, it
defaults to #000 color, resulting to black favicon on white background.
It is better to have actual ico image hosted on `/favicon.ico`
To prevent chrome and other browsers choosing ico image for favicon over
svg, we are restricting the `favicon.ico` size to `48x48`.
180x180 `apple-touch-icon.png` is also needed to support Safari bookmark
icons. Commonly known as "Favorites". Because Safari bookmark icons is
pretty large, we are using logo-dolly (dolly with eyes) here.
reference:
<https://dev.to/masakudamatsu/favicon-nightmare-how-to-maintain-sanity-3al7>
Fix: <https://tangled.org/tangled.org/core/issues/306>
Signed-off-by: Seongmin Lee <git@boltless.me>