fix: #22 yt-dlp-Medien- und YouTube-Transcript-Tools über den privaten Proxy bereitstellen #31

Merged
frank merged 8 commits from agent/issue-22-yt-dlp-medien-und-youtube-transcript-too into main 2026-07-17 15:08:05 +02:00
Owner

Änderungen

  • Typisierte MCP-Tools media_download und youtube_transcript
  • Capability-Aushandlung; Tools erscheinen nur bei verfügbarer, gepinnter yt-dlp-Installation
  • Isolierte Jobs mit Quota, Deadline, Prozessgruppen-Cancel und garantierter Bereinigung
  • Allowlist-basierte Formate, Impersonation-Profile und Zielhosts
  • Kurzlebige Artefakte mit SHA-256 und chunkweisem Streaming
  • Stabile Fehlerkategorien und begrenzte, redigierte Diagnosen
  • Transcript-Ausgabe als Text, JSON, VTT oder SRT
  • Betreiber-, Sicherheits- und Troubleshooting-Dokumentation

Verifikation

  • go vet ./...
  • go test ./...
  • End-to-End-Test über MCP, Tunnel und Private Proxy einschließlich Größe, SHA-256 und Artefaktstream
  • Tests für CLI-Injection, Limits, Cancel, Cleanup sowie manuelle/automatische JSON-/VTT-Transkripte

Drei Commits wurden auf den Issue-Branch gepusht; der Arbeitsbaum ist sauber.
Ich prüfe die Branch-Implementierung gegen die Akzeptanzkriterien, ergänze nur klar abgegrenzte Lücken und liefere jeden logischen Teil sofort als Commit und Push.Die Kernfunktionen sind vorhanden. Ich schließe nun die verbleibende Fallback-/Deadline-Lücke im Transcript-Runner und ergänze gezielte Regressionstests.Die neuen Regressionstests sind ergänzt. Der vollständige Go-Testlauf benötigt außerhalb der Sandbox Zugriff auf den Go-Build-Cache; ich wiederhole ihn mit freigegebenem Cache-Zugriff.Transcript-Jobs nutzen jetzt serverseitig dieselbe Deadline-Grenze wie Downloads; prefer_manual fällt bei einem yt-dlp-„subtitles missing“-Exit gezielt auf automatische Untertitel zurück. Alle Go-Tests bestehen.Der Tunnel-E2E-Test validierte bisher nur das Medienartefakt. Ich erweitere ihn um manuelle und automatische Untertitel über den vollständigen MCP-/Proxy-Pfad für JSON und VTT.Der End-to-End-Test deckt jetzt Mediengröße/Prüfsumme sowie manuelle JSON- und automatische VTT-Transkripte durch den Tunnel ab; die betroffenen Pakete bestehen.Beide Test-Ergänzungen sind als getrennte Commits gepusht. Ich führe noch den vollständigen Suite-Lauf und einen sauberen Worktree-Check aus.PR_TITLE: feat(media): harden yt-dlp media and transcript proxy tools

PR_BODY:

  • Added transcript deadline enforcement and reliable prefer_manual fallback.
  • Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts.
  • Full go test ./... passes.

Remaining gaps before Issue #22 is fully complete:

  • translation_language does not perform translation; it currently only changes the requested subtitle language while reporting translated: true.
  • yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy.
  • Media-specific rate limiting is not implemented.
    Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.PR_TITLE: feat(media): yt-dlp downloads and YouTube transcripts via private proxy

PR_BODY:
Validated current branch: test suite, vet, and diff checks pass.

Remaining scope gaps:

  • yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked.
  • No MCP progress notifications are emitted for media jobs.
  • No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider.

No additional safe, focused patch can close these architectural gaps.
Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab.Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.fix(media): restrict initial destination ports ist mit Konfigurations- und Runner-Regressionstests committed.Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.PR_TITLE: feat(media): proxy yt-dlp downloads and transcripts

PR_BODY:
Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests.

Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented.

## Änderungen - Typisierte MCP-Tools `media_download` und `youtube_transcript` - Capability-Aushandlung; Tools erscheinen nur bei verfügbarer, gepinnter yt-dlp-Installation - Isolierte Jobs mit Quota, Deadline, Prozessgruppen-Cancel und garantierter Bereinigung - Allowlist-basierte Formate, Impersonation-Profile und Zielhosts - Kurzlebige Artefakte mit SHA-256 und chunkweisem Streaming - Stabile Fehlerkategorien und begrenzte, redigierte Diagnosen - Transcript-Ausgabe als Text, JSON, VTT oder SRT - Betreiber-, Sicherheits- und Troubleshooting-Dokumentation ## Verifikation - `go vet ./...` - `go test ./...` - End-to-End-Test über MCP, Tunnel und Private Proxy einschließlich Größe, SHA-256 und Artefaktstream - Tests für CLI-Injection, Limits, Cancel, Cleanup sowie manuelle/automatische JSON-/VTT-Transkripte Drei Commits wurden auf den Issue-Branch gepusht; der Arbeitsbaum ist sauber. Ich prüfe die Branch-Implementierung gegen die Akzeptanzkriterien, ergänze nur klar abgegrenzte Lücken und liefere jeden logischen Teil sofort als Commit und Push.Die Kernfunktionen sind vorhanden. Ich schließe nun die verbleibende Fallback-/Deadline-Lücke im Transcript-Runner und ergänze gezielte Regressionstests.Die neuen Regressionstests sind ergänzt. Der vollständige Go-Testlauf benötigt außerhalb der Sandbox Zugriff auf den Go-Build-Cache; ich wiederhole ihn mit freigegebenem Cache-Zugriff.Transcript-Jobs nutzen jetzt serverseitig dieselbe Deadline-Grenze wie Downloads; `prefer_manual` fällt bei einem yt-dlp-„subtitles missing“-Exit gezielt auf automatische Untertitel zurück. Alle Go-Tests bestehen.Der Tunnel-E2E-Test validierte bisher nur das Medienartefakt. Ich erweitere ihn um manuelle und automatische Untertitel über den vollständigen MCP-/Proxy-Pfad für JSON und VTT.Der End-to-End-Test deckt jetzt Mediengröße/Prüfsumme sowie manuelle JSON- und automatische VTT-Transkripte durch den Tunnel ab; die betroffenen Pakete bestehen.Beide Test-Ergänzungen sind als getrennte Commits gepusht. Ich führe noch den vollständigen Suite-Lauf und einen sauberen Worktree-Check aus.PR_TITLE: feat(media): harden yt-dlp media and transcript proxy tools PR_BODY: - Added transcript deadline enforcement and reliable `prefer_manual` fallback. - Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts. - Full `go test ./...` passes. Remaining gaps before Issue #22 is fully complete: - `translation_language` does not perform translation; it currently only changes the requested subtitle language while reporting `translated: true`. - yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy. - Media-specific rate limiting is not implemented. Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.PR_TITLE: feat(media): yt-dlp downloads and YouTube transcripts via private proxy PR_BODY: Validated current branch: test suite, vet, and diff checks pass. Remaining scope gaps: - yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked. - No MCP progress notifications are emitted for media jobs. - No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider. No additional safe, focused patch can close these architectural gaps. Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab.Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.`fix(media): restrict initial destination ports` ist mit Konfigurations- und Runner-Regressionstests committed.Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.PR_TITLE: feat(media): proxy yt-dlp downloads and transcripts PR_BODY: Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests. Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented.
Author
Owner

🚧 WIP pull request opened — linked to issue #22. Agent is working…

🚧 **WIP pull request opened** — linked to issue #22. Agent is working…
Author
Owner

💭 Agent progress

Planning implementation and inspection
Ich prüfe zunächst Architektur, bestehende Proxy-/MCP-Schnittstellen und Repository-Vorgaben und teile die Umsetzung anschließend in kleine, direkt gepushte Commits.

💭 **Agent progress** **Planning implementation and inspection** Ich prüfe zunächst Architektur, bestehende Proxy-/MCP-Schnittstellen und Repository-Vorgaben und teile die Umsetzung anschließend in kleine, direkt gepushte Commits.
Author
Owner

💭 Agent progress

Inspecting architecture overview

💭 **Agent progress** **Inspecting architecture overview**
Author
Owner

💭 Agent progress

Planning private server setup

💭 **Agent progress** **Planning private server setup**
Author
Owner

💭 Agent progress

Planning chunked artifact streaming

💭 **Agent progress** **Planning chunked artifact streaming**
Author
Owner

💭 Agent progress

Designing mediaexec protocol envelope

Implementing artifact streaming endpoint

Adding capability header to listener
Die vorhandene Tunnelstrecke unterstützt nur kleine HTTP-Antworten. Die Medienfunktion erhält daher einen eigenen typisierten Tunnelauftrag sowie einen Proxy-lokalen Artefaktspeicher; Binärdaten werden anschließend stückweise über einen kurzlebigen, opaken Artefakt-Endpunkt übertragen. Tools werden nur bei erkannter Proxy-Capability registriert.

💭 **Agent progress** **Designing mediaexec protocol envelope** **Implementing artifact streaming endpoint** **Adding capability header to listener** Die vorhandene Tunnelstrecke unterstützt nur kleine HTTP-Antworten. Die Medienfunktion erhält daher einen eigenen typisierten Tunnelauftrag sowie einen Proxy-lokalen Artefaktspeicher; Binärdaten werden anschließend stückweise über einen kurzlebigen, opaken Artefakt-Endpunkt übertragen. Tools werden nur bei erkannter Proxy-Capability registriert.
Author
Owner

💭 Agent progress

Planning dynamic tool registration and capability synchronization

Implementing capability-based tool management callbacks

💭 **Agent progress** **Planning dynamic tool registration and capability synchronization** **Implementing capability-based tool management callbacks**
Author
Owner

💭 Agent progress

Designing media runner process handling

Implementing media output handling and quotas

💭 **Agent progress** **Designing media runner process handling** **Implementing media output handling and quotas**
Author
Owner

💭 Agent progress

Fixing watcher cancel behavior and PATH handling

💭 **Agent progress** **Fixing watcher cancel behavior and PATH handling**
Author
Owner

💭 Agent progress

Planning test helper environment setup

Designing shell script output parsing and testing

💭 **Agent progress** **Planning test helper environment setup** **Designing shell script output parsing and testing**
Author
Owner

💭 Agent progress

Fixing hash and quota watcher race

💭 **Agent progress** **Fixing hash and quota watcher race**
feat(media): add constrained yt-dlp execution engine
All checks were successful
Go CI / Vet and test (pull_request) Successful in 2m51s
Go CI / Vet and test (push) Successful in 2m51s
8948f45a4e
Author
Owner

💭 Agent progress

Planning proxyexec envelope integration
Die isolierte yt-dlp-Engine ist als erster Commit gepusht. Sie erzwingt Allowlist-Profile, URL-/Größen-/Zeitlimits, Prozessgruppen-Abbruch, Quota-Überwachung, begrenzte redigierte Diagnosen, Prüfsummen und TTL-bereinigte Artefakte; Fake-Binary-Tests decken Injection, Transcript-Konvertierung und Cancel ab. Als Nächstes folgt die Capability-gesteuerte Tunnelintegration.

💭 **Agent progress** **Planning proxyexec envelope integration** Die isolierte yt-dlp-Engine ist als erster Commit gepusht. Sie erzwingt Allowlist-Profile, URL-/Größen-/Zeitlimits, Prozessgruppen-Abbruch, Quota-Überwachung, begrenzte redigierte Diagnosen, Prüfsummen und TTL-bereinigte Artefakte; Fake-Binary-Tests decken Injection, Transcript-Konvertierung und Cancel ab. Als Nächstes folgt die Capability-gesteuerte Tunnelintegration.
Author
Owner

💭 Agent progress

Designing backward-compatible request parsing

Implementing capability upgrades and error handling

💭 **Agent progress** **Designing backward-compatible request parsing** **Implementing capability upgrades and error handling**
Author
Owner

💭 Agent progress

Planning direct upgrade call tests

💭 **Agent progress** **Planning direct upgrade call tests**
Author
Owner

💭 Agent progress

Fixing variadic function signatures and shutdown notifications

💭 **Agent progress** **Fixing variadic function signatures and shutdown notifications**
Author
Owner

💭 Agent progress

Implementing media connector tests and version checks

Enforcing media version validation and network policies

Designing artifact HTTP chunk handler

Designing media capability and artifact routing

Standardizing media error handling and transcript output

💭 **Agent progress** **Implementing media connector tests and version checks** **Enforcing media version validation and network policies** **Designing artifact HTTP chunk handler** **Designing media capability and artifact routing** **Standardizing media error handling and transcript output**
Author
Owner

💭 Agent progress

Implementing dynamic artifact handler and server config interfaces

Adding HTTP artifact base URL logic and timeout configs

💭 **Agent progress** **Implementing dynamic artifact handler and server config interfaces** **Adding HTTP artifact base URL logic and timeout configs**
Author
Owner

💭 Agent progress

Inspecting patch methods in New

💭 **Agent progress** **Inspecting patch methods in New**
Author
Owner

💭 Agent progress

Investigating cmd.Wait hang in parallel tests

Adding mock capability and artifact tests

💭 **Agent progress** **Investigating cmd.Wait hang in parallel tests** **Adding mock capability and artifact tests**
Author
Owner

💭 Agent progress

Planning end-to-end media acceptance testing

Extending transcript mode testing and fallback handling

Refactoring subtitle filename parsing and fallback

💭 **Agent progress** **Planning end-to-end media acceptance testing** **Extending transcript mode testing and fallback handling** **Refactoring subtitle filename parsing and fallback**
Author
Owner

💭 Agent progress

Implementing fallback for duplicate output

💭 **Agent progress** **Implementing fallback for duplicate output**
Author
Owner

💭 Agent progress

Planning e2e media test integration

Implementing transcript runner URL bypass

💭 **Agent progress** **Planning e2e media test integration** **Implementing transcript runner URL bypass**
Author
Owner

💭 Agent progress

Removing unused strings and adding JSON encoding

💭 **Agent progress** **Removing unused strings and adding JSON encoding**
Author
Owner

💭 Agent progress

Adding config decode defaults and tunnel tests

Enforcing YouTube URL validation in allowlist

💭 **Agent progress** **Adding config decode defaults and tunnel tests** **Enforcing YouTube URL validation in allowlist**
Author
Owner

💭 Agent progress

Committing and pushing changes

💭 **Agent progress** **Committing and pushing changes**
feat(mcp): expose media tools through proxy tunnel
Some checks failed
Go CI / Vet and test (pull_request) Has been cancelled
Go CI / Vet and test (push) Has been cancelled
ab90f107a1
Author
Owner

💭 Agent progress

Planning docs with pinned version placeholders

Deciding on example version usage
Die Capability-Aushandlung, dynamische Toolliste, typisierten Medien-/Transcript-Tunnelaufrufe und der chunkweise Artefakt-Download sind im zweiten Commit gepusht. Der End-to-End-Test führt ein frei nutzbares Fixture durch MCP, Tunnel und Proxy aus und prüft Größe, SHA-256 und gestreamte Bytes. Abschließend ergänze ich Betreiberkonfiguration und Troubleshooting.

💭 **Agent progress** **Planning docs with pinned version placeholders** **Deciding on example version usage** Die Capability-Aushandlung, dynamische Toolliste, typisierten Medien-/Transcript-Tunnelaufrufe und der chunkweise Artefakt-Download sind im zweiten Commit gepusht. Der End-to-End-Test führt ein frei nutzbares Fixture durch MCP, Tunnel und Proxy aus und prüft Größe, SHA-256 und gestreamte Bytes. Abschließend ergänze ich Betreiberkonfiguration und Troubleshooting.
Author
Owner

💭 Agent progress

Documenting installation and config details

Identifying outbound request control gap

💭 **Agent progress** **Documenting installation and config details** **Identifying outbound request control gap**
Author
Owner

💭 Agent progress

Adding config validation tests

💭 **Agent progress** **Adding config validation tests**
Author
Owner

💭 Agent progress

Adding version mismatch and transcript tests

Extending transcript tests for multiple formats

💭 **Agent progress** **Adding version mismatch and transcript tests** **Extending transcript tests for multiple formats**
Author
Owner

💭 Agent progress

Planning citation approach for docs

Drafting documentation references and links

💭 **Agent progress** **Planning citation approach for docs** **Drafting documentation references and links**
Author
Owner

💭 Agent progress

Planning commit operation

💭 **Agent progress** **Planning commit operation**
docs(media): document pinned binaries and operating limits
Some checks failed
Go CI / Vet and test (push) Has been cancelled
Go CI / Vet and test (pull_request) Has been cancelled
995592ef71
Author
Owner

💭 Agent progress

Running code vet and auditing connector shutdown
Die Betreiber-Dokumentation ist im dritten Commit gepusht: gepinnte yt-dlp-/FFmpeg-Versionen, Capability-Verhalten, Limits, Rechtehinweis, Artefakt-Sicherheitsmodell und Troubleshooting. Ergänzt sind Konfigurationsvalidierung sowie manuelle/automatische Transcript-Fixtures für JSON und VTT. Ich führe noch den abschließenden Branch- und statischen Prüfstatus aus.

💭 **Agent progress** **Running code vet and auditing connector shutdown** Die Betreiber-Dokumentation ist im dritten Commit gepusht: gepinnte yt-dlp-/FFmpeg-Versionen, Capability-Verhalten, Limits, Rechtehinweis, Artefakt-Sicherheitsmodell und Troubleshooting. Ergänzt sind Konfigurationsvalidierung sowie manuelle/automatische Transcript-Fixtures für JSON und VTT. Ich führe noch den abschließenden Branch- und statischen Prüfstatus aus.
Author
Owner

💭 Agent progress

Verifying subtitle translation handling

Identifying yt-dlp environment PATH issue

Validating JSON schema array items

💭 **Agent progress** **Verifying subtitle translation handling** **Identifying yt-dlp environment PATH issue** **Validating JSON schema array items**
Author
Owner

🔍 Verifying implementation (attempt 1/3)

🔍 **Verifying implementation** (attempt 1/3)
Author
Owner

💭 Agent progress

Drafting final PR title and summary

Änderungen

  • Typisierte MCP-Tools media_download und youtube_transcript
  • Capability-Aushandlung; Tools erscheinen nur bei verfügbarer, gepinnter yt-dlp-Installation
  • Isolierte Jobs mit Quota, Deadline, Prozessgruppen-Cancel und garantierter Bereinigung
  • Allowlist-basierte Formate, Impersonation-Profile und Zielhosts
  • Kurzlebige Artefakte mit SHA-256 und chunkweisem Streaming
  • Stabile Fehlerkategorien und begrenzte, redigierte Diagnosen
  • Transcript-Ausgabe als Text, JSON, VTT oder SRT
  • Betreiber-, Sicherheits- und Troubleshooting-Dokumentation

Verifikation

  • go vet ./...
  • go test ./...
  • End-to-End-Test über MCP, Tunnel und Private Proxy einschließlich Größe, SHA-256 und Artefaktstream
  • Tests für CLI-Injection, Limits, Cancel, Cleanup sowie manuelle/automatische JSON-/VTT-Transkripte
    Drei Commits wurden auf den Issue-Branch gepusht; der Arbeitsbaum ist sauber.

Planning GitHub issue exploration
Ich prüfe die Branch-Implementierung gegen die Akzeptanzkriterien, ergänze nur klar abgegrenzte Lücken und liefere jeden logischen Teil sofort als Commit und Push.

💭 **Agent progress** **Drafting final PR title and summary** ## Änderungen - Typisierte MCP-Tools `media_download` und `youtube_transcript` - Capability-Aushandlung; Tools erscheinen nur bei verfügbarer, gepinnter yt-dlp-Installation - Isolierte Jobs mit Quota, Deadline, Prozessgruppen-Cancel und garantierter Bereinigung - Allowlist-basierte Formate, Impersonation-Profile und Zielhosts - Kurzlebige Artefakte mit SHA-256 und chunkweisem Streaming - Stabile Fehlerkategorien und begrenzte, redigierte Diagnosen - Transcript-Ausgabe als Text, JSON, VTT oder SRT - Betreiber-, Sicherheits- und Troubleshooting-Dokumentation ## Verifikation - `go vet ./...` - `go test ./...` - End-to-End-Test über MCP, Tunnel und Private Proxy einschließlich Größe, SHA-256 und Artefaktstream - Tests für CLI-Injection, Limits, Cancel, Cleanup sowie manuelle/automatische JSON-/VTT-Transkripte Drei Commits wurden auf den Issue-Branch gepusht; der Arbeitsbaum ist sauber. **Planning GitHub issue exploration** Ich prüfe die Branch-Implementierung gegen die Akzeptanzkriterien, ergänze nur klar abgegrenzte Lücken und liefere jeden logischen Teil sofort als Commit und Push.
Author
Owner

💭 Agent progress

Inspecting files and tests before commit

💭 **Agent progress** **Inspecting files and tests before commit**
Author
Owner

💭 Agent progress

Identifying redirect policy gaps in yt-dlp

Fixing transcript fallback and concurrency handling

Assessing translation language support limitations
Die Kernfunktionen sind vorhanden. Ich schließe nun die verbleibende Fallback-/Deadline-Lücke im Transcript-Runner und ergänze gezielte Regressionstests.

💭 **Agent progress** **Identifying redirect policy gaps in yt-dlp** **Fixing transcript fallback and concurrency handling** **Assessing translation language support limitations** Die Kernfunktionen sind vorhanden. Ich schließe nun die verbleibende Fallback-/Deadline-Lücke im Transcript-Runner und ergänze gezielte Regressionstests.
Author
Owner

💭 Agent progress

Planning redirect policy enforcement

Planning transcript handling improvements

💭 **Agent progress** **Planning redirect policy enforcement** **Planning transcript handling improvements**
Author
Owner

💭 Agent progress

Planning gofmt tests
Die neuen Regressionstests sind ergänzt. Der vollständige Go-Testlauf benötigt außerhalb der Sandbox Zugriff auf den Go-Build-Cache; ich wiederhole ihn mit freigegebenem Cache-Zugriff.

💭 **Agent progress** **Planning gofmt tests** Die neuen Regressionstests sind ergänzt. Der vollständige Go-Testlauf benötigt außerhalb der Sandbox Zugriff auf den Go-Build-Cache; ich wiederhole ihn mit freigegebenem Cache-Zugriff.
Author
Owner

💭 Agent progress

Planning incremental git commits and pushes

💭 **Agent progress** **Planning incremental git commits and pushes**
Author
Owner

💭 Agent progress

Committing recent changes
Transcript-Jobs nutzen jetzt serverseitig dieselbe Deadline-Grenze wie Downloads; prefer_manual fällt bei einem yt-dlp-„subtitles missing“-Exit gezielt auf automatische Untertitel zurück. Alle Go-Tests bestehen.

💭 **Agent progress** **Committing recent changes** Transcript-Jobs nutzen jetzt serverseitig dieselbe Deadline-Grenze wie Downloads; `prefer_manual` fällt bei einem yt-dlp-„subtitles missing“-Exit gezielt auf automatische Untertitel zurück. Alle Go-Tests bestehen.
fix(media): bound transcript jobs and fallback captions
Some checks failed
Go CI / Vet and test (push) Has been cancelled
Go CI / Vet and test (pull_request) Has been cancelled
1ca96670fa
Author
Owner

💭 Agent progress

Revising translation capability handling

Clarifying translation support limitations

Identifying missing redirect policy enforcement

Identifying missing implementations and TODOs

💭 **Agent progress** **Revising translation capability handling** **Clarifying translation support limitations** **Identifying missing redirect policy enforcement** **Identifying missing implementations and TODOs**
Author
Owner

💭 Agent progress

Planning E2E transcript test addition

Identifying missing E2E test scenarios

💭 **Agent progress** **Planning E2E transcript test addition** **Identifying missing E2E test scenarios**
Author
Owner

💭 Agent progress

Adding call modes and formats
Der Tunnel-E2E-Test validierte bisher nur das Medienartefakt. Ich erweitere ihn um manuelle und automatische Untertitel über den vollständigen MCP-/Proxy-Pfad für JSON und VTT.

💭 **Agent progress** **Adding call modes and formats** Der Tunnel-E2E-Test validierte bisher nur das Medienartefakt. Ich erweitere ihn um manuelle und automatische Untertitel über den vollständigen MCP-/Proxy-Pfad für JSON und VTT.
Author
Owner

💭 Agent progress

Adding missing imports

💭 **Agent progress** **Adding missing imports**
Author
Owner

💭 Agent progress

Adding patch imports

💭 **Agent progress** **Adding patch imports**
Author
Owner

💭 Agent progress

Pushing code commit
Der End-to-End-Test deckt jetzt Mediengröße/Prüfsumme sowie manuelle JSON- und automatische VTT-Transkripte durch den Tunnel ab; die betroffenen Pakete bestehen.

💭 **Agent progress** **Pushing code commit** Der End-to-End-Test deckt jetzt Mediengröße/Prüfsumme sowie manuelle JSON- und automatische VTT-Transkripte durch den Tunnel ab; die betroffenen Pakete bestehen.
test(mcp): cover transcript tunnel flow
Some checks failed
Go CI / Vet and test (push) Has been cancelled
Go CI / Vet and test (pull_request) Has been cancelled
e9331e9e66
Author
Owner

💭 Agent progress

Running full test suite
Beide Test-Ergänzungen sind als getrennte Commits gepusht. Ich führe noch den vollständigen Suite-Lauf und einen sauberen Worktree-Check aus.

💭 **Agent progress** **Running full test suite** Beide Test-Ergänzungen sind als getrennte Commits gepusht. Ich führe noch den vollständigen Suite-Lauf und einen sauberen Worktree-Check aus.
Author
Owner

🔍 Verifying implementation (attempt 2/3)

🔍 **Verifying implementation** (attempt 2/3)
Author
Owner

💭 Agent progress

Assessing coverage of redirect and rate limit policies

Summarizing missing rate support and open todos

Identifying missing translation and cancellation tests

  • Added transcript deadline enforcement and reliable prefer_manual fallback.
  • Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts.
  • Full go test ./... passes.
    Remaining gaps before Issue #22 is fully complete:
  • translation_language does not perform translation; it currently only changes the requested subtitle language while reporting translated: true.
  • yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy.
  • Media-specific rate limiting is not implemented.

Clarifying GitHub usage and commentary needs
Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.

💭 **Agent progress** **Assessing coverage of redirect and rate limit policies** **Summarizing missing rate support and open todos** **Identifying missing translation and cancellation tests** - Added transcript deadline enforcement and reliable `prefer_manual` fallback. - Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts. - Full `go test ./...` passes. Remaining gaps before Issue #22 is fully complete: - `translation_language` does not perform translation; it currently only changes the requested subtitle language while reporting `translated: true`. - yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy. - Media-specific rate limiting is not implemented. **Clarifying GitHub usage and commentary needs** Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.
Author
Owner

💭 Agent progress

Planning comprehensive code diff inspection

💭 **Agent progress** **Planning comprehensive code diff inspection**
Author
Owner

💭 Agent progress

Inspecting media pathways and configs

💭 **Agent progress** **Inspecting media pathways and configs**
Author
Owner

💭 Agent progress

Assessing yt-dlp and ffmpeg process handling

💭 **Agent progress** **Assessing yt-dlp and ffmpeg process handling**
Author
Owner

💭 Agent progress

Verifying TODO coverage

💭 **Agent progress** **Verifying TODO coverage**
Author
Owner

💭 Agent progress

Identifying MCP server configuration

💭 **Agent progress** **Identifying MCP server configuration**
Author
Owner

💭 Agent progress

Assessing subtitle translation limitations

Identifying yt-dlp config injection risks

Evaluating output quota sizing

Identifying security gaps in yt-dlp networking

Evaluating proxy-based policy enforcement options

💭 **Agent progress** **Assessing subtitle translation limitations** **Identifying yt-dlp config injection risks** **Evaluating output quota sizing** **Identifying security gaps in yt-dlp networking** **Evaluating proxy-based policy enforcement options**
Author
Owner

💭 Agent progress

Identifying critical artifact bugs

Assessing sidecar and subtitle translation support

Evaluating translation fallback and proxy options

Verifying redirect and certificate handling

Confirming test coverage and acceptance
Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.

💭 **Agent progress** **Identifying critical artifact bugs** **Assessing sidecar and subtitle translation support** **Evaluating translation fallback and proxy options** **Verifying redirect and certificate handling** **Confirming test coverage and acceptance** Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.
Author
Owner

🔍 Verifying implementation (attempt 3/3)

🔍 **Verifying implementation** (attempt 3/3)
Author
Owner

💭 Agent progress

Evaluating end-to-end test realism

Assessing proxy and redirect policy gaps

Planning provider interface refactor

Identifying URL validation bug in transcript code

Planning proxy support and transcript fallback config

Preparing final gap summary and verification

Fixing translation logic handling

Planning egress policy implementation
Validated current branch: test suite, vet, and diff checks pass.
Remaining scope gaps:

  • yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked.
  • No MCP progress notifications are emitted for media jobs.
  • No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider.
    No additional safe, focused patch can close these architectural gaps.

Inspecting project files and tests
Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.

💭 **Agent progress** **Evaluating end-to-end test realism** **Assessing proxy and redirect policy gaps** **Planning provider interface refactor** **Identifying URL validation bug in transcript code** **Planning proxy support and transcript fallback config** **Preparing final gap summary and verification** **Fixing translation logic handling** **Planning egress policy implementation** Validated current branch: test suite, vet, and diff checks pass. Remaining scope gaps: - yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked. - No MCP progress notifications are emitted for media jobs. - No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider. No additional safe, focused patch can close these architectural gaps. **Inspecting project files and tests** Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.
Author
Owner

💭 Agent progress

Planning full diff comparison

💭 **Agent progress** **Planning full diff comparison**
Author
Owner

💭 Agent progress

Planning to read remaining config and tunnel details

💭 **Agent progress** **Planning to read remaining config and tunnel details**
Author
Owner

💭 Agent progress

Inspecting validateMedia vulnerability

💭 **Agent progress** **Inspecting validateMedia vulnerability**
Author
Owner

💭 Agent progress

Identifying Unix process group gaps

💭 **Agent progress** **Identifying Unix process group gaps**
Author
Owner

💭 Agent progress

Hardening validation and network policies

Checking git branch remote status

Investigating artifact serving and quota race

Analyzing format profile parsing and subtitle translation

Considering exposing resolution function in httpexec

Planning yt-dlp integration with proxy and process cleanup

Fixing MIME metadata and handling optional translation

Enforcing output size limits and refining process group handling

Designing media network policy enhancements

Evaluating yt-dlp redirect and translation handling gaps
Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab.

Designing client profile validation rules

Adding allowed ports and private IP rejection

Planning config validation tests

💭 **Agent progress** **Hardening validation and network policies** **Checking git branch remote status** **Investigating artifact serving and quota race** **Analyzing format profile parsing and subtitle translation** **Considering exposing resolution function in httpexec** **Planning yt-dlp integration with proxy and process cleanup** **Fixing MIME metadata and handling optional translation** **Enforcing output size limits and refining process group handling** **Designing media network policy enhancements** **Evaluating yt-dlp redirect and translation handling gaps** Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab. **Designing client profile validation rules** **Adding allowed ports and private IP rejection** **Planning config validation tests**
Author
Owner

💭 Agent progress

Implementing media port restriction with validation

💭 **Agent progress** **Implementing media port restriction with validation**
Author
Owner

💭 Agent progress

Adding net/netip import

💭 **Agent progress** **Adding net/netip import**
Author
Owner

💭 Agent progress

Assessing uint16 port parsing issue

💭 **Agent progress** **Assessing uint16 port parsing issue**
Author
Owner

💭 Agent progress

Planning gofmt tests

💭 **Agent progress** **Planning gofmt tests**
Author
Owner

💭 Agent progress

Inspecting test cache influence
Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.

💭 **Agent progress** **Inspecting test cache influence** Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.
Author
Owner

💭 Agent progress

Verifying changes before push

💭 **Agent progress** **Verifying changes before push**
Author
Owner

💭 Agent progress

Refining IP publicness checks

Considering prefix list for validation

💭 **Agent progress** **Refining IP publicness checks** **Considering prefix list for validation**
Author
Owner

💭 Agent progress

Designing NetworkPolicy integration in Runner

Refactoring URL validation with context and resolver injection

💭 **Agent progress** **Designing NetworkPolicy integration in Runner** **Refactoring URL validation with context and resolver injection**
Author
Owner

💭 Agent progress

Preparing SSRF and path traversal tests

💭 **Agent progress** **Preparing SSRF and path traversal tests**
Author
Owner

💭 Agent progress

Retrying escalate before commit

💭 **Agent progress** **Retrying escalate before commit**
Author
Owner

💭 Agent progress

Preparing immediate push
fix(media): restrict initial destination ports ist mit Konfigurations- und Runner-Regressionstests committed.

💭 **Agent progress** **Preparing immediate push** `fix(media): restrict initial destination ports` ist mit Konfigurations- und Runner-Regressionstests committed.
fix(media): restrict initial destination ports
Some checks failed
Go CI / Vet and test (push) Has been cancelled
Go CI / Vet and test (pull_request) Has been cancelled
4749fe4b61
Author
Owner

💭 Agent progress

Identifying missing rate limiting implementation

Planning rate limiter implementation using golang rate

Designing media rate limiting

Adding rate limit config and tests
Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.

💭 **Agent progress** **Identifying missing rate limiting implementation** **Planning rate limiter implementation using golang rate** **Designing media rate limiting** **Adding rate limit config and tests** Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.
Author
Owner

💭 Agent progress

Identifying DoS risk in rate limiter

Implementing cancellation tests for rate limiter

💭 **Agent progress** **Identifying DoS risk in rate limiter** **Implementing cancellation tests for rate limiter**
Author
Owner

💭 Agent progress

Planning waitForStart integration

💭 **Agent progress** **Planning waitForStart integration**
Author
Owner

💭 Agent progress

Fixing default max decode bug

💭 **Agent progress** **Fixing default max decode bug**
feat(media): rate limit external media jobs
Some checks failed
Go CI / Vet and test (push) Has been cancelled
Go CI / Vet and test (pull_request) Has been cancelled
c4fd69d9be
Author
Owner

⚠️ Verify unfinished after 3 attempt(s); continuing without Alles Implementiert

⚠️ **Verify unfinished** after 3 attempt(s); continuing without Alles Implementiert
frank changed title from WIP: #22 yt-dlp-Medien- und YouTube-Transcript-Tools über den privaten Proxy bereitstellen to fix: #22 yt-dlp-Medien- und YouTube-Transcript-Tools über den privaten Proxy bereitstellen 2026-07-17 15:04:58 +02:00
Author
Owner

forge agent finished implementation

  • Commit: feat(media): rate limit external media jobs
  • Pull request: #31
  • Next: waiting for CI / babysitting fixes if needed
config.example.yaml               |  1 +
 docs/media-tools.md               |  2 +-
 internal/cli/root.go              |  2 +-
 internal/config/config.go         |  4 +++-
 internal/config/config_test.go    | 12 ++++++++++++
 internal/mediaexec/runner.go      | 36 ++++++++++++++++++++++++++++++++++++
 internal/mediaexec/runner_test.go | 15 +++++++++++++++
 7 files changed, 69 insertions(+), 3 deletions(-)
Agent output (tail)
PR_BODY:
- Added transcript deadline enforcement and reliable `prefer_manual` fallback.
- Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts.
- Full `go test ./...` passes.
Remaining gaps before Issue #22 is fully complete:
- `translation_language` does not perform translation; it currently only changes the requested subtitle language while reporting `translated: true`.
- yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy.
- Media-specific rate limiting is not implemented.
Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.PR_TITLE: feat(media): yt-dlp downloads and YouTube transcripts via private proxy
PR_BODY:
Validated current branch: test suite, vet, and diff checks pass.
Remaining scope gaps:
- yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked.
- No MCP progress notifications are emitted for media jobs.
- No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider.
No additional safe, focused patch can close these architectural gaps.
Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab.Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.`fix(media): restrict initial destination ports` ist mit Konfigurations- und Runner-Regressionstests committed.Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.PR_TITLE: feat(media): proxy yt-dlp downloads and transcripts
PR_BODY:
Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests.
Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented.
✅ **forge agent finished implementation** - Commit: `feat(media): rate limit external media jobs` - Pull request: https://repository.hildebrandt.io/ai-tools/private-proxy-mcp/pulls/31 - Next: waiting for CI / babysitting fixes if needed ``` config.example.yaml | 1 + docs/media-tools.md | 2 +- internal/cli/root.go | 2 +- internal/config/config.go | 4 +++- internal/config/config_test.go | 12 ++++++++++++ internal/mediaexec/runner.go | 36 ++++++++++++++++++++++++++++++++++++ internal/mediaexec/runner_test.go | 15 +++++++++++++++ 7 files changed, 69 insertions(+), 3 deletions(-) ``` <details><summary>Agent output (tail)</summary> ``` PR_BODY: - Added transcript deadline enforcement and reliable `prefer_manual` fallback. - Added MCP tunnel E2E coverage for manual JSON and automatic VTT transcripts. - Full `go test ./...` passes. Remaining gaps before Issue #22 is fully complete: - `translation_language` does not perform translation; it currently only changes the requested subtitle language while reporting `translated: true`. - yt-dlp redirects/CDN requests are not enforced through the configured destination/redirect policy. - Media-specific rate limiting is not implemented. Ich prüfe die bestehende Implementierung gegen die Akzeptanzkriterien, schließe eng begrenzte Lücken und liefere jeden abgeschlossenen Teil als separaten Commit auf den Branch.Die Akzeptanztests und die Capability-Grenze sind vorhanden; ich prüfe noch die Laufzeitpfade für Quota, Abbruch und Artefakt-Streaming auf nicht abgedeckte Randfälle.PR_TITLE: feat(media): yt-dlp downloads and YouTube transcripts via private proxy PR_BODY: Validated current branch: test suite, vet, and diff checks pass. Remaining scope gaps: - yt-dlp secondary extractor/CDN targets and redirects are not enforced through the existing network/SSRF policy; only the initial URL allowlist is checked. - No MCP progress notifications are emitted for media jobs. - No transcript-provider abstraction or configured sidecar fallback exists; translation is not backed by an isolated provider. No additional safe, focused patch can close these architectural gaps. Ich prüfe Implementierung, Tests und Arbeitsbaum gegen die Akzeptanzkriterien und schließe klar abgegrenzte Lücken direkt mit Tests.Der Tunnel, die Capability-Erkennung, Artefakt-Streaming und die Fixture-Tests sind vorhanden. Ich härte jetzt die verbleibende Konfigurationsgrenze für Betreiberprofile und die Media-spezifische Zielvalidierung ab.Die Zielprüfung lehnt nun private IP-Literale und nicht freigegebene Zielports vor dem yt-dlp-Start ab; Konfiguration und Regressionstests sind ergänzt. Der vollständige Testlauf benötigt außerhalb der Sandbox Zugriff auf Go-Cache und Loopback-Listener.`fix(media): restrict initial destination ports` ist mit Konfigurations- und Runner-Regressionstests committed.Die Prüfung zeigt noch eine fehlende Durchsetzung aus dem Scope: Medienjobs haben Parallelitätsgrenzen, aber keine Start-Rate-Limitierung. Ich ergänze eine konfigurierbare, context-abbrechbare Jobrate für Download und Transcript.PR_TITLE: feat(media): proxy yt-dlp downloads and transcripts PR_BODY: Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests. Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented. ``` </details>
Author
Owner

⚠️ Merge conflict detected (attempt 1/3)

Re-running coding agent to merge/rebase and resolve conflicts…

⚠️ **Merge conflict detected** (attempt 1/3) Re-running coding agent to merge/rebase and resolve conflicts…
Author
Owner

💭 Agent progress

Assessing acceptance and proxy policy scope

Verifying translation fallback and progress handling

Confirming release date and implementation gaps

Drafting concise PR comment on network policy

Finalizing PR title and body draft
Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests.
Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented.I’ll merge the current main into this PR branch, resolve conflicts while retaining both changesets, then commit and push the resolution.

Requesting escalation fetch

💭 **Agent progress** **Assessing acceptance and proxy policy scope** **Verifying translation fallback and progress handling** **Confirming release date and implementation gaps** **Drafting concise PR comment on network policy** **Finalizing PR title and body draft** Implements typed yt-dlp media downloads, transcript retrieval, artifact streaming, capability gating, process cleanup, quotas, and rate limits. Adds initial destination port/private-IP policy tests. Remaining: yt-dlp secondary extractor/redirect connections still rely on host/container egress controls rather than the internal HTTP network-policy engine; MCP progress reporting is not implemented.I’ll merge the current `main` into this PR branch, resolve conflicts while retaining both changesets, then commit and push the resolution. **Requesting escalation fetch**
Author
Owner

💭 Agent progress

Escalating merge process

💭 **Agent progress** **Escalating merge process**
Author
Owner

💭 Agent progress

origin/main is merged locally with conflicts limited to documentation, configuration tests, and MCP wiring; I’m reconciling the media-tool additions with the current server structure.

💭 **Agent progress** `origin/main` is merged locally with conflicts limited to documentation, configuration tests, and MCP wiring; I’m reconciling the media-tool additions with the current server structure.
Author
Owner

💭 Agent progress

Planning file inspection comparison using git

💭 **Agent progress** **Planning file inspection comparison using git**
Author
Owner

💭 Agent progress

Applying patch to resolve mcp function conflict

💭 **Agent progress** **Applying patch to resolve mcp function conflict**
Author
Owner

💭 Agent progress

Designing media client profile schema

Reviewing patch segment constraints

💭 **Agent progress** **Designing media client profile schema** **Reviewing patch segment constraints**
Author
Owner

💭 Agent progress

Redoing separation

💭 **Agent progress** **Redoing separation**
Author
Owner

💭 Agent progress

Replacing conflicted code block with combined content

Cleaning function structure and closures

💭 **Agent progress** **Replacing conflicted code block with combined content** **Cleaning function structure and closures**
Author
Owner

💭 Agent progress

Planning code cleanup and brace insertion

💭 **Agent progress** **Planning code cleanup and brace insertion**
Author
Owner

💭 Agent progress

Testing gofmt conflicts

💭 **Agent progress** **Testing gofmt conflicts**
Author
Owner

💭 Agent progress

Resolving both arguments

💭 **Agent progress** **Resolving both arguments**
Author
Owner

💭 Agent progress

Planning test execution before commit
Conflict resolution now preserves dynamic media tools and artifact routes alongside the base branch’s HTTP client-profile support; running the repository test suite before committing.

💭 **Agent progress** **Planning test execution before commit** Conflict resolution now preserves dynamic media tools and artifact routes alongside the base branch’s HTTP client-profile support; running the repository test suite before committing.
Author
Owner

🛠️ Pushed merge-conflict fix (attempt 1/3). Re-checking mergeability…

I’ll merge the current main into this PR branch, resolve conflicts while retaining both changesets, then commit and push the resolution.origin/main is merged locally with conflicts limited to documentation, configuration tests, and MCP wiring; I’m reconciling the media-tool additions with the current server structure.Conflict resolution now preserves dynamic media tools and artifact routes alongside the base branch’s HTTP client-profile support; running the repository test suite before committing.Merged origin/main, resolved all conflicts, and pushed 7f2824d.
Preserved media tools/artifact routing alongside client-profile support. go test ./... passes.

🛠️ Pushed merge-conflict fix (attempt 1/3). Re-checking mergeability… I’ll merge the current `main` into this PR branch, resolve conflicts while retaining both changesets, then commit and push the resolution.`origin/main` is merged locally with conflicts limited to documentation, configuration tests, and MCP wiring; I’m reconciling the media-tool additions with the current server structure.Conflict resolution now preserves dynamic media tools and artifact routes alongside the base branch’s HTTP client-profile support; running the repository test suite before committing.Merged `origin/main`, resolved all conflicts, and pushed `7f2824d`. Preserved media tools/artifact routing alongside client-profile support. `go test ./...` passes.
merge: resolve main conflicts for media tools
All checks were successful
Go CI / Vet and test (push) Successful in 9m17s
Go CI / Vet and test (pull_request) Successful in 9m17s
7f2824d1d4
frank merged commit a8c922716c into main 2026-07-17 15:08:05 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai-tools/private-proxy-mcp!31
No description provided.