Chris Lu
ef3acb0b0d
Match Go SaveVolumeInfo: check writability and propagate errors in save_vif
2 days ago
Chris Lu
fb03891cc6
Fix compilation: set_read_only_persist and set_writable return ()
These methods fire-and-forget save_vif internally, so gRPC callers
should not try to chain .map_err() on the unit return type.
2 days ago
Chris Lu
8b6a4a2528
Match Go Destroy: add only_empty parameter to reject non-empty volume deletion
2 days ago
Chris Lu
58021e6279
Match Go privateStoreHandler: use proper JSON error for unsupported methods
2 days ago
Chris Lu
b5d28b6a23
Match Go chunk manifest: add Accept-Ranges, Content-Disposition, filename fallback, MIME detection
2 days ago
Chris Lu
279fc77730
Match Go ParsePath: support _delta suffix on file IDs for sub-file addressing
2 days ago
Chris Lu
10f99fdfd2
Match Go VolumeEcShardsCopy: append to .ecj file instead of truncating
2 days ago
Chris Lu
1919a2468d
add docs
2 days ago
Chris Lu
8ed77f83f0
Match Go ReceiveFile: return protocol errors in response body, not gRPC status
3 days ago
Chris Lu
57232ad786
Fix raw body POST: only parse multipart when Content-Type contains form-data
3 days ago
Chris Lu
84f2004f04
Fix EC locate_needle: use get_actual_size for full needle size
3 days ago
Chris Lu
b074239112
Match Go TTL: preserve original unit when count fits in byte
3 days ago
Chris Lu
51c5be76ec
Make 5bytes the default feature for idx entry compatibility
3 days ago
Chris Lu
b2cb8b8bcb
deps: enable webp support
3 days ago
Chris Lu
05447e4eef
handlers: align upload parsing with Go
3 days ago
Chris Lu
6e5610cfe5
handlers: align range parsing and responses with Go
3 days ago
Chris Lu
4017e8e4e9
handlers: use meta-only reads for HEAD
3 days ago
Chris Lu
11c595b6c6
Match Go WriteNeedleBlob: dedup check before writing during replication
3 days ago
Chris Lu
c285e596c1
Match Go check_volume_data_integrity: verify all 10 entries, detect trailing corruption
3 days ago
Chris Lu
7bf2595ea8
Match Go read_super_block: apply replication override from .vif
3 days ago
Chris Lu
5405179b2d
Match Go VolumeTailSender: send needle_header on every chunk
3 days ago
Chris Lu
8a5b481efb
Match Go VolumeEcShardsCopy: set ignore_source_file_not_found for .vif
3 days ago
Chris Lu
97419af55a
Match Go ScrubVolume: count total_files even on scrub error
3 days ago
Chris Lu
497c98d861
Match Go ScrubEcVolume: accumulate total_files from EC shards
3 days ago
Chris Lu
d2681c5e07
Match Go crop params: default x1/y1 to 0 when not provided
3 days ago
Chris Lu
7109dffcee
Match Go download throttle: return JSON error instead of plain text
3 days ago
Chris Lu
8fa6f7642b
Match Go error behavior for truncated needle data in read_body_v2
Go's readNeedleDataVersion2 returns "index out of range %d" errors
(indices 1-7) when needle body or metadata fields are truncated.
Rust was silently tolerating truncation and returning Ok. Now returns
NeedleError::IndexOutOfRange with the matching index for each field.
3 days ago
Chris Lu
8434429f25
Match Go TTL Display: return empty string when unit is Empty
Go checks `t.Unit == Empty` separately and returns "" for TTLs
with nonzero count but Empty unit. Rust only checked is_empty()
(count==0 && unit==0), so count>0 with unit=0 would format as
"5 " instead of "".
3 days ago
Chris Lu
9e386184d4
Match Go VolumeUnmount: idempotent success when volume not found
3 days ago
Chris Lu
58156cabea
Match Go write_needle_blob monotonic appendAtNs via get_append_at_ns
3 days ago
Chris Lu
132c963097
Match Go throttle boundary: use <= instead of <, fix pretty JSON to 1-space
3 days ago
Chris Lu
e78bd10793
Emit EC heartbeat deltas on shard changes
3 days ago
Chris Lu
03de5c0813
Report remote storage info in heartbeats
3 days ago
Chris Lu
4fcbe1c6d4
Honor master preallocate in volume max
3 days ago
Chris Lu
139b06a01d
Match Go volume heartbeat pruning
3 days ago
Chris Lu
7f0b8e7b03
Delete expired EC volumes during heartbeat
3 days ago
Chris Lu
9e9b73f571
Match Go duplicate UUID heartbeat retries
3 days ago
Chris Lu
c67fba4b9d
Match Go heartbeat metric accounting
3 days ago
Chris Lu
b3cf5ee896
Match Go gRPC: EC multi-disk placement, per-shard mount/unmount, no auto-mount on reconstruct, streaming ReadAll/EcShardRead, ReceiveFile cleanup, version check, proxy streaming, redirect Content-Type
3 days ago
Chris Lu
e861f14aa4
Add CheckVolumeDataIntegrity on volume load matching Go
3 days ago
Chris Lu
886dac6fcb
Add per-shard EC mount/unmount, location predicate search, idx directory for EC
3 days ago
Chris Lu
11b9ac8efc
Add EC volume read and delete support in HTTP handlers
3 days ago
Chris Lu
7790843f5b
Match Go gRPC: tail header first-chunk-only, EC cleanup on failure, copy append mode, ecx rebuild, compact cancellation
3 days ago
Chris Lu
0b43e548f7
Add rebuild_ecx_file for EC index reconstruction from data shards
3 days ago
Chris Lu
96559a0958
Match Go WriteNeedleBlob V3 timestamp patching, fix makeup_diff double padding, count==0 read handling
3 days ago
Chris Lu
23bf5d5fa7
Match Go HTTP responses: omitempty fields, 2-space JSON indent, JWT JSON error, delete pretty/JSONP, 304 Last-Modified, raw write error
3 days ago
Chris Lu
b84f609f35
Match Go gRPC: VolumeCopy preallocation, EC NeedleStatus full read, error message wording
3 days ago
Chris Lu
7913b52b1e
Make heartbeat master config helpers pub for VolumeCopy preallocation
3 days ago
Chris Lu
11c8dc3447
Add read_ec_shard_needle for full needle reconstruction from local EC shards
3 days ago
Chris Lu
e5d15055ef
Match Go ScrubVolume INDEX mode dispatch; add VolumeCopy preallocation and EC NeedleStatus TODOs
3 days ago