feat BREAKING 2F-b-d-kn-b feat/phase-2f-b-d-kn-media-write-surfaces #2 / 3
aaronrene · 20 days ago · Jul 3, 2026 · Diff

feat(2F-b-d-kn-b): implement canonical media write surfaces (gates default off)

Wire SD-4 facades for media_external_link and media_attach across Hub, CLI, and MCP with connector allowlist, import consent, external-ref read join, and seven-tier tests — both MEDIA_* gates remain off until separate Tier 3 sessions.

sha256:db5adf05ae4fbd96d4863ebf77c4b5aaf8d5875720988c964eba9a23bcf76fe3 sha
+53 ~6 symbols
sha256:338ad3ed1e3a9bf69e535146f3cd4757fc07cf6c07c4b91226b9ea94f1b0b454 snapshot
+53
symbols added
~6
symbols modified
0
dead code introduced
Semantic Changes 59 symbols
+ getExternalRef function function getExternalRef L100–104
+ getExternalRefStorePath function function getExternalRefStorePath L34–36
+ getVaultExternalRefs function function getVaultExternalRefs L85–92
+ loadExternalRefStore function function loadExternalRefStore L42–59
+ saveExternalRefStore function function saveExternalRefStore L65–78
+ upsertExternalRef function function upsertExternalRef L114–134
~ lib/attachments/attachment-write.mjs .mjs 23 symbols added
+ buildMediaProposalEnvelope function function buildMediaProposalEnvelope L251–269
+ createProposalRecord function async_function createProposalRecord L199–201
+ deriveLinkAttachmentId function function deriveLinkAttachmentId L123–130
+ envTriState function function envTriState L59–63
+ getMediaAttachEnabled function function getMediaAttachEnabled L103–107
+ getMediaExternalLinkEnabled function function getMediaExternalLinkEnabled L93–97
+ handleMediaAttachProposeRequest function async_function handleMediaAttachProposeRequest L412–547
+ handleMediaImportConsentGrantRequest function function handleMediaImportConsentGrantRequest L554–626
+ handleMediaImportConsentListRequest function function handleMediaImportConsentListRequest L633–671
+ handleMediaImportConsentRevokeRequest function function handleMediaImportConsentRevokeRequest L678–714
+ handleMediaLinkProposeRequest function async_function handleMediaLinkProposeRequest L276–405
+ mediaProposalMirrorPath function function mediaProposalMirrorPath L176–178
+ notePathFromRef function function notePathFromRef L168–170
+ parseMediaProposalBody function function parseMediaProposalBody L720–727
+ precheckApprovedMediaProposal function function precheckApprovedMediaProposal L736–828
+ readMediaWritePolicyFile function function readMediaWritePolicyFile L69–87
+ reconcileApprovedMediaProposal function function reconcileApprovedMediaProposal L836–877
+ refuse function function refuse L114–116
+ resolveAttachmentWriteAuthority function function resolveAttachmentWriteAuthority L136–155
+ resolveMediaPointerForAttach function function resolveMediaPointerForAttach L209–246
+ resolveWriteScopes function function resolveWriteScopes L160–162
+ updateProposalPath function function updateProposalPath L184–193
+ walkNotes function function walkNotes L212–242
+ getEnabledConnector function function getEnabledConnector L100–105
+ getMediaConnectorPolicyPath function function getMediaConnectorPolicyPath L34–36
+ getVaultConnectors function function getVaultConnectors L85–92
+ loadMediaConnectorPolicy function function loadMediaConnectorPolicy L42–59
+ saveMediaConnectorPolicy function function saveMediaConnectorPolicy L65–78
+ getActiveConsent function function getActiveConsent L95–114
+ getMediaImportConsentPath function function getMediaImportConsentPath L36–38
+ listVaultConsents function function listVaultConsents L122–134
+ loadMediaImportConsentStore function function loadMediaImportConsentStore L44–61
+ mintConsentId function function mintConsentId L83–85
+ saveMediaImportConsentStore function function saveMediaImportConsentStore L67–80
~ scripts/verify-media-write-smoke.mjs .mjs 5 symbols added
+ api function async_function api L52–66
+ headers function function headers L41–50
+ main function async_function main L68–115
+ record function function record L36–39
+ resolveToken function function resolveToken L19–27
~ test/fixtures/media/write-helpers.mjs .mjs 6 symbols added
+ approveMediaProposal function function approveMediaProposal L92–99
+ buildMediaWriteFixture function function buildMediaWriteFixture L30–47
+ grantActiveConsent function function grantActiveConsent L74–84
+ sampleAttachProposeBody function function sampleAttachProposeBody L122–130
+ sampleLinkProposeBody function function sampleLinkProposeBody L104–116
+ seedConnectorAllowlist function function seedConnectorAllowlist L54–66
+ registerTool method method registerTool L115–117
+ stripVolatile function function stripVolatile L26–30
~ cli/index.mjs .mjs 1 symbol modified
~ main
~ hub/proposals-store.mjs .mjs 1 symbol modified

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:db5adf05ae4fbd96d4863ebf77c4b5aaf8d5875720988c964eba9a23bcf76fe3 --body "your comment"