Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
912 commits
Select commit Hold shift + click to select a range
abb29cd
feat: implement budget persistence schema and repository core modules
The-Big-Danny Jul 1, 2026
474399c
fix(db): correctly export budget functions from repositories
The-Big-Danny Jul 2, 2026
1ce0d04
restore test file
The-Big-Danny Jul 2, 2026
575424f
feat(budget): implement budget persistence and enforcement
The-Big-Danny Jul 2, 2026
08b15fa
fix(tests): remove hardcoded Vault secret literals from vault.test.ts
farouqyakubu6-creator Jul 3, 2026
8dbd0e8
fix(test): remove secrets from tests
The-Big-Danny Jul 2, 2026
997657d
Merge branch 'main' into feat/key-resolution-chain
jacintaaugustine Jul 4, 2026
42b4b9a
Fix tests for rate limiter and budget extensions
AbdulmalikAlayande Jul 4, 2026
60ee4a0
Merge branch 'feat/133-142-rate-limiter'
AbdulmalikAlayande Jul 4, 2026
05265b7
Add script to process PRs sequentially
AbdulmalikAlayande Jul 4, 2026
e8dc112
Merge main into pr-210, resolving conflicts
AbdulmalikAlayande Jul 4, 2026
c6fb1b6
Merge PR #216 with manual conflict resolution for fee bump sponsorshi…
AbdulmalikAlayande Jul 4, 2026
555d4e6
chore: remove temporary diff files
AbdulmalikAlayande Jul 4, 2026
755700a
Merge branch 'main' into pr-246
AbdulmalikAlayande Jul 4, 2026
7167dd3
Merge branch 'main' into pr-247
AbdulmalikAlayande Jul 4, 2026
f07c5af
Merge branch 'main' into pr-248
AbdulmalikAlayande Jul 4, 2026
0bc7845
fix: add missing alertConfigId to resolveAlerts test calls
AbdulmalikAlayande Jul 4, 2026
7fc1263
Merge main into pr-249 and resolve conflicts
AbdulmalikAlayande Jul 4, 2026
b0a8a4e
Merge main into pr-251 and resolve conflicts
AbdulmalikAlayande Jul 4, 2026
13d3a62
Merge main into pr-252 and resolve conflicts
AbdulmalikAlayande Jul 4, 2026
f379e14
Resolve conflicts for pr-253
AbdulmalikAlayande Jul 4, 2026
76d277a
Resolve conflicts in pr-254
AbdulmalikAlayande Jul 4, 2026
48c08c1
Merge branch 'main' into pr-255
AbdulmalikAlayande Jul 4, 2026
f684ae0
Merge branch 'main' into pr-256
AbdulmalikAlayande Jul 4, 2026
e752584
Fix decoder tests
AbdulmalikAlayande Jul 4, 2026
dbedc6f
Resolve merge conflicts
AbdulmalikAlayande Jul 4, 2026
296c264
Resolve merge conflicts
AbdulmalikAlayande Jul 4, 2026
bba6886
Merge branch 'main' into pr-262
AbdulmalikAlayande Jul 4, 2026
e28af5c
Merge branch 'main' into pr-263
AbdulmalikAlayande Jul 4, 2026
6cf1fbc
Fix conflicts and test errors in pr-263
AbdulmalikAlayande Jul 4, 2026
43f762b
Resolve merge conflicts in pr-264
AbdulmalikAlayande Jul 4, 2026
35dd669
Fix schema.sql encoding issue
AbdulmalikAlayande Jul 4, 2026
ff9fb4c
Resolve merge conflicts in pr-265
AbdulmalikAlayande Jul 4, 2026
8d1a05a
Merge branch 'main' into pr-271
AbdulmalikAlayande Jul 4, 2026
e366792
Fix syntax error in discovery.test.ts
AbdulmalikAlayande Jul 4, 2026
8842d53
docs: update README with current project state
AbdulmalikAlayande Jul 4, 2026
2551e78
Resolve merge conflicts in pr-274
AbdulmalikAlayande Jul 4, 2026
319a1a1
Resolve merge conflicts in pr-275
AbdulmalikAlayande Jul 4, 2026
2eb0f91
Fix committed merge conflict in decoder.test.ts
AbdulmalikAlayande Jul 4, 2026
d17c86c
Fixing bugs and merging PRs
AbdulmalikAlayande Jul 4, 2026
aff2bfb
Resolve merge conflicts in pr-276
AbdulmalikAlayande Jul 4, 2026
5075b04
Resolve merge conflicts in pr-282
AbdulmalikAlayande Jul 4, 2026
2ac9b5a
Fix tests to pass feeSponsorSecret to mock functions and remove stand…
AbdulmalikAlayande Jul 4, 2026
c865fb6
Resolve merge conflicts in pr-283
AbdulmalikAlayande Jul 4, 2026
0fafeab
Fix SQLite CHECK constraint to include discord and telegram
AbdulmalikAlayande Jul 4, 2026
e336a03
Fix eslint error in decoder.ts
AbdulmalikAlayande Jul 4, 2026
5c0f713
docs: accurately reflect current project scope, metrics, and architec…
AbdulmalikAlayande Jul 4, 2026
a5cca04
Resolve merge conflicts in pr-297
AbdulmalikAlayande Jul 4, 2026
0ae1fa8
Resolve merge conflicts in pr-298
AbdulmalikAlayande Jul 4, 2026
d8e9eb3
docs: remove personal milestone from README
AbdulmalikAlayande Jul 4, 2026
6e2f0b9
Resolve merge conflicts in pr-300
AbdulmalikAlayande Jul 4, 2026
fb7c4d4
feat(db): add budget_tracking table to SQLite
Stephan-Thomas Jun 29, 2026
519eba0
Merge branch 'main' into pr-300
AbdulmalikAlayande Jul 4, 2026
a2753ac
Fixing bugs and merging PRs
AbdulmalikAlayande Jul 4, 2026
cec4b4c
fix(db): add missing budget_tracking table and fix test sql syntax
AbdulmalikAlayande Jul 4, 2026
db1bf81
Merge branch 'main' of https://github.com/AbdulmalikAlayande/sorokeep
AbdulmalikAlayande Jul 4, 2026
e13f561
Merge branch 'main' into pr-300
AbdulmalikAlayande Jul 4, 2026
bb66d11
fix(budget): properly enforce dynamic billing cycle in tests and fix …
AbdulmalikAlayande Jul 4, 2026
f999b1c
Merge main into pr-301
AbdulmalikAlayande Jul 4, 2026
de9c315
fix(db): add missing closing brace in repositories.ts
AbdulmalikAlayande Jul 4, 2026
4c68e72
fix(db): remove duplicate budget functions from repositories.ts
AbdulmalikAlayande Jul 4, 2026
69eec94
Merge branch 'main' into commands
farouqyakubu6-creator Jul 4, 2026
cbabe26
Merge branch 'main' into feat/key-resolution-chain
jacintaaugustine Jul 4, 2026
9e90018
fix(alerts): address CodeRabbit review comments
AbdulmalikAlayande Jul 4, 2026
cb5ae84
Merge branch 'feat/simulation-traffic-cache'
AbdulmalikAlayande Jul 4, 2026
fef7989
Fix status/costs command syntax and secret-test placeholders
farouqyakubu6-creator Jul 4, 2026
75ecc42
Fix costs command regression tests
farouqyakubu6-creator Jul 4, 2026
049819e
Fix status command test fixture typo
farouqyakubu6-creator Jul 4, 2026
d1d13d3
Merge branch 'main' into pr-303
AbdulmalikAlayande Jul 4, 2026
7fe57b4
Merge branch 'main' into pr-304
AbdulmalikAlayande Jul 4, 2026
f984c1a
Merge branch 'main' into feat-poll-interval-overrides
Stephan-Thomas Jul 4, 2026
9a9f66d
fix(completion/costs): resolve explicit string type guards for compil…
The-Big-Danny Jul 5, 2026
85cece9
fix(cli): preserve original caught error reference for eslint rule
The-Big-Danny Jul 5, 2026
f57d1ab
feat: config fallback, slack webhook, unwatch, pause/resume monitoring
Jul 5, 2026
6f75142
Resolve merge conflicts in dispatcher.ts
AbdulmalikAlayande Jul 5, 2026
cc7a88c
Resolve merge conflicts in dispatcher.ts
AbdulmalikAlayande Jul 5, 2026
fd3cb17
Merge branch 'main' into pr-291
AbdulmalikAlayande Jul 5, 2026
c4d85a1
Merge main into pr-295
AbdulmalikAlayande Jul 5, 2026
c55e954
Merge main into pr-296
AbdulmalikAlayande Jul 5, 2026
e468b79
Fix tests after merge
AbdulmalikAlayande Jul 5, 2026
c3765e3
Resolve merge conflicts in src/index.ts
AbdulmalikAlayande Jul 5, 2026
d79abce
Resolve conflicts in client.test.ts
AbdulmalikAlayande Jul 5, 2026
6cda20d
Resolve conflicts in costs.test.ts
AbdulmalikAlayande Jul 5, 2026
d4865ed
Fix tests
AbdulmalikAlayande Jul 5, 2026
c3e3d08
Remove duplicate submitRestore
AbdulmalikAlayande Jul 5, 2026
17aea2c
Fix tests and duplicate methods
AbdulmalikAlayande Jul 5, 2026
90c9c6e
Merge branch 'main' into pr-261
AbdulmalikAlayande Jul 5, 2026
a80a30d
Fix duplicate column in schema
AbdulmalikAlayande Jul 5, 2026
9ca303a
Resolve merge conflicts
AbdulmalikAlayande Jul 5, 2026
dbe9f52
Remove duplicate assertSimulationSuccess function
AbdulmalikAlayande Jul 5, 2026
9217105
Resolve merge conflict in discovery.test.ts
AbdulmalikAlayande Jul 5, 2026
b68a95c
Merge branch 'main' into pr-285
AbdulmalikAlayande Jul 5, 2026
5902b50
Fix SCVal translator to use nativeToScVal and scValToNative
AbdulmalikAlayande Jul 5, 2026
eff06a3
Merge branch 'main' into pr-286
AbdulmalikAlayande Jul 5, 2026
4512bec
Resolve merge conflict in config.ts
AbdulmalikAlayande Jul 5, 2026
ab63d20
Install handlebars
AbdulmalikAlayande Jul 5, 2026
36c55bd
Resolve merge conflict in index.ts
AbdulmalikAlayande Jul 5, 2026
11be0e9
Fix StdioServerTransport constructor args
AbdulmalikAlayande Jul 5, 2026
777a0da
Fix invalid json test regex
AbdulmalikAlayande Jul 5, 2026
178d50e
Resolve merge conflicts in pr-300
AbdulmalikAlayande Jul 5, 2026
7ace334
Fix multiple export errors
AbdulmalikAlayande Jul 5, 2026
953c785
Fix budget tracking tests and schema
AbdulmalikAlayande Jul 5, 2026
db777d2
Resolve merge conflicts in pr-302
AbdulmalikAlayande Jul 6, 2026
72d7e8b
Resolve merge conflicts in pr-305
AbdulmalikAlayande Jul 6, 2026
8363a78
Resolve merge conflicts in pr-308
AbdulmalikAlayande Jul 6, 2026
94fd470
Merge PR 309: Alerting system overhaul with CodeRabbit fixes
AbdulmalikAlayande Jul 6, 2026
04b648e
Fix SQL injection in LIMIT clauses, add missing channel types, and sc…
AbdulmalikAlayande Jul 7, 2026
ed558f0
Fix stopDaemon re-entrance bug and remove dead introspection call
AbdulmalikAlayande Jul 7, 2026
d6aa987
Standardize webhook alert timeout to 10s matching other channels
AbdulmalikAlayande Jul 7, 2026
f3b8d8d
Add missing indexes and widen resource_alert_configs channel constraint
AbdulmalikAlayande Jul 7, 2026
85097d4
Add npm audit step to CI pipeline
AbdulmalikAlayande Jul 7, 2026
484234a
Change no-explicit-any ESLint rule from off to warn
AbdulmalikAlayande Jul 7, 2026
7fd65a4
Update webhook timeout tests to match new 10s timeout
AbdulmalikAlayande Jul 7, 2026
53af1ed
Fixed git conflicts
AbdulmalikAlayande Jul 7, 2026
e05b481
Fixed git conflicts
AbdulmalikAlayande Jul 7, 2026
3c4b922
Fixed git conflicts
AbdulmalikAlayande Jul 7, 2026
591fc9e
Clean up .gitignore: add database/config entries, remove stale Rust a…
AbdulmalikAlayande Jul 7, 2026
911426c
Use npm ci for deterministic CI builds instead of deleting lockfile
AbdulmalikAlayande Jul 7, 2026
c6eb220
Guard non-null assertions on txHash and ledger in auto-extension
AbdulmalikAlayande Jul 7, 2026
809a26e
Log resolution notification failures instead of silently dropping them
AbdulmalikAlayande Jul 7, 2026
2a5a26c
Remove build tools from production Docker image and unused EXPOSE 3000
AbdulmalikAlayande Jul 7, 2026
5e46533
Move pino-pretty to devDependencies and remove outdated @types/pino
AbdulmalikAlayande Jul 7, 2026
2441f3c
Update Dockerfile tests to verify no unused ports and no leaked build…
AbdulmalikAlayande Jul 7, 2026
7165e27
Add tests for parameterized LIMIT, discord/telegram channels, and cos…
AbdulmalikAlayande Jul 8, 2026
6d5754d
Add test for combined limit and since parameters in getResourceUsageLogs
AbdulmalikAlayande Jul 8, 2026
11a398a
Add tests for daemon re-entrance guard after stopDaemon mid-cycle
AbdulmalikAlayande Jul 8, 2026
c6a1fb1
Add test for extension txHash/ledger null guard in runAutoExtensions
AbdulmalikAlayande Jul 8, 2026
93535ca
Add test for resolution notification failure logging in monitor cycle
AbdulmalikAlayande Jul 8, 2026
2c69b7c
Upgrade @stellar/stellar-sdk to v16 and fix vitest vulnerability
AbdulmalikAlayande Jul 10, 2026
4eb1603
feat: define alert event types and helper functions for notification …
AbdulmalikAlayande Jul 10, 2026
08630ea
Fix useless assignment lint errors in alert template context builder
AbdulmalikAlayande Jul 10, 2026
9e320e4
Fix unnecessary escape lint errors in zsh completion script generation
AbdulmalikAlayande Jul 10, 2026
82bd1e9
Fix TypeScript type narrowing for StateChangeAlertEvent in template c…
AbdulmalikAlayande Jul 10, 2026
0a6e53d
Remove unused CostSummary import and fix sequence type for stellar-sd…
AbdulmalikAlayande Jul 10, 2026
fa568df
Fix envelopeXdr type for stellar-sdk v16 GetTransactionResponse
AbdulmalikAlayande Jul 10, 2026
f498cab
Fix error type narrowing in status command catch block
AbdulmalikAlayande Jul 10, 2026
439316c
Bump version to 1.0.0 and remove unnecessary optional dependency
AbdulmalikAlayande Jul 10, 2026
4df6c32
Add auto-release workflow on version bump
AbdulmalikAlayande Jul 10, 2026
7ce208b
Fix release workflow to use tag-based version detection
AbdulmalikAlayande Jul 10, 2026
6df3ba2
Consolidate publish into release workflow and remove publish.yml
AbdulmalikAlayande Jul 10, 2026
5ebd335
Add security policy for vulnerability disclosure
AbdulmalikAlayande Jul 27, 2026
9e3feaf
Add code of conduct
AbdulmalikAlayande Jul 27, 2026
5f97176
Add bug report and feature request issue templates
AbdulmalikAlayande Jul 27, 2026
fb97e8c
Add pull request template
AbdulmalikAlayande Jul 27, 2026
b76d86a
Add CODEOWNERS with mandatory review on key-handling paths
AbdulmalikAlayande Jul 27, 2026
51169eb
Add architecture doc explaining the daemon cycle data flow
AbdulmalikAlayande Jul 27, 2026
3a43318
Link ARCHITECTURE.md, SECURITY.md, and CODE_OF_CONDUCT.md from CONTRI…
AbdulmalikAlayande Jul 27, 2026
7d5147c
Link new governance docs and expand roadmap in README
AbdulmalikAlayande Jul 27, 2026
569352e
Move dispatcher.test.ts into the active tests/ tree
AbdulmalikAlayande Jul 27, 2026
13f9a44
Add tests for alert channel registry
AbdulmalikAlayande Jul 27, 2026
ef55404
Add alert channel registry
AbdulmalikAlayande Jul 27, 2026
fb947ae
Add tests for built-in alert channel registration
AbdulmalikAlayande Jul 27, 2026
dfbfcf0
Register the five built-in alert channels via the registry
AbdulmalikAlayande Jul 27, 2026
cda333e
Source dispatcher's default channel map from the registry
AbdulmalikAlayande Jul 27, 2026
71e8c83
Add tests for relaxed channel_type CHECK constraints
AbdulmalikAlayande Jul 27, 2026
616b98d
Relax channel_type CHECK constraints for pluggable alert channels
AbdulmalikAlayande Jul 27, 2026
b50e46b
Fix CRLF-unsafe comment-stripping regex and add channel_type live mig…
AbdulmalikAlayande Jul 27, 2026
14cba90
Widen channel_type types from fixed unions to string
AbdulmalikAlayande Jul 27, 2026
4069c5c
Remove dead per-test schema rebuild and add plugin channel_type tests
AbdulmalikAlayande Jul 27, 2026
7c2df98
Add tests for registry-driven CLI channel resolution
AbdulmalikAlayande Jul 27, 2026
68312bc
Make 'alerts add' channel resolution registry-driven
AbdulmalikAlayande Jul 27, 2026
7f3d72e
Add contributor guide for adding a new alert channel
AbdulmalikAlayande Jul 27, 2026
4938e16
Update ARCHITECTURE.md's contribution table for the alert channel reg…
AbdulmalikAlayande Jul 27, 2026
35d9237
Update good-first-issue example to reflect the alert channel registry
AbdulmalikAlayande Jul 27, 2026
d7f031d
docs: write a glossary of Soroban/Stellar TTL terminology for newcomers
TheShnider Jul 28, 2026
b611101
docs: Brazilian Portuguese README translation with language switcher
OlaBakare Jul 28, 2026
7b66d9b
feat(db): add contract_groups table and ADR-008 for channel_type vali…
badmusdare4 Jul 28, 2026
72d7231
set up a public roadmap board (GitHub Projects) synced with phase labels
OluRemiFour Jul 28, 2026
fe9703b
feat(alerts): add configurable quiet-hours / maintenance windows (#325)
temi-Dee Jul 28, 2026
0892d39
feat(alerts): track alert delivery success-rate metrics per channel
Ugooweb Jul 29, 2026
79488fd
feat(core): implement configurable extension jitter (#500)
Peolite1 Jul 29, 2026
1070267
Update package-lock.json version and remove deprecated alert channel …
Hunterly01 Jul 29, 2026
051d6e0
docs: add maintainer triage guide
mekeke111 Jul 29, 2026
20e5a70
Add reusable AlertChannel contract test suite and apply to five built…
aigbagbobila Jul 29, 2026
efc2d09
implemented Microsoft Teams delivery channel
idrisososanwo Jul 29, 2026
8c84e75
add channel connectivity and command
Jumongweb Jul 29, 2026
eb889ef
feat: per-channel-type default retries
sarah-obasi-analytics Jul 29, 2026
e2c9892
Merge branch 'main' into per-channel-type-default
sarah-obasi-analytics Jul 29, 2026
3ff9fe8
feat: implement Matrix delivery channel
sarah-obasi-analytics Jul 29, 2026
c829a73
Merge branch 'main' into implement-matrix-delivery-channel
sarah-obasi-analytics Jul 29, 2026
c16ea09
#321 feat(cli): add --dry-run to 'alerts test' to preview payload wit…
Kappa16 Jul 29, 2026
41ded44
feat(alerts): implement generic SMTP email delivery channel (#312)
raymondidahor-bot Jul 29, 2026
da14c85
fix
heymide Jul 29, 2026
62d4508
feat(devops): add observability compose profile
Ekpemark Jul 30, 2026
27750cb
chore: document healthz implementation dependency
Ekpemark Jul 30, 2026
ad89ba8
chore: acknowledge alert digest scope blocker
Ekpemark Jul 30, 2026
13d9f5e
feat(alerts): add Google Chat webhook channel
Ekpemark Jul 30, 2026
8f6e314
feat: implement database import with schema validation and atomic fal…
martinshub-tech Jul 30, 2026
2135aa0
feat: add --group support to status, costs, and alerts commands
martinshub-tech Jul 30, 2026
d1e8ecd
Add spec workflow agents for requirements, design, tasks, implementat…
temi-Dee Jul 30, 2026
3c7c182
fix: resolve npm audit high-severity findings blocking all contributo…
AbdulmalikAlayande Jul 30, 2026
8b4d1a2
feat(cli): add man page generation
temi-Dee Jul 30, 2026
f6fb27e
feat(cli): add exact tag-based contract filtering
temi-Dee Jul 30, 2026
1f85d8f
Update README.md
AbdulmalikAlayande Jul 30, 2026
e4e071c
feat(alerts): implement Opsgenie delivery channel
DevSolex Jul 29, 2026
dbeee6c
fix(alerts/opsgenie): address CodeRabbit review comments
DevSolex Jul 29, 2026
287028d
test(alerts/opsgenie): wrap fake timers in try/finally
DevSolex Jul 29, 2026
837a3d6
fix(alerts/opsgenie): surface clear timeout error message
DevSolex Jul 29, 2026
f579e32
fix(alerts/opsgenie): address CodeRabbit round-4 comments
DevSolex Jul 29, 2026
d3f16f2
fix(alerts/opsgenie): attach cause to timeout error (lint fixup for #…
AbdulmalikAlayande Jul 30, 2026
d11e0f4
feat(ci): add Node 24.x to test matrix alongside Node 22.x
rilwanubala Jul 30, 2026
d261e8b
Merge branch 'pr-528-verify' into verify-528
AbdulmalikAlayande Jul 30, 2026
89ed4b8
fix(db): preserve quiet-hours columns through legacy CHECK-constraint…
AbdulmalikAlayande Jul 30, 2026
26c51a4
test(e2e): document behavior when RPC latestLedger regresses
Realbaji16 Jul 30, 2026
02ed7c4
feat: add sorokeep_budget_remaining_xlm gauge exposing remaining budg…
GazzyLee Jul 29, 2026
6470d68
feat: add network label to budget metric to separate testnet/mainnet …
GazzyLee Jul 29, 2026
827891e
fix: resolve npm audit high-severity vulnerabilities via overrides an…
GazzyLee Jul 30, 2026
88558a0
fix(tests): remove unused ResourceEstimate import in resource_estimat…
samuel22x Jul 30, 2026
5d2b096
fix(tests): remove unused runAutoExtensions import in sandbox-network…
TheCreatorNode Jul 30, 2026
095ace2
fix(tests): eliminate no-explicit-any in lifecycle and docker-compose…
Eldren-cmd Jul 30, 2026
38142c4
test(daemon): add vacuum-skip tests with lastVacuumAt bookkeeping
aymide1ee Jul 30, 2026
7032d6f
fix(tests): wire orphaned keys.test into test suite and delete dead s…
MrG139 Jul 30, 2026
c81b930
fix(rpc): eliminate no-explicit-any warnings in client.ts (#530)
aymide1ee Jul 30, 2026
ab2869f
Merge branch 'pr-517-verify' into verify-517
AbdulmalikAlayande Jul 30, 2026
d56c167
docs: add Brazilian Portuguese README translation (#517, trimmed to s…
AbdulmalikAlayande Jul 30, 2026
de5f3db
Merge branch 'pr-519-verify' into verify-519
AbdulmalikAlayande Jul 30, 2026
54ee251
Merge branch 'pr-524-verify' into verify-524
AbdulmalikAlayande Jul 30, 2026
5bc1e7a
Merge branch 'pr-547-verify' into verify-547
AbdulmalikAlayande Jul 30, 2026
3d952ed
Merge branch 'pr-600-verify' into verify-600
AbdulmalikAlayande Jul 30, 2026
de1f4b6
test(db): verify SQLite WAL recovery after unclean shutdown
abdullahilateefat03-boop Jul 30, 2026
a9983ee
feat(db): implement database import atomic replace/merge modes (#600,…
AbdulmalikAlayande Jul 30, 2026
51c6712
Merge branch 'pr-518-verify' into verify-518
AbdulmalikAlayande Jul 30, 2026
dc65390
fix(db): renumber contract_groups migration to avoid version collisio…
AbdulmalikAlayande Jul 30, 2026
0cdae45
Merge branch 'main' into teams-delivery-channel
idrisososanwo Jul 30, 2026
a7bbcc5
Merge branch 'pr-641-verify' into verify-641
AbdulmalikAlayande Jul 31, 2026
c017b37
Merge branch 'pr-636-verify' into verify-636
AbdulmalikAlayande Jul 31, 2026
686f9d3
Merge branch 'pr-631-verify' into verify-631
AbdulmalikAlayande Jul 31, 2026
f2ee470
Merge branch 'pr-625-verify' into verify-625
AbdulmalikAlayande Jul 31, 2026
30f0678
feat(cli): add man page generation (#622, trimmed to scope)
AbdulmalikAlayande Jul 31, 2026
9f3eee4
Merge branch 'pr-560-verify' into verify-560
AbdulmalikAlayande Jul 31, 2026
2fca7f5
chore: regenerate package-lock.json after npm install for prom-client…
AbdulmalikAlayande Jul 31, 2026
308e1ae
docs: write a glossary of Soroban/Stellar TTL terminology for newcome…
AbdulmalikAlayande Jul 31, 2026
8c9e8c3
chore(tests): reconcile orphaned src/alerts/channels.test.ts (#548)
AbdulmalikAlayande Jul 31, 2026
5adb3f2
Merge branch 'pr-570-verify' into verify-570
AbdulmalikAlayande Jul 31, 2026
68dda0c
feat(alerts): implement Matrix delivery channel (#570, completed)
AbdulmalikAlayande Jul 31, 2026
f902655
Merge branch 'pr-557-verify' into verify-557
AbdulmalikAlayande Jul 31, 2026
cc5f4c0
feat(alerts): implement Microsoft Teams delivery channel (#557, fixed…
AbdulmalikAlayande Jul 31, 2026
04ce976
feat(alerts): implement generic SMTP email delivery channel (#585, fi…
AbdulmalikAlayande Jul 31, 2026
6436795
feat(alerts): implement Google Chat webhook delivery channel (#597, t…
AbdulmalikAlayande Jul 31, 2026
2d8d1a9
Merge branch 'pr-568-verify' into verify-568
AbdulmalikAlayande Jul 31, 2026
0da4e78
fix(alerts): complete per-channel maxRetries support (#568, #318)
AbdulmalikAlayande Jul 31, 2026
61ea4ea
Merge remote-tracking branch 'pr562-fork/main' into verify-562
AbdulmalikAlayande Jul 31, 2026
d1bde18
Merge remote-tracking branch 'pr555-fork/contract-tests-for-alert-cha…
AbdulmalikAlayande Jul 31, 2026
f5e41ed
trim: drop out-of-scope edits to orphaned src/alerts/*.test.ts files …
AbdulmalikAlayande Jul 31, 2026
5fb268f
Merge branch '#321-feat(cli)--add---dry-run-to-'alerts-test'-to-previ…
AbdulmalikAlayande Jul 31, 2026
67fdcd2
Merge branch 'feat/alerts-channel-stats' of https://github.com/Ugoowe…
AbdulmalikAlayande Jul 31, 2026
2914fe5
fix(alerts): fix invalid escaped-backtick syntax in getChannelDeliver…
AbdulmalikAlayande Jul 31, 2026
9448c72
docs: translate README into Spanish
Aug 1, 2026
030d970
docs: create a mermaid architecture diagram set for docs/ARCHITECTURE.md
Aug 1, 2026
311b499
docs: translate README into Spanish
Aug 6, 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
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.git
.gitignore
node_modules
dist
tests
coverage
*.log
.env
.env.*
.env.example
.npmrc
README.md
CONTRIBUTING.md
LICENSE
stdout
docker-compose*.yaml
systemd/
docs/
templates/
39 changes: 39 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ─────────────────────────────────────────────────────────────────────────────
# sorokeep — environment variable reference
#
# Copy this file to .env and fill in the values for your deployment target.
# Docker Compose will automatically load variables from a .env file in the
# same directory as docker-compose.yaml.
# ─────────────────────────────────────────────────────────────────────────────

# ── Network ───────────────────────────────────────────────────────────────────
# Which Stellar network the daemon will monitor.
# Accepted values: mainnet | testnet | standalone
SOROKEEP_NETWORK=standalone

# ── Soroban RPC endpoint ──────────────────────────────────────────────────────
# Full URL to the Soroban RPC endpoint.
# When running alongside the Quickstart container, the service name "stellar"
# resolves inside the Docker bridge network.
#
# Local devnet (default):
SOROKEEP_RPC_URL=http://stellar:8000/soroban/rpc
#
# Stellar Testnet public endpoint:
# SOROKEEP_RPC_URL=https://soroban-testnet.stellar.org

# ── Polling interval ──────────────────────────────────────────────────────────
# How often (in milliseconds) the daemon checks contract TTLs.
# Minimum: 10000 (10 seconds)
# Default: 300000 (5 minutes)
# Recommended for local devnet: 30000 (30 seconds)
SOROKEEP_POLLING_INTERVAL=300000

# ── Logging ───────────────────────────────────────────────────────────────────
# Log verbosity level (debug | info | warn | error).
# Set to "debug" for local development / devnet runs.
LOG_LEVEL=info

# ── Node environment ──────────────────────────────────────────────────────────
# Keep "production" unless you are actively hacking on the daemon itself.
NODE_ENV=production
13 changes: 13 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Default owner for everything in the repo, unless a more specific rule below matches.
* @AbdulmalikAlayande

# Anything touching secret-key handling or transaction submission gets
# mandatory review — see SECURITY.md for why these paths are sensitive.
/src/core/extension.ts @AbdulmalikAlayande
/src/core/channels.ts @AbdulmalikAlayande
/src/core/vault.ts @AbdulmalikAlayande
/src/core/aws_secrets.ts @AbdulmalikAlayande
/src/db/schema.sql @AbdulmalikAlayande

/.github/ @AbdulmalikAlayande
/SECURITY.md @AbdulmalikAlayande
80 changes: 80 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Bug Report
description: Something in sorokeep isn't working as expected
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Before filing, check the [open issues](https://github.com/AbdulmalikAlayande/sorokeep/issues) for a duplicate.
If this is a security vulnerability (key leakage, unintended transactions, signature bypass), do **not** file it here — use [Security Advisories](https://github.com/AbdulmalikAlayande/sorokeep/security/advisories/new) instead.

- type: input
id: version
attributes:
label: Sorokeep version
description: Output of `sorokeep --version` or the npm version installed
placeholder: "1.0.0"
validations:
required: true

- type: dropdown
id: command
attributes:
label: Which command or component?
options:
- watch
- status
- daemon
- alerts
- guard (auto-extension)
- costs
- restore
- resources
- budget
- channels
- inspect
- check
- db
- MCP server
- Other / not command-specific
validations:
required: true

- type: textarea
id: what-happened
attributes:
label: What happened?
description: What you expected vs. what actually happened
validations:
required: true

- type: textarea
id: repro
attributes:
label: Steps to reproduce
description: Minimal steps, including the exact command(s) run. Redact contract IDs/secrets if they're sensitive.
placeholder: |
1. sorokeep watch C... --network testnet
2. sorokeep guard C... --keypair-env STELLAR_SECRET_KEY --auto-extend
3. ...
validations:
required: true

- type: textarea
id: logs
attributes:
label: Relevant logs or error output
description: Paste any error output or daemon logs. Sorokeep never logs secret keys, but double-check before pasting.
render: shell

- type: input
id: network
attributes:
label: Network
placeholder: "testnet / mainnet / local sandbox"

- type: input
id: node-version
attributes:
label: Node.js version
placeholder: "22.x"
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Feature Request
description: Propose a new capability or improvement
labels: ["enhancement", "needs-discussion"]
body:
- type: markdown
attributes:
value: |
Per [CONTRIBUTING.md](https://github.com/AbdulmalikAlayande/sorokeep/blob/main/CONTRIBUTING.md#larger-contributions), open an issue and get alignment **before** writing code for anything beyond a small fix — especially new CLI commands, schema changes, or changes to the monitor/daemon cycle. This template is that discussion.

- type: textarea
id: problem
attributes:
label: What problem does this solve?
description: Describe the gap or pain point. Prefer a real scenario over an abstract one.
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed solution
description: What would you build? A new command, a new alert channel, a schema change, etc.
validations:
required: true

- type: dropdown
id: area
attributes:
label: Which area does this touch?
options:
- New alert channel
- CLI command / UX
- Database schema
- Monitor / daemon cycle
- Auto-extension logic
- MCP server / tools
- Docs
- CI/CD / release process
- Other
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Anything else you thought about, including "do nothing" if relevant

- type: checkboxes
id: willing
attributes:
label: Contribution
options:
- label: I'm willing to implement this myself with guidance
- label: I'm proposing this for someone else to pick up
26 changes: 26 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## What does this PR do?

<!-- One or two sentences. Link the issue this addresses, if any: Closes #123 -->

## Why?

<!-- The motivation — what problem this solves or what it enables. -->

## Does this touch secret-key handling or transaction submission?

<!-- If yes (extension.ts, channels.ts, restore, key resolution from env/AWS/Vault), say so explicitly — reviewers will scrutinize this path per SECURITY.md. -->

- [ ] Yes — see notes above
- [ ] No

## Checklist

- [ ] Tests pass (`npm test`)
- [ ] Type check passes (`npx tsc --noEmit`)
- [ ] Lint passes (`npm run lint`)
- [ ] Tests cover the new functionality (TDD preferred — see [CONTRIBUTING.md](../CONTRIBUTING.md#test-driven-development))
- [ ] No unnecessary dependencies added
- [ ] Commit messages follow [conventional format](../CONTRIBUTING.md#commits)
- [ ] No `console.log` in core logic
- [ ] ADR added if this is a significant design decision (see [docs/adr](../docs/adr))
- [ ] E2E sandbox tested, if this touches RPC or daemon behavior (see [docs/e2e-sandbox.md](../docs/e2e-sandbox.md))
50 changes: 37 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,47 @@
name: CI
name: CI Pipeline

on:
push:
branches: [main]
branches: [ "main" ]
pull_request:
branches: [main]
branches: [ "main" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
test:
build-and-test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [22]
node-version: [22.x, 24.x]

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- run: npm ci
- run: npx vitest run
- run: npx tsc --noEmit
- name: Checkout Repository
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Clean Install Dependencies
run: npm ci

- name: Audit Dependencies
run: npm audit --omit=dev --audit-level=high

- name: Lint Code
run: npm run lint

- name: Run Tests
run: npm run test -- --coverage

- name: Build Project
run: npm run build
59 changes: 0 additions & 59 deletions .github/workflows/publish.yml

This file was deleted.

Loading