Releases: barrydeen/haven
Releases · barrydeen/haven
v1.2.2
v1.2.1
v1.2.0
Changelog
Changelog
This release introduces a ton of new features long requested by Haven users.
Highlights
- Multi-pubkey Support: Haven now supports multiple npubs (whitelisting).
- Blacklisting: Added support for blacklisting specific public keys.
- JSONL Backup and Restore: The backup system has been rewritten using a portable JSONL format. This includes support for manual commands (
haven backup), specific relay exports, and periodic backups to the cloud. A brand newhaven restorecommand has been introduced to import notes in JSONL format, compatible with Haven backups, as well as JSONL files generated by other relays and other Nostr tools. - WoT Depth and Refresh: The Web of Trust functionality now has a working configurable depth level, and a new periodic WoT refresh mechanism.
Features
- e91b368 feat(access-control): add blacklist support
- 5c64553 feat(access-control): enforce auth requirement for REQ chat relay
- 986c21b feat(backup): add
--from-cloudflag to restore backups from cloud - 83004f6 feat(backup): add
--to-cloudflag to upload backups to cloud storage - 5d44388 feat(backup): remove deprecated aws and gcp backup providers
- f0a6343 feat(backup): unify backup and restore commands with portable JSONL
- b844c9e feat(config): add user-agent for relay requests (#117)
- 3ccce6e feat(config): make blastr timeout configurable
- 5d5bd1f feat(export): add command to export relay data to compressed jsonl
- 501c6b6 feat(goreleaser): enable automatic prerelease configuration
- 9cef5ca feat(import): exit after import completes
- 53000db feat(import): skip events from blacklisted public keys
- c89c437 feat(jsonl): add import and export commands for relay data
- b5e7058 feat(jsonl): ensure deterministic export ordering and deduplication
- 3e481dc feat(logging): add logging for blacklisted pubkeys count
- 85e5214 feat(policies): modularize relay policies for auth and access control
- 1b5aad8 feat(template): update favicon
- f6c5d5b feat(workflows): add lint workflow with golangci-lint
- d78a610 75f9459 feat(wot): add configurable WoT depth levels
- 084e248 feat(wot): deduplicate Nostr events by Kind and PubKey
- 8ff9467 feat(wot): improve pruning logs to display eliminated pubkeys
- b73e169 feat(wot): lockless WoT refresh
- ffa80d1 feat(wot): log top pubkeys by follower count in debug mode
- c85d0fb feat: add support for multiple npubs
- b3eb02f feat: automatic WoT refresh
- 018282e feat: owner public key was added to configuration
- d336fd9 feat: passing context to main goroutines
- ef4bc0c feat: updating wot refresh interval from hours to duration
Bug fixes
- ceae909 fix(config): correct empty array in blacklisted_npubs.example.json
- f898afd fix(config): reintroduce WhitelistedPubKeys
- 4923e83 fix(config): update backup interval default 24 value in .env.example
- af14b61 fix(config): update relay icons in .env.example
- 1cbd030 fix(dependencies): bump golang.org/x/crypto to v0.45.0
- ee18018 fix(import): use FetchMany instead of FetchManyReplaceable
- c539d87 fix(wot): moving initialization of wot before its usage (#112)
- ea334d5 fix(wot): prevent double-counting followers of followers
Code Refactoring
- 4e6747f refactor(config): remove unused import query interval configuration
- ddd2e31 refactor(import): remove embedded struct indirection in import.go
- b714e69 refactor(jsonl): replace getDBs and getDBByName with unified dbs map
- 2223acf refactor(main): extract help message into separate function
- 20d00cc refactor(wot): extract WoT functionality to its own package
- e24ea48 refactor(wot): move wot into pkg directory
- 2b2cb8d refactor: extract cloud storage functionality to internal/cloud package
- 4df9125 refactor: polishing rough edges
- 9b38a01 refactor: removing direct use of config from periodicRefreshWot
- b8b65e4 refactor: replacing integer slice with set for allowedKinds
- 7ed8445 refactor: simplifying batching for wot map
Performance Improvements
- e16fd13 perf(main): delay WoT computation until necessary
- 82a9945 perf(wot): reduce memory usage in Refresh by using atomic counters
- 66f5495 perf: defer expensive relay initialization for CLI commands
Others
- 6563150 Add Apache as an option for serving in README
- fe85bca Add Apache reverse proxy config to README
- 3bce82a Added Apache proxy information to README.md
- 45bdcb3 build(dependencies): bump khatru to v0.19.0
- 9761e45 build(dependencies): bump various dependencies to latest versions
- 6db9e4b build(dependencies): bump xsync to v4.4.0
- aae1890 build(goreleaser): features should come first
- 65838b5 Change MemoryLimit to MemoryMax in README
- 1c28aa4 chore(config): clarify optional whitelisting and blacklisting file paths
- 43aa631 chore(config): clean up docker lefovers from env.example
- 6757852 chore(config): update default timeout for owner notes fetch to 60s
- 0be714c chore(pgp): extend haven subkey expiration to 2028-02-24
- 5bf446b chore(workflows): update actions versions in release workflow
- 403534d chore(wot): merge log messages for pruning pubkeys
- 8d7f66e chore(wot): replace log with slog
- 9ae2f4c chore(wot): update WoT refresh interval from 1h to 24h
- d6f8cbf ci(workflows): add write perms for statuses in PR validation workflow
- 9c2acf3 ci(workflows): fix syntax error in PR conventional commit validation
- f62e0fd ci(workflows): update permissions for PR validation workflow
- dc81301 ci(workflows): write permissions in PR validation workflow
- 2edef83 ci: add PR conventional commit validation workflow
- 1660149 Correct Apache configuration code block formatting
- 4cb371b docs(backup): enhance backup and restore documentation
- d5682e1 docs(jsonl): add dedicated JSONL export/import documentation
- c621ddd docs(readme): add badges for Go version, license, CI, and Go report card
- 55bc70b docs(readme): add Go project version badge and update Go version badge
- adc5b9e docs(readme): add links to Go version and license badges
- b023435 docs(readme): fix GitHub release badge link
- 9cc39e3 docs(readme): update badges for Go version and release
- 3cd9c49 docs(verify): improve and fix formatting in GPG guide
- eef8b18 docs(wot): add dedicated Web of Trust documentation
- 8277a70 docs(wot): enhance WoT configuration and level descriptions
- 94a4865 docs(wot): improve WoT Documentation + mermaid diagram
- 8ad7c80 docs(wot): improvements to mermaid diagram
- c52d650 docs(wot): remove AI correctio message
- fed34bd docs: add documentation for whitelisting and blacklisting
- 3bcecdc docs: document autostart Haven on macOS
- 5f13d53 docs: review documentation for v1.2.0 release
- 95fb1e7 docs: small improvements to formatting
- ee9782f docs: update formatting and reword notes in backup and wot documentation
- b0f722c Improve formatting of Certbot command in RE...
v1.1.0
Changelog
Features
- 851c1fe feat(blossom)!: create dedicated database for blossom metadata
- fc05678 feat(blossom): add migration script for Blossom metadata
- 07cd704 feat: add version retrieval and log startup message with version
Code Refactoring
- 671e12a refactor(blossom): pass BlossomServer instance to metadata migration
Others
- cb94003 build(dependencies): bump khatru to v0.0.0-20250807015656-5425e6f793a0
- 26dd313 build(dependencies): bump khatru version to v.0.18.2
- 6c1b9e0 build(dependencies): replace khatru with custom forked version
- ecccd74 build(deps): bump khatru version to v0.17.7
- 2891dd9 build(docker): update .dockerignore to include the docs directory
- 77de155 build: include docs directory in release assets
- cb9daef chore(release): prepare Haven v1.1.0
- 96e1d31 chore: remove docker stuff from main repository 9813579
- 2e69771 ci(goreleaser): exclude merge commits from changelog
- 416b9d1 ci(goreleaser): fix missing index.html file in templates
- 4848569 ci(goreleaser): group changelog entries by commit type
- 87698f8 ci(goreleaser): removegpg2 command from signing configuration
- 212a1b0 ci(goreleaser): replace GPG_FINGERPRINT env variable with static key
- 1268ff2 ci(goreleaser): update GoReleaser configuration to v2
- 8df1f92 ci(goreleaser): update changelog exclusion filters
- b70ede4 ci(release): add GPG signing for artifacts
- c377df4 ci(release): migrate to goreleaser with zig-based cross-compilation
- 8ea4b3a ci(release): pin goreleaser action version to v2
- 038bdc5 ci(release): simplify workflow and remove zig-based SDK configuration
- d75e125 ci(release): use sign subkey fingerprint for signing the checksum
- 0f8466e ci(workflows): update release workflow name
- 3f8f6a4 ci: add GitHub Actions workflow for releasing Go binaries
- 223c8eb ci: add binary name configuration to release workflow
- d7fb831 ci: exclude arm64 Windows builds from release workflow
- 5951fa9 ci: remove arm64 architecture from Windows build in release workflow
- 091b60f ci: update release workflow to overwrite existing files
- 98b7750 docs(build): extract build instructions to documentation simplify README
- 7a57ce1 docs(build): improve Go installation instructions
- fec5152 docs(migration): update database migration instructions for older versions
- 4b6a69d docs(readme): add installation instructions for binaries
- 4e489ae docs(readme): fix broken import link to the import section
- 0579e0e docs(verify): expand verification and GPG trust instructions
- 2c365d7 docs: Use PGP instead of GPG in verify.md
- cfb4f16 docs: add instructions for verifying Haven binaries
- 684cbdf feature(config): trim example relay lists
⚠️ Breaking changes
If you’re upgrading from v1.0.5 or earlier, you may hit a BadgerDB migration issue. Please back up your database before upgrading. If you see something like this during startup
error running migrations: failed to delete index key 07935dc9483d36f24464b36e6c000001b9: Txn is too big to fit into one request
delete the db folder and reimport your notes.
v1.0.6
What's Changed
- docs: add documentation for caddy web server by @AxelHamburch in #69
- build(deps): bump khatru version to v0.17.3 by @aaccioly in #71
- feat(blossom): add support for Blossom blob mirroring - BUD-04 by @aaccioly in #77
- build(dependencies): bump eventstore to v0.17.1 by @aaccioly in #82
- feat: Add Haven's public PGP key by @aaccioly in #83
- feat(pool): add penalty box support to SimplePool initialization by @aaccioly 7e9120c
- feat(import): add relay connectivity checks during initialization by @aaccioly 8d37542
- feat(config): reduce fetch timeout defaults by @aaccioly fa6fd10
- feat(config): trim example relay lists by @aaccioly de0a1ae
New Contributors
- @AxelHamburch made their first contribution in #69
Full Changelog: v1.0.5...v1.0.6
v1.0.5
What's Changed
- chore(release): bump haven version to 1.0.4 by @aaccioly in #62
- Support for DB backup with Digital Ocean Spaces by @charlieroth in #63
- Clean up
config.goto align with changes in PR 65 by @charlieroth in #66 - Release/1.0.5 by @aaccioly in #68
New Contributors
- @charlieroth made their first contribution in #63
Full Changelog: v1.0.4...v1.0.5
v1.0.4
v1.0.3
What's Changed
- reword path replacement explanation by @satowTH in #46
- Add support for count events by @aaccioly in #48
- Fix - Blossom CORS headers by @aaccioly in #49
- remove dynamic relay handler by @barrydeen in #50
- Fix/blossom and routing fixes by @aaccioly in #53
- sugested correction for #54 by @girino in #55
- Feature/blossom http range requests by @aaccioly in #56
- Update README.md by @tkhumush in #52
- upgrade khatru, eventstore, google storage by @barrydeen in #59
New Contributors
- @satowTH made their first contribution in #46
- @girino made their first contribution in #55
- @tkhumush made their first contribution in #52
Full Changelog: v1.0.0...v1.0.3
v1.0.0
What's Changed
- update version number by @barrydeen in #34
- fix filepath for relays_import for clearification in env file by @Sebastix in #35
- Allow gift wrapped messages in chat relay by @aaccioly in #36
- blast after save by @barrydeen in #37
- remove kind 4 support by @barrydeen in #38
- Add support for configurable binding address by @aaccioly in #39
- Add gcp bucket backup by @danvergara in #42
- add delete to inbox relay by @barrydeen in #43
- Blossom Support by @barrydeen in #45
New Contributors
- @Sebastix made their first contribution in #35
- @danvergara made their first contribution in #42
Full Changelog: v0.4.1...v1.0.0
v0.4.1
What's Changed
- remove docker, fix eventstore, fix inbox import, relays by json by @barrydeen in #33
Full Changelog: v0.2.3...v0.4.1