• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

archetech / archon / 23326062416
95%

Build:
DEFAULT BRANCH: main
Ran 20 Mar 2026 02:10AM UTC
Jobs 1
Files 22
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Mar 2026 02:07AM UTC coverage: 93.933% (-0.3%) from 94.2%
23326062416

push

github

web-flow
feat: stream large file uploads/downloads for multi-GB video support (#238)

* feat: stream large file uploads and downloads without memory buffering

Replaces the buffered file upload/download pipeline with an end-to-end
streaming approach that supports multi-GB video files without OOM:

- IPFS clients (Kubo + Helia): add addDataStream/getDataStream
- GatekeeperInterface: expose addDataStream/getDataStream
- Gatekeeper API: POST /ipfs/stream and GET /ipfs/stream/:cid endpoints
  with no body buffering, streaming response, client_max_body_size 0
- GatekeeperClient: addDataStream via axios (Node.js server-side)
- Keymaster: generateFileAssetFromStream, createFileStream, updateFileStream
- Keymaster API: POST /files and PUT /files/:id pipe req stream directly
  to IPFS (removes express.raw() 10MB limit)
- Browser UI (react-wallet + browser-extension): fetch with File as body
  streams upload; download uses direct gatekeeper URL (no JS memory)
- File input now accepts video/* in addition to pdf/doc/txt

Closes #208

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: count bytes during streaming when not provided in options

When the Python SDK (or CLI) calls POST /files without X-Options bytes,
generateFileAssetFromStream now wraps the stream in a counting generator
so the FileAsset records the correct byte count.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: proxy streaming uploads/downloads through drawbridge without buffering

The global express.raw() middleware in drawbridge was buffering the entire
request body before routing, causing PayloadTooLargeError for large files.

- Skip body-parsing for POST /api/v1/ipfs/stream (streams req directly)
- Add POST /ipfs/stream and GET /ipfs/stream/:cid routes to drawbridge
  v1router, proxying to gatekeeper via addDataStream/getDataStream
- Implement GatekeeperClient.getDataStream using axios responseType:stream
- Add /ipfs/stream/:cid to normalizePath for Prometheus metric... (continued)

1775 of 1963 branches covered (90.42%)

Branch coverage included in aggregate %.

32 of 42 new or added lines in 5 files covered. (76.19%)

3783 of 3954 relevant lines covered (95.68%)

1167.09 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
91.22
-1.27% packages/keymaster/src/keymaster-client.ts
2
95.36
-1.47% packages/gatekeeper/src/gatekeeper-client.ts
Jobs
ID Job ID Ran Files Coverage
1 23326062416.1 20 Mar 2026 02:10AM UTC 44
94.64
GitHub Action Run
Source Files on build 23326062416
  • Tree
  • List 22
  • Changed 20
  • Source Changed 5
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23326062416
  • eca94a06 on github
  • Prev Build on main (#23271148167)
  • Next Build on main (#23327013697)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc