Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1b7dfb5
nostrdb: Update to upstream with gift wrap support
alltheseas Feb 4, 2026
05b0cf7
feat(nip17): Add NIP-17 message creation and unwrapping
alltheseas Feb 4, 2026
66fd398
feat(nip17): Initialize user key in nostrdb on login
alltheseas Feb 4, 2026
df39074
feat(nip17): Update DMChatView to send NIP-17 private DMs with outbox…
alltheseas Feb 4, 2026
5bb2392
feat(ui): Add NIP-04/NIP-17 encryption indicator and DM display fixes
alltheseas Feb 4, 2026
49741e7
test(nip17): Add comprehensive NIP-17 unit tests
alltheseas Feb 4, 2026
e53b230
fix(nip17): Thread safety and debug logging improvements
alltheseas Feb 4, 2026
9d71bca
fix(nostrdb): Memory safety and correctness fixes
alltheseas Feb 4, 2026
d8eda1e
fix(nip17): Fix inbound NIP-17 DMs - 4 critical issues
alltheseas Feb 4, 2026
1fee97e
docs: Add NIP-17 missing DM investigation for jb55/notedeck
alltheseas Feb 4, 2026
b842be0
feat(nip17): Add DM Relays settings tab for kind:10050 management
alltheseas Feb 4, 2026
bfe41f0
fix(nip17): Prevent duplicate DM sends with button disable and spinner
alltheseas Feb 4, 2026
412b03c
test(nip17): Add security and edge case tests
alltheseas Feb 4, 2026
e78d5ff
Improve DM relay list lookup
alltheseas Feb 4, 2026
4b3b640
Adjust DM chat footer layout
alltheseas Feb 4, 2026
dd3bf05
Scale event fonts for Dynamic Type
alltheseas Feb 4, 2026
cba2bae
feat(nip17): Complete NIP-17 private DM implementation
alltheseas Feb 4, 2026
2f6bd4f
refactor: Convert nostrdb from vendored code to git submodule
alltheseas Feb 10, 2026
636b499
fix: resolve build errors from nostrdb submodule conversion
alltheseas Mar 6, 2026
cf580d2
fix: extract bech32 TLV kind in Swift, untrack .beads/
alltheseas Mar 6, 2026
e8e2527
fix: extract TLV kind for inline mentions, add .beads/ to gitignore
alltheseas Mar 6, 2026
486513f
Merge remote-tracking branch 'origin/master'
alltheseas Mar 6, 2026
3f0d9e9
Switch nostrdb build from pbxproj C entries to SPM local package + ad…
alltheseas Mar 6, 2026
2f97e55
Move Clibsodium dependency from app targets to Nostrdb SPM package
alltheseas Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Empty file removed .beads/issues.jsonl
Empty file.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
xcuserdata
/.direnv
.beads/
damus/TestingPrivate.swift
damus.xcodeproj/xcshareddata/xcbaselines
.DS_Store
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "nostrdb"]
path = nostrdb
url = https://github.com/alltheseas/nostrdb.git
branch = spm
2 changes: 0 additions & 2 deletions nostrdb/parser.h → damus-c/parser.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

#ifndef CURSOR_PARSER
#define CURSOR_PARSER

Expand Down Expand Up @@ -39,4 +38,3 @@ static inline int consume_u32(struct cursor *cursor, unsigned int match)
}

#endif /* CURSOR_PARSER */

999 changes: 112 additions & 887 deletions damus.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion damus/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,9 @@ struct ContentView: View {
}

func connect() async {
// Check for and swap in a compacted database before opening
let _ = Ndb.try_swap_compacted_db()

// nostrdb
var mndb = Ndb()
if mndb == nil {
Expand Down Expand Up @@ -747,7 +750,8 @@ struct ContentView: View {
)

home.damus_state = self.damus_state!

self.damus_state?.initializeNip17KeysIfNeeded()

await damus_state.snapshotManager.startPeriodicSnapshots()

if let damus_state, damus_state.purple.enable_purple {
Expand Down Expand Up @@ -778,6 +782,8 @@ struct ContentView: View {
}
}
await damus_state.nostrNetwork.connect()
// Subscribe to our own DM relays (kind:10050) for receiving inbound NIP-17 messages
self.damus_state?.subscribeToOwnDMRelays()
// TODO: Move this to a better spot. Not sure what is the best signal to listen to for sending initial filters
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
self.home.send_initial_filters()
Expand Down
Loading