summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-17 11:50:28 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-17 11:50:28 +0200
commit9d1d4a7af5844f50f168ff00818382ffe57c3452 (patch)
treeef555e1c46d992a2f3b1d06a0bd7f6b6ca9ab0b6 /docs
parent677775266217b08044fe734be78f0e1bc874d708 (diff)
downloadmeshbay-9d1d4a7af5844f50f168ff00818382ffe57c3452.tar.gz
docs: record the seek label mismatch as open
A seek now begins picture and sound together at the keyframe, but stream_init still reports the position that was asked for. §15.3 says what the fix costs and why it has not been made. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/MESHBAY_DESIGN.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md
index ef65995..05f6d73 100644
--- a/docs/MESHBAY_DESIGN.md
+++ b/docs/MESHBAY_DESIGN.md
@@ -2963,6 +2963,7 @@ account recovery, and the Windows port through packaging.
| **Free-text third-party search** | `tmdb_search_req` takes a member's query and spends the operator's per-credential quota with no rate limit and no per-member bound, where link previews carry both. §6.5's standing rule — a bound and a named adversary in the same commit — was not applied here |
| **Disk I/O on the node's event loop** | A chunk read-and-encrypt and every upload chunk write run in the message handler. On a spun-down or network-mounted root that stalls every group, every stream and the hub socket, which is `AV9`'s lesson with the disk in place of the mail server |
| **Node announcements are not bounded** | One account may announce unlimited distinct node keys, each a row plus an IP-log row under a one-year retention. Proof of possession is checked (**M8**); the count is not |
+| **A seek reports the position asked for, not the one delivered** | `stream_init.start` echoes the request, while the content begins at the keyframe before it — 7–11 s earlier on a real film with a 10 s keyframe interval. Picture and sound now begin there *together*, so what disagrees is the scrubber and not the film. The comment beside `seek_args` has said since it was written that the client is "told the value used rather than left to assume its own", and that is the one thing it does not do. The fix is a keyframe look-up before the spawn, needed only on the copy path and measured at 0.11–0.47 s per seek; that cost against a wrong label is the trade nobody has made yet |
| **Migrations run on SQLite only** | The chain reaches head and agrees with the models there (§12), which is not where it ships. A default or a constraint PostgreSQL refuses would still reach a deploy |
---