FILE-001: File Upload System #135
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#135
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
Support uploading files (PDFs, images, documents) to the mesh for processing.
Current State
Intent payloads are JSON only. No file attachment support.
Missing Components
Upload API
Storage
Processing Pipeline
Intent Integration
Security
Acceptance Criteria
Related
Priority
HIGH - Required for document processing
Feature Triage Assessment
Scope: large
Risk: medium
Spec Alignment: misaligned
Summary: Adds a complete file upload system (HTTP endpoint, storage backends, processing pipeline, quotas, security) to the mesh.
Recommendation: Reject as-is. File hosting/storage is an external service concern, not mesh infrastructure. If document processing capabilities are needed, implement them as worker skills that read from external sources (S3 URLs, object store references) when an intent references a file — the mesh routes intents and spawns workers, it should not become a file server.
Rationale: Scope is large — requires 11+ new files (API route, storage abstraction with 2+ backends, metadata model, processing pipeline with 4 stages, security, quotas). Risk is medium due to security sensitivity (file validation, malware scanning, path traversal) and IO-heavy processing. Spec alignment is misaligned — the project's AGENTS.md defines the mesh as infrastructure that routes intents and spawns workers, not a web application that hosts upload endpoints and manages file storage. This feature describes a separate document processing service that happens to emit mesh intents, not mesh infrastructure itself. The mesh's job is routing and spawning; file upload, storage, and processing are worker/application concerns.
Labeled
blocked:needs-decision— unblock on Forgejo to dispatch to the fixer pipeline.⏸ Needs Decision
What needs to be decided?
blocked:needs-decisionlabel and the triage will create a decomposition issue.blocked:needs-decisionlabel and the triage will approve it.Blocking factors:
Scope: large Risk: high Spec: aligned Type: feature
Summary: Add comprehensive file upload support with storage backends, processing pipeline, and intent integration for document analysis.
Suggestion: Break into sub-issues by phase: Phase 1 — upload API endpoint, local FS storage, file type validation, size limits (core upload, 3-5 files). Phase 2 — processing pipeline as worker skills (text extraction, summarization, embedding) integrated via the existing intent/worker architecture. Phase 3 — S3 backend, OCR, access control, quotas, malware scanning. Each phase is independently shippable and testable.
Rationale: Scope is large because the issue spans multiple new subsystems (storage layer, processing pipeline, API, security) totaling well over 15 files. Risk is high due to security-sensitive operations (file I/O, malware, path traversal), IO-heavy workloads (upload/download), and integration with core intent routing and worker spawning, which are still partially incomplete per AGENTS.md (issues #98, #102). Spec alignment is positive — the system needs document processing and the worker architecture is well-suited to handle it, but the implementation must respect the infrastructure/agent separation.
To unblock: Remove the
blocked:needs-decisionlabel. The triage will apply the appropriate outcome based on your choice above.FILE-001 File Upload System — spec misaligned, closing as wontfix