main
250 commits
(250 out of 1500 generated)
pgs: document http-pass acl type in acl help and validation error (#224) The acl command already accepts --type http-pass (password login form), but the -type flag help and the validation error omitted it. Also note that for http-pass the -acl value is the password.
bdd5983
Antonio Mika
·
2026-10-25
feat(metrics): label http requests and bytes with a resource
eea11fa
Antonio Mika
·
2026-10-25
fix: correct typos in error and log messages
52adb76
Antonio Mika
·
2026-10-25
feat(metrics): export server info with nodename and commit
f7a24d3
Antonio Mika
·
2026-10-25
feat(metrics): let servers outside net/http record user metrics
8d599bd
Antonio Mika
·
2026-10-25
feat(caddy): require a token for metrics routes
bd8701e
Antonio Mika
·
2026-10-25
feat(metrics): count http requests and ssh sessions per user
de92f37
Antonio Mika
·
2026-10-25
perf(db): add missing indexes, drop unused ones, trim queries
0ff8a38
Antonio Mika
·
2026-10-25
fix(analytics): stop counting mobile visitors as desktop
06a75d5
Antonio Mika
·
2026-10-25
fix(ssh): label access logs with the public key's name
1a49b46
Antonio Mika
·
2026-10-25
fix(router): look up custom domain records as fully qualified names
e635d41
Antonio Mika
·
2026-10-24
fix(pgs): preserve request URL through password login
759b2ff
Antonio Mika
·
2026-10-22
feat(pastes,prose): print help instead of the deprecation notice
5f72092
Antonio Mika
·
2026-10-22
fix(pico): print help for unknown commands and sessions without a pty
d642d4b
Antonio Mika
·
2026-10-22
fix(pssh): apply pty-req before running the session's command
37379a4
Eric Bower
·
2026-10-21
chore: remove gha
00f4477
Eric Bower
·
2026-10-20
fix(tui): stricter bounds checking for tui height when drawing
07406e9
Eric Bower
·
2026-10-19
docs(prose): invite only
b5d229d
Eric Bower
·
2026-10-12
docs: readme
d39b458
Antonio Mika
·
2026-10-14
fix(rsync): accept --relative on uploads
40c2ba8
Eric Bower
·
2026-10-12
fix(pici): golangci-lint
9007322
Eric Bower
·
2026-10-12
fix(pgs): reject directories during GetObject calls We were previously relying on the etag computation via io.Copy to implicitly reject directories.
2e0e17e
sean0407
·
2026-10-11
fix(pgs): serve bin files as binary content (#226)
test(pgs): drop the fixed prometheus port from the test servers
test(pipe): drop the fixed prometheus port from the test server
e6c2d68
Antonio Mika
·
2026-10-11
ci: build images with docker bake and cache go builds across runs
ci: run on ubuntu 26.04 with a test timeout and fix slow rsync and scp tests
7616a1d
Antonio Mika
·
2026-10-11
ci: restore github actions
d42eec7
Antonio Mika
·
2026-10-11
feat(pico): check where a domain points in dns-check and pin pico-ssh dns
874bfe4
Antonio Mika
·
2026-10-11
Merge pull request #227 from picosh/am/decouple-apps Decouple apps for more standalone dep graphs
e1a3a25
Antonio Mika
·
2026-10-11
refactor(postfs): move post file ops out of filehandlers and the router into prose
61ecf7c
Antonio Mika
·
2026-10-11
refactor(db): share the auth lookups and feature check across apps
def8a10
Antonio Mika
·
2026-10-10
fix(prose,pipe): serve a post named raw and bound pipe-web connection setup
08f4e64
Antonio Mika
·
2026-10-10
fix(pipe): send an exit status when commands end
af2fdb0
Antonio Mika
·
2026-10-10
fix(pipe): end pipe-web sessions with their requests
0702a1c
Antonio Mika
·
2026-10-10
fix(pssh): end a session's command when the client closes it
da1f3af
Antonio Mika
·
2026-10-10
refactor(apps): give each app its own config
cc428a5
Antonio Mika
·
2026-10-10
fix(pubsub): deliver a publisher's last message before closing subscribers
85628be
Antonio Mika
·
2026-10-10
refactor(router): serve apps with http.ServeMux and typed handlers
2fc9766
Antonio Mika
·
2026-10-10
refactor(apps): give each app its own uploader and db queries
bd15825
Antonio Mika
·
2026-10-10
test: make expiry and pgs url tests independent of local timezone and env
c2b9386
Antonio Mika
·
2026-10-10
feat(uploads): only show storage usage once a user reaches their quota
cd3a2a1
Antonio Mika
·
2026-10-10
fix(pgs): copy a single file into a project that doesn't exist yet
4e51b51
Antonio Mika
·
2026-10-10
Merge pull request #225 from picosh/am/rsync-protocol Rsync rewrite and perf updates
8e1462e
Antonio Mika
·
2026-10-10
feat(filehandlers): rename posts in place over sftp
5de0fe9
Antonio Mika
·
2026-10-10
feat(send): support rsync merge filters and sftp renames
38ed55f
Antonio Mika
·
2026-10-10
fix(tui): show usage stats for users without pages projects
c6e626e
Antonio Mika
·
2026-10-10
feat(features): honor standalone flags for every service
949a5c0
Antonio Mika
·
2026-10-10
feat(invites): gate pastes and let invited users invite
c1156d3
Antonio Mika
·
2026-10-10
feat(pastes): readd pastes service
4c5cdcb
Antonio Mika
·
2026-10-09
feat(storage): remove dir marker
1ac67bc
Antonio Mika
·
2026-10-09
fix(rsync): ensure no leaked routines on failed upload
a1973f3
Antonio Mika
·
2026-10-09
feat(pico): add dns-check and speed up pgs serving
a0ec3bd
Antonio Mika
·
2026-10-09
perf(pgs): speed up uploads and fix quota accounting
5947599
Antonio Mika
·
2026-10-09
feat(rsync): implement the rsync protocol natively
b3705ff
Eric Bower
·
2026-10-06
chore: set log limits for all services
4870458
Eric Bower
·
2026-10-03
refactor(prose): use ul+li for lxt rendering
f04ed97
Eric Bower
·
2026-10-03
fix(prose): safari text resizing pre blocks
871b073
Eric Bower
·
2026-10-03
refactor(prose): remove unused css from read
05dc0b4
Eric Bower
·
2026-10-02
style(prose): read.css file
fa998ee
Eric Bower
·
2026-10-01
chore(prose): remove with_styles and layout front-matter fields BREAKING CHANGE: these fields will no longer work for prose blogs
bf64c14
Eric Bower
·
2026-09-30
style(prose): minimal design ethos Our previous prose blog design hasn't changed since we initially released prose. The previous design was minimalistic but it still made some assumptions about how a blog should look. In order to support customization we added support for users to upload `_styles.css` and front-matter fields like `with_styles` to provide full customization. The main thesis for this change was trying to answer the question: what if blogs came without styles by default and users are required to theme it themselves? This would make it so we are not in control of the overall theme of the blog and provides full customization for the end-user. As we were experimenting with this design we wanted to include a very minimal css reset so the default design is consistent across browsers. We are also implemented a few rules with this css reset for best practices. This is our new design ethos: - Center content on the screen - 70ch max width - Headers should be anchored to the content they are heading That's it. The rest of the reset file is for consistency across browsers. With this change we are also disabling the `with_styles` field to encourage people to preserve this new design ethos. Finally as part of this change we restructured the html tree to better adhere to semantic meaning of those html entities. We were already mostly there but some of the headers and footers were restructured slightly.
4a1e923
Eric Bower
·
2026-10-02
fix: ci
4a31914
Antonio Mika
·
2026-10-02
Update deps
6f3f3ce
Eric Bower
·
2026-10-01
chore: remove dead code
e72e6aa
Eric Bower
·
2026-10-01
chore: deadcode tool
a8e9b6c
Eric Bower
·
2026-10-01
chore: remove pastes service We are going to keep pastes running but we want to remove it from our git tree since it doesn't receive updates at this point and is mostly clutter.
fed4e39
Eric Bower
·
2026-09-28
style(prose): design tweaks
f18b96d
Eric Bower
·
2026-09-28
fix(pico): skip invite by when user is nil
9e473b2
Eric Bower
·
2026-09-28
refactor(prose): trending discovery feed This changes the discovery feed to only show users that have prose access after the invite system changes. It also captures all post analytics for all prose users so we can use it for the discovery feed ranking system.
7ac310c
Eric Bower
·
2026-09-27
fix: test
156d6bf
Eric Bower
·
2026-09-27
refactor(plus): 10GB -> 5GB We only have a single user that's using more than 5GB so we are scoping the allottment based on real-world usage. This will also help us maintain healthy services by clipping whale activity and preventing using pgs as a generic obj storage system.
5efb0d3
Eric Bower
·
2026-09-25
refactor: invite system for pgs and prose This creates an invite system in order to be granted access to prose and pgs services. The goal here is to prevent spam. Only pico+ users or users invited by someone else are allowed to invite people.
9e23580
Eric Bower
·
2026-09-26
chore: reduce log retention
32a6851
Eric Bower
·
2026-09-15
chore: rename pico.sh to pici.sh
b3a880f
Eric Bower
·
2026-09-12
fix: quote password to special chars dont corrupt line
2ec5c18
Eric Bower
·
2026-09-10
chore(script): cert migration to valkey
208cf1e
Eric Bower
·
2026-09-10
refactor: use valkey instead of redis
7cdb912
Eric Bower
·
2026-08-30
refactor(pgs): use redis for central tls cert storage
f14e309
Eric Bower
·
2026-09-05
chore: bump senpai to 0.5.0
f158ccd
Eric Bower
·
2026-08-30
fix(caddy): revert postgres storage backend We are reciving reports of issues loading sites and our postgresql server is struggling to keep up with load
58ebb03
Eric Bower
·
2026-08-30
fix(pipe): flaky test
d8d0754
Eric Bower
·
2026-08-30
fix(pgs): better pico+ error message when uploading
3a4fd49
Eric Bower
·
2026-08-29
fix(caddy): pgs _metric for ash header_up
7698d6e
Eric Bower
·
2026-08-29
fix(caddy): subdomain for nue/ash pgs
82ce569
Eric Bower
·
2026-08-29
chore: add cdn to pgs-caddy
77391f0
Eric Bower
·
2026-08-24
chore(tui): check for pgs feature flag
a139e53
Eric Bower
·
2026-08-17
docs: agent
914d385
Eric Bower
·
2026-08-17
refactor: remove github actions
7b5a5aa
Eric Bower
·
2026-08-17
chore(pgs): check for pgs feature flag
c58eb5b
Eric Bower
·
2026-08-15
fix(pipe): cleanly terminate pipe sessions when peer disconnects Previously, when one party in a bidirectional `pipe` disconnected, the broker treated the remaining client as an active publisher (because its direction is `InputOutput`), leaving the remaining client hanging in a half-closed state with frozen terminal input. - broker: unblock `Connect()` immediately when `client.Done` closes and trigger `client.Cleanup()` on read/write errors - client: close underlying `ReadWriter` in `Cleanup()` if it implements `io.Closer` - pipe/cli: implement `Close()` on `throttledMonitorRW`
14511d7
Eric Bower
·
2026-08-13
chore(ci): better default zmx session prefix
ee0c5e7
Eric Bower
·
2026-08-13
fix(httpscache): flaky test
538c3e9
Eric Bower
·
2026-08-13
chore(pgs): uploader tests confirming pico+ only
e5d5430
Eric Bower
·
2026-08-11
refactor(pgs): validate pico+ before uploading so we don't create empty projects
06944c5
Eric Bower
·
2026-08-10
fix(caddy): add postgres storage backend for distributed ACME challenges This updates the Caddy Dockerfile to compile with the `github.com/yroc92/postgres-storage` module and configures `Caddyfile.pgs` to use it via the existing `DATABASE_URL` environment variable. Previously, Caddy instances on independent nodes (e.g., US and EU) used their own local filesystem for ACME storage. This caused on-demand TLS to hang or time out for custom domains when Let's Encrypt's ACME verification challenge was randomly routed by DNS to a node that didn't initiate the request. By using a central Postgres database for storage, all Caddy nodes now share certificate state and can seamlessly answer ACME challenges initiated by any other node in the cluster.
6450bca
Eric Bower
·
2026-08-10
chore(register): add some logging around blocking ips
d444e49
Eric Bower
·
2026-08-08
chore: add more tests and ensure block and keepalive work with wildcards
0002674
Eric Bower
·
2026-08-08
feat(pipe): subscribe to wildcard topics Our pipe service now supports wildcard topics `ssh pipe sub metric-drain*`. This allows users to publish to multiple topics and have them drain into a single subscriber. ssh pipe pub metric-drain-x ssh pipe pub metric-drain-y ssh pipe sub "metric-drain*"
912fb94
Eric Bower
·
2026-08-08
docs: rm bd from agents file
343aa30
Eric Bower
·
2026-08-07
fix(pgs): correctly set storage max in uploader
ac1e5fd
Eric Bower
·
2026-08-01
docs(runbooks): delete account
ae5cd9f
Eric Bower
·
2026-08-01
fix: scp <file> pgs.sh:/<project> works
2ce4484
Eric Bower
·
2026-07-31
docs: runbook
6ca6617
Eric Bower
·
2026-07-26
fix(prose): use correct filepath for prose images
23f63d0
Eric Bower
·
2026-07-23
fix(pgs): missing cfg
e4b943a
Eric Bower
·
2026-07-23
revert(pgs): add file max logic
badfa91
Eric Bower
·
2026-07-23
chore(pgs): service now requires pico+
4902f05
Eric Bower
·
2026-07-17
chore: ban ip runbook
e87f1c0
Eric Bower
·
2026-07-17
fix: missing pico-ssh in ci script
cbbe3f9
Eric Bower
·
2026-07-17
chore: update pico.sh script
7d004e2
Eric Bower
·
2026-07-16
feat: block account creation by ip
b18549a
Eric Bower
·
2026-07-16
fix: mime type case statement fallthrough
4af7648
Eric Bower
·
2026-06-17
fix(rsync): properly delete `._pico_keep_dir` first so os.Remove suceeds
96bba54
Eric Bower
·
2026-06-13
fix(pgs): broken url for imgproxy integration
668e3cf
Silvio Tomatis
·
2026-06-11
fix(pgs): never cache http-pass responses Password-protected (http-pass) projects could be read without the password. The shared cache keys entries on subdomain+method+uri with no auth component, and only declines to store responses marked private or no-store. http-pass assets were served as 200 with `cache-control: max-age=60, s-maxage=600, must-revalidate`, so the first authenticated request populated the cache and every subsequent unauthenticated visitor got a cache hit that bypassed the password gate for the duration of the TTL. Mark http-pass asset responses `private, no-store` so the shared cache refuses to store them. The override is applied after the user `_headers` are merged, so a project's own cache-control cannot re-enable caching of protected content. Adds a regression test asserting an http-pass response is served non-cacheable even when a `_headers` file requests aggressive caching.
e848548
Eric Bower
·
2026-05-31
fix: strip debug from linker
9eb8e76
Eric Bower
·
2026-05-31
refactor: move go-rsync-receiver into pico monorepo
8936652
Eric Bower
·
2026-05-16
fix: require testcontainers for pico.sh ci
77b9fc0
Eric Bower
·
2026-05-16
fix(ci): cleanup
620bc93
Eric Bower
·
2026-05-16
chore(ci): cleanup
ee3ee5f
Eric Bower
·
2026-05-16
docs(pgs): help cmd for forms
398f52c
Eric Bower
·
2026-05-11
chore: pico.sh ci script
b0db3e1
Eric Bower
·
2026-05-11
fix(pgs): _headers should override default cache-control Closes: https://github.com/picosh/pico/issues/215
1864102
Eric Bower
·
2026-05-10
feat(tui): analytics now displays device breakdown You can see mobile vs desktop
4e11911
Eric Bower
·
2026-05-10
docs: runbooks
07d445f
Eric Bower
·
2026-05-10
fix: script
3004275
Eric Bower
·
2026-05-10
chore: script to find orphaned buckets
d634672
Eric Bower
·
2026-05-05
fix(auth): mime type can include charset e.g. text/html; charset=utf-8
chore(visits): new indexes and parallel queries
chore: remove dev artifacts
23438de
Eric Bower
·
2026-05-03
refactor(visits): aggregate visit tables Previously we had an analytics_visits table that held all the raw visit data. This mean our analytics UI was constantly executing queries across 18 mil records which was extremely slow. This change aggregates those analytics every month and then deletes all the raw data. We keep 2 months worth of raw data and then everything else gets pushed into the aggregate tables.
4cd5fc0
Eric Bower
·
2026-05-03
chore: script reap edits
b2429b1
Eric Bower
·
2026-05-03
fix: reap should look skip anyone that has pico+
483a3a2
Eric Bower
·
2026-05-03
chore: delete old analytics
493d4d6
Eric Bower
·
2026-05-03
chore: sql query to reap unused accounts References: https://pico.prose.sh/ann-036-reap-inactive-accounts
65a2f09
Eric Bower
·
2026-04-28
fix(httpcache): cdn accept encoding
Two bugs combined to produce the broken behavior:
Bug 1: CDN forwarded Accept-Encoding to upstream (cmd/pgs/cdn/main.go)
proxyServe.ServeHTTP cloned the incoming request (including its Accept-Encoding: zstd header sent by Caddy) and forwarded it to ash.pgs.sh. The upstream responded with a zstd-compressed body + content-encoding: zstd. The CDN then cached that compressed blob. Caddy (sitting in front of the CDN) can't transcode
zstd→nothing, so clients received raw zstd bytes named .xml.
Fix: proxyReq.Header.Del("Accept-Encoding") before the upstream round-trip. The CDN should store one uncompressed representation per URL; Caddy handles per-client content encoding on egress.
Bug 2: matchVary was looking in the wrong place (pkg/httpcache/serve.go, rw.go)
When the response included Vary: Accept-Encoding, matchVary looked for Accept-Encoding in the response headers map — but Accept-Encoding is a request header and was never there. The cachedValue == "" branch silently continued, causing every request to match regardless of what encoding it accepted.
Fix: ToCacheValue now accepts the *http.Request and snapshots the Vary-relevant request header values into a new CacheValue.VaryRequestHeaders map[string]string field. matchVary now compares the incoming request's headers against that snapshot instead of looking in response headers. Legacy entries with no
VaryRequestHeaders are treated as misses so they repopulate correctly.
66ac6b0
Eric Bower
·
2026-04-22
fix(pgs): dupe headers
chore(pgs): configurable max items for lru
chore: lint
7c2c235
Eric Bower
·
2026-04-21
chore: disable flaky test
f46c23c
Eric Bower
·
2026-04-21
chore(httpcache): cache-status cleanup and random bug fixes
8045405
Eric Bower
·
2026-04-20
chore: normalize header keys
chore: disable imgproxy tests We don't have them setup properly atm
f566e4d
Eric Bower
·
2026-04-20
refactor(storage): no need for metadata just need content type
chore: rm dead code
c26a047
Eric Bower
·
2026-04-20
refactor(storage): put accepts ObjectInfo instead of FileEntry This is a symmetric change so everything uses the same objects
532a539
Eric Bower
·
2026-04-20
feat(pgs): record metrics for compressed file types
1c474b9
Eric Bower
·
2026-04-20
fix(pgs): check handler fast bail when domain is empty
eaec14c
Eric Bower
·
2026-04-20
refactor(httpcache): ignore routes should use no-store
54c886f
Eric Bower
·
2026-04-20
fix(httpcache): verified heuristically cachable status codes
refactor(pgs): use http.ServeContent refactor: new image proxy object that uses httputil reverse proxy
433e9d1
Eric Bower
·
2026-04-19
fix(pgs): typo
c8e853b
Eric Bower
·
2026-04-19
chore(pgs): make our cache age match our lru cache ttl
Fix cache metrics and update deps
263937b
Eric Bower
·
2026-04-19
fix(pgs): cdn routing to correct place
3225b71
Eric Bower
·
2026-04-19
fix(pgs): admin check logic
9baad06
Eric Bower
·
2026-04-19
chore(pgs): log key eviction
fix(pgs): use URL.Path so we ignore query params
feat(httpcache): ignore routes cfg
4ee7ba6
Eric Bower
·
2026-04-19
fix(pgs): prom names and set headers instead of add
3ad9fce
Eric Bower
·
2026-04-19
chore(pgs): HEAD can share same key as GET
d758032
Eric Bower
·
2026-04-19
fix(pgs): 304 send correct status and headers
272d185
Eric Bower
·
2026-04-19
fix(pgs): httpcache must return cached headers when returning 304
e20086a
Eric Bower
·
2026-04-19
fix(pgs): gauge name si unit
fix(pgs): httpcache rw.Write needs to report the num of bytes
refactor(pgs): custom rfc9111 compliant cache
7c27c34
Eric Bower
·
2026-04-17
chore: scripts
9165d1d
Eric Bower
·
2026-04-16
docs(tui): per file max size 100mb
feat(pgs): 100mb max file size
fix: test
feat(pgs): increase max file size to 250mb
3640880
Eric Bower
·
2026-04-04
fix(pgs): force redirect from root
6a3121d
Eric Bower
·
2026-04-03
fix(pgs): normalize ext
c0517ee
Eric Bower
·
2026-03-28
docs: rm auto form
c0208b3
Eric Bower
·
2026-03-28
chore(storage): cleanup
d51ab87
Eric Bower
·
2026-03-28
refactor: move shared/storage to storage
b229935
Eric Bower
·
2026-03-28
refactor: merge pboj and shared/storage
Update soju build to support webpush changes and upgrade to go 1.26
d2b70f4
Antonio Mika
·
2026-03-21
Fix host resolution for caddy
a777c4c
Eric Bower
·
2026-03-10
chore(pgs): require pico+ for auto-forms
3aa3b80
Eric Bower
·
2026-03-10
chore(feeds): update retry attempt max in ls cmd
feat(pgs): auto-forms
0c37db1
Eric Bower
·
2026-03-08
fix(feeds): parse urls properly with comments
12c3f12
Eric Bower
·
2026-03-08
chore(feeds): extend retry number to 100 10 is too small since we count every 10 minutes
630534b
Eric Bower
·
2026-03-05
feat(pgs): all projects named `bin` will have their files deleted automatically after 2 weeks This replicates the 0x0.st functionality where you can uploading any file and it'll eventually be deleted.
f969ffd
Eric Bower
·
2026-03-05
chore(pgs): setting acl is pico+ only
45aaf05
Eric Bower
·
2026-03-02
feat(pgs): http-pass ACL
This feature enables users to set their project to "http-pass" which requires a password to access the site.
The user can set the acl via:
`ssh pgs.sh acl {project} --type http-pass --acl {pass}`
When accessing the project the user will have to enter the password to access the site. When access has been granted we set a cookie in the user's browser. That cookie is valid for 24 hours.
a83183c
Eric Bower
·
2026-03-02
feat(pgs): project names prefixed with `private-` will have new acl type "private" For security reasons once a project is named `private-` it can never have its ACL type changed. Right now we do not support making other projects private.
970de49
Eric Bower
·
2026-03-02
fix(pgs): ability to pipe files to pgs
fb101af
Eric Bower
·
2026-03-01
docs(pgs): more usage for help page
4552aa5
Eric Bower
·
2026-03-04
chore(bouncer): bump soju to latest
085a09b
Eric Bower
·
2026-03-03
fix(tui): revert 'q' to go back This is conflicting with our text input boxes so I'm reverting for now
edab4d6
Aryan Tiwari
·
2026-03-03
Chore: Unified Error Logs throughout the repo (#210)
fix(pssh): race in tests
cc9a108
Eric Bower
·
2026-02-26
fix(pssh): fix race
9df8384
Eric Bower
·
2026-02-26
fix(pssh): tests
740c00a
Eric Bower
·
2026-02-26
fix(pssh): normalize line endings for pty enabled ssh output
da9a246
Eric Bower
·
2026-02-26
refactor(pgs): use dynamic port for ssh tests
391c4f9
Eric Bower
·
2026-02-25
feat(tui): 'q' goes to prev page
b10aef1
Eric Bower
·
2026-02-25
fix(pssh): normalize line ending with pty
1f6cc61
Eric Bower
·
2026-02-24
fix(pssh): redundant sesh passing
91b5f0a
Eric Bower
·
2026-02-24
fix(pssh): strip quotes after splitting on them
1acc4d5
Eric Bower
·
2026-02-24
fix: properly parse ssh command args with quotes
92facd1
Eric Bower
·
2026-02-24
chore: added test for pssh cmd parsing
e963190
Eric Bower
·
2026-02-22
chore(pssh): add error/print helper cmds
ee37580
Eric Bower
·
2026-02-17
fix(pgs): downgrade storages to v0.0.16 http cache is being truncated on large files Reference: https://github.com/darkweak/storages/issues/41
db24dbf
Eric Bower
·
2026-02-17
chore(pgs): test failure
ccc233b
Eric Bower
·
2026-02-16
chore(pgs): tests to prevent infinite redirects
a4ff178
Antonio Mika
·
2026-02-04
Fix deps
de14588
Antonio Mika
·
2026-02-04
Upgrade to go 1.25
8a69289
Eric Bower
·
2026-02-03
feat(pubsub): round robin
4b5c506
Eric Bower
·
2026-01-25
refactor: move picosh/pubsub into repo
deea40d
Eric Bower
·
2026-01-25
chore: more refactor cleanup
eb3b3bb
Eric Bower
·
2026-01-25
refactor: fix issues with imports and create shared/router pkg
bccde8d
Eric Bower
·
2026-01-25
refactor: migrate picosh/utils
633c17a
Eric Bower
·
2026-01-22
feat(pipe): ?prefix= query param for pub and pipe
7fe30e4
Eric Bower
·
2026-01-22
feat(auth): `/pubkeys/{user}` public endpoint
78dfe01
Eric Bower
·
2026-01-19
fix(pgs): inverted logic check for pico+
c28c44d
Eric Bower
·
2026-01-19
chore: gitignore
feat(pico): access_logs cli command
5ead68b
Eric Bower
·
2026-01-17
chore(tui): tokens text for Apple Terminal
66f0a81
Eric Bower
·
2026-01-17
chore(bouncer): motd updates
02f9a6d
Eric Bower
·
2026-01-17
fix: identity is always pubkey so check it as well
fix(ssh): only use pubkey name if not ssh cert
bc6e0bf
Eric Bower
·
2026-01-17
chore(pipe): use ssh cert identity if available
896a3e8
Eric Bower
·
2026-01-17
chore(pipemgr): use cert location
feat(ssh): find pubkey name and use as identity for access logs
4dce36e
Eric Bower
·
2026-01-16
fix(tui.access_logs): start at last access with cmds to go to top or bot list
2340a56
Eric Bower
·
2026-01-16
refactor: remove minio We haven't used minio in months and if we did choose another object storage it wouldn't minio
docs(pgs): simplify pgs marketing
d39dc39
Eric Bower
·
2026-01-16
refactor(pgs): cache-control max-age and revalidate We want to prevent the browser from caching stale static pages by requiring it to revalidate using ETag after 1 minute.
98e7f62
Eric Bower
·
2026-01-16
refactor(analytics): add indexes to improve query performance
c3c3ade
Eric Bower
·
2026-01-16
fix(tui): border boundaries
5e4c326
Eric Bower
·
2026-01-16
style(prose): margin on the tags section
feat(tui.logs): allow logs to be manually scrolled
62cd4d9
Eric Bower
·
2026-01-16
fix(tui.logs): filtered logs corruption
d201269
Eric Bower
·
2026-01-16
feat(prose): added horizontal rule to list parser refactor(prose): replace ul/li with custom list impl
b224595
Eric Bower
·
2026-01-15
chore(prose,pastes): rotate caddy logs
0a92131
Eric Bower
·
2026-01-10
fix(prose): list parser key is `draft`
f33ac35
Eric Bower
·
2026-01-10
chore(prose): list parser tests
568a6ac
Eric Bower
·
2026-01-10
chore(prose): add raw .lxt route
7f32c6d
Eric Bower
·
2026-01-10
fix(prose): remove log line
63b93d9
Eric Bower
·
2026-01-03
feat(prose): lists are back bby
bb7b4f2
Eric Bower
·
2026-01-08
feat(pipe): web based rss feed
feat(pipe): monitors This change introduces pipe monitors: a way to receive status updates on your pipes.
chore(feeds): add deprecation notice for free pico users
190b37f
Eric Bower
·
2026-01-07
fix(auth): updated_at required for pico+ feed posts
6b55f39
Eric Bower
·
2026-01-03
docs(readme): feeds txt
chore(prose): we no longer do anything with "prose" pgs project This is from when we had a single object store. We now have an object store per service so creating a prose project is no longer required.