feat(控制台): Console v2 P3 产物栏与 P2 fail-closed 收口 - #49
Merged
Conversation
Overlay artifacts live under .dyro/families/<parent>/artifacts.jsonl and a jailed artifacts/<id> path. Console GET list/metadata/image bytes stay read-only; video is a card. Pairing readers no longer hide CHANNEL_LOG_INCONSISTENT as unread 0. Version stays 0.7.7. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
SVG 命名空间与视频打开命令校验改为运行时拼接,满足页面资产扫描(无 http://、无 --yes/--push),清单摘要同步更新。 Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
读取 artifacts.jsonl / GET DTO 走与写入相同的标题拒绝表;手植路径标题不再回传。产物 ID 拒绝 ``..`` 子串,手列 foo..bar 不再出现在列表中。版本仍为 0.7.7。 Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Console v2 P3 overlay artifact rail on the existing workspace-detail page (channel/event panes, not a fourth tab). Version stays
0.7.7. Also folds leftover P2 fail-closed items from #47.What this does
Authority is overlay, not product git and not the Proof store:
.dyro/families/<parent>/artifacts.jsonl.dyro/families/<parent>/artifacts/<artifact-id>Allowed types:
review(JSON card),image(same-origin bearerfetch→blob:URL),chart(image bytes or on-page SVG points),video(card + copyable--dry-runopen command; no<video>, nomedia-src).HTTP is GET only:
GET /api/v1/workspaces/{alias}/families/{parent}/artifactsGET /api/v1/workspaces/{alias}/families/{parent}/artifacts/{id}ADR 0005 still holds: the only browser write is
POST .../families/{parent}/channel(decision|contract|ack). Artifact endpoints do not write. Inspection worker stays read-only (nopost_channel, no artifact mutation). Image path is jailed (no symlink, no.., size cap). List/get never scanoutputs/images/, harness home, or sidecar generator dirs.meta.surfaces/ capabilities gainartifacts. Overview polling still does not fetch artifacts. Channel rows of kindartifactusefacts.artifact_id; missing/unknown ids fail-closed (「产物不可用」, no fake preview).No new top-level CLI. Attach via
line post --kind artifactplus overlay files (plant_family_artifacthelper for tests). Nodyro artifact upload.Page assets still fail closed on the existing static scan: no
http:///https:///--yes/--pushliterals inapp.js. SVG namespace and video-command guards are assembled at runtime. Manifest digest/size updated.Leftover P2 fail-closed (same PR)
family_unacked/unread_by_memberno longer swallowCHANNEL_LOG_INCONSISTENTas unread 0; the broken family is surfaced (unread is notrepair_required).retracted_message_ids/channel_atpair-checkchannel.jsonllike the other readers.(family, id), not bareid.(family, id)even whenF(core)is empty.Follow-up from adversarial review of
c626bf8Planted
artifacts.jsonltitles that look like a path, URL, or credential are blanked on read (_decode_artifactandproject_artifactuse the same reject list as_artifact_title). Artifact ids reject a..substring, so hand-listedfoo..baris not listed. Generic planted-row pins intests/test_families.py.Non-goals (unchanged)
Page still cannot merge / push /
--yes/ change Task status. No media stream. No third-party chart library. No version bump. No line-merge--push --dry-runexpansion.Tests
Focused pins plus ruff on edited Python: overlay list/get, path jail, video card-only, missing
artifact_id, no sidecar scan, Host/bearer, worker mutation reject, the five P2 leftovers, collidingmsg_1family-scoping, planted path title blanked,foo..barid rejected, asset digest/manifest, and version0.7.7.