Skip to content

Async standup v2#32

Merged
DanGould merged 23 commits intomasterfrom
async-standup-v2
Mar 6, 2026
Merged

Async standup v2#32
DanGould merged 23 commits intomasterfrom
async-standup-v2

Conversation

@DanGould
Copy link
Copy Markdown
Owner

@DanGould DanGould commented Mar 6, 2026

Pull Request Checklist

Please confirm the following before requesting review:

spacebear21 and others added 23 commits February 26, 2026 21:25
Expose a nixosModules.payjoin-mailroom flake output that provides a
systemd service. Operators declare settings as native Nix attrsets
(serialized to TOML), keep secrets in an environment file, and get
DynamicUser, state persistence, and auto-start on boot out of the box.
Switch from a git commit ref to the npm-published
0.30.0-1 release. uniffi-runtime-javascript is now
published on crates.io with uniffi_core 0.30 support,
so the local path patch in wasm-manifest-patch.toml is
no longer needed.
Switch from a pinned rev on chavic/uniffi-dart to the
tagged v0.1.0+v0.30.0 release on Uniffi-Dart/uniffi-dart.
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/23d72da' (2026-02-07)
  → 'github:NixOS/nixpkgs/1267bb4' (2026-02-25)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/11a3965' (2026-02-09)
  → 'github:oxalica/rust-overlay/458eea8' (2026-03-02)
decrypt_message_a and decrypt_message_b only borrow their
secret-key arguments, so accept &HpkeSecretKey instead of
owned HpkeSecretKey.  Removes .clone() at every call site.

Also make encrypt_message_a take `mut body` in the signature
to match encrypt_message_b, dropping the `let mut body = body`
rebind.

Note: the entire hpke module is pub(crate), so none of these
are public API changes.
The cert_der parameter is only passed to
Certificate::from_der which borrows it, so accept &[u8]
instead of Vec<u8>. Fix call sites in payjoin-cli and
payjoin-test-utils accordingly.

Other pub fns in io.rs and ohttp.rs keep ownership where
consumed (ohttp_context, impl IntoUrl).
Replace panic with Other(String) variant to handle unknown secp256k1 error variants. This prevents crashes for unknown varients and if new variants are added upstream.
Introduce `fetch_ohttp_keys_async` in the Python bindings and update
integration tests to use it instead of `TestServices.fetch_ohttp_keys()`.
This keeps key retrieval inside Python HTTP code and aligns test flow
with the async sender/receiver path.

The helper fetches `/.well-known/ohttp-gateway` through the configured
relay proxy, validates TLS with the provided DER certificate and decodes the response into `OhttpKeys`.
Replace the two-step Issue→Discussion standup flow with a
single Discussion-based system that auto-gathers each
contributor's weekly activity (merged PRs, reviews, issues)
and creates pre-populated threaded replies.

Changes:
- Add create_standup_discussion.py with GitHub API activity
  gathering and GraphQL Discussion/comment creation
- Update standup-prompt.yml to call new script and pass
  DISCUSSION_CATEGORY_NODE_ID
- Remove compile_standup.py and standup-compile.yml since
  the Discussion IS the standup (no compile step needed)
- Remove create_standup_issue.py (superseded)
When DRY_RUN is set, gather activity and print what would be
posted without creating a Discussion or sending notifications.
Runs Tuesday 06:00 UTC before the standup
meeting. Edits the Discussion body to show which contributors
replied to their thread. Uses an HTML comment marker so
re-runs update in place rather than appending.
@DanGould DanGould merged commit 0e5a0c9 into master Mar 6, 2026
25 of 39 checks passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 6, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d52c9d6c-b46f-4e03-a373-f03131dea8fa

📥 Commits

Reviewing files that changed from the base of the PR and between a9a1acc and 2f82c56.

⛔ Files ignored due to path filters (4)
  • Cargo-minimal.lock is excluded by !**/*.lock
  • Cargo-recent.lock is excluded by !**/*.lock
  • flake.lock is excluded by !**/*.lock
  • payjoin-ffi/javascript/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (20)
  • .github/scripts/compile_standup.py
  • .github/scripts/create_standup_discussion.py
  • .github/scripts/create_standup_issue.py
  • .github/standup-contributors.yml
  • .github/workflows/standup-compile.yml
  • .github/workflows/standup-prompt.yml
  • flake.nix
  • nix/modules/payjoin-mailroom.nix
  • payjoin-cli/src/app/v2/ohttp.rs
  • payjoin-ffi/Cargo.toml
  • payjoin-ffi/javascript/package.json
  • payjoin-ffi/javascript/wasm-manifest-patch.toml
  • payjoin-ffi/python/src/payjoin/http.py
  • payjoin-ffi/python/test/test_payjoin_integration_test.py
  • payjoin-mailroom/config.example.toml
  • payjoin-test-utils/src/lib.rs
  • payjoin/src/core/hpke.rs
  • payjoin/src/core/io.rs
  • payjoin/src/core/receive/v2/mod.rs
  • payjoin/src/core/send/v2/mod.rs

📝 Walkthrough

Walkthrough

This pull request refactors the standup automation system from GitHub issues to discussions, adds a Nix module for payjoin-mailroom service deployment, and optimizes Rust API signatures to use borrowed references. The standup changes include replacing issue creation with discussion creation, adding YAML-based contributor configuration, and updating workflows with pyyaml dependency. The Rust changes standardize parameter passing in HPKE encryption/decryption and OHTTP key fetching functions to use byte slice references rather than owned vectors. FFI dependencies are updated: uniffi-dart moves to an upstream repository tag, uniffi-bindgen-react-native updates to published npm version, and redundant cargo patch entries are removed. A Python async helper for OHTTP key fetching is introduced alongside corresponding test updates.

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants