Skip to content

feat: ReplyFile response Resources for NomadNet file downloads - #26

Open
rinchen wants to merge 5 commits into
ratspeak:mainfrom
rinchen:feat/reply-file-response
Open

rinchen wants to merge 5 commits into
ratspeak:mainfrom
rinchen:feat/reply-file-response

Conversation

@rinchen

@rinchen rinchen commented Sep 9, 2026

Copy link
Copy Markdown

Summary

  • Add RequestOutcome::ReplyFile so hosts can return raw file bytes as a response Resource with msgpack {"name"} metadata (Python NomadNet serve_file parity).
  • Expose pack_file_name_metadata and return Resource metadata from LinkClient::query so clients can save under the correct filename.

Test plan

  • cargo test -p rns-runtime reply_file_starts
  • cargo test -p rns-runtime pack_file_name_metadata
  • cargo check -p rns-tools

Serve raw file bytes as a response Resource with optional msgpack
filename metadata, matching Python NomadNet serve_file behavior.
File response Resources (NomadNet serve_file) carry raw bytes plus
filename metadata; expose both so clients can save under the right name.
rinchen added a commit to Colorado-Mesh/rsNomad that referenced this pull request Sep 9, 2026
Cargo.lock was regenerated against ratspeak/rsReticulum#26; the prior main
SHA lacks ReplyFile/zeroize so CI cannot resolve the lock with --locked.
rinchen added a commit to Colorado-Mesh/mesh-client that referenced this pull request Sep 9, 2026
Watch ratspeak/rsReticulum#26 and ratspeak/rsLXMF#7 via RATSPEAK_STACK_PR_ENTRIES
so update warns when CI pins can be cleared. Drop the rsNomad pin now that #7
merged, and document the stacked-PR pin workflow.
rinchen added a commit to Colorado-Mesh/mesh-client that referenced this pull request Sep 9, 2026
Follow rustfmt push on ratspeak/rsReticulum#26 so CI clones the current
PR head.
rinchen added a commit to Colorado-Mesh/mesh-client that referenced this pull request Sep 9, 2026
#966)

* feat(reticulum): Nomad file metadata, image preview, LXMF media ingest

Prefer Resource filename metadata on Nomad /file downloads, preview common
rasters in the Nomad panel, ingest FIELD_IMAGE and multi-file attachments,
and add Save/Reveal controls on chat attachment lines.

Depends on ratspeak/rsReticulum#26, Colorado-Mesh/rsNomad#7, ratspeak/rsLXMF#7.

* ci(reticulum): pin stacked Ratspeak PRs; keep rmpv for stub

Sidecar CI floated siblings to main without ReplyFile / multi-file LXMF
APIs. Pin rsReticulum#26, rsLXMF#7, and rsNomad#7 heads, and make rmpv
non-optional so stub builds can parse Nomad Resource filename metadata.

* ci(reticulum): CI-only stack pins without forcing full Vitest

Editing tests.yaml forced vitest_mode=full and failed per-shard coverage.
Load temporary ratspeak-stack-ci-pins.env from clone-ratspeak-stack.sh when
CI=true instead, and restore tests.yaml to match main.

* fix(reticulum): only reuse attachment preview bytes for matching fetchKey

Avoid saving a previous image's cached data URL under a new attachment
filename if the selection changes mid-read.

* chore(reticulum): track stacked rsReticulum/rsLXMF PRs in pnpm update

Watch ratspeak/rsReticulum#26 and ratspeak/rsLXMF#7 via RATSPEAK_STACK_PR_ENTRIES
so update warns when CI pins can be cleared. Drop the rsNomad pin now that #7
merged, and document the stacked-PR pin workflow.

* ci(reticulum): bump rsReticulum pin to ReplyFile PR tip

Follow rustfmt push on ratspeak/rsReticulum#26 so CI clones the current
PR head.

* fix(deps): floor smol-toml for audit; add Nomad/chat attachment i18n

pnpm audit was failing Code quality on GHSA-7w5x-hrqm-74c2 via markdownlint-cli2; add the missing download/save/reveal locale keys so check:i18n stays green.
@rinchen
rinchen marked this pull request as draft September 9, 2026 21:37
@rinchen
rinchen marked this pull request as ready for review September 9, 2026 21:56
NomadNet .allowed ACLs need the peer identity on catch-all request
handlers; DestinationRequest already exposed it for per-path handlers.
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.

1 participant