oficina / meet Public

Merge feat/quality-telemetry: quality reports and Report a problem (spec 15.26); Mac and iPhone 0.4.9

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 65fdc072c3a06d70b8380be3c0100582ca68728f parent b81eabaparent e3b2145
56 files changed, +6954 −40
  • Makefile +1 −0
  • PRODUCT.md +26 −2
  • callscore/report.go +175 −0
  • callscore/report_test.go +204 −0
  • callscore/room.go +7 −0
  • cmd/calls/main.go +24 −1
  • cmd/quality-summary/main.go +485 −0
  • cmd/quality-summary/main_test.go +74 −0
  • docs/operations/quality.md +103 −0
  • docs/superpowers/specs/2026-09-07-meet-design.md +190 −0
  • internal/calls/app.go +16 −0
  • internal/calls/config.go +14 −1
  • internal/calls/handlers_room.go +5 −0
  • internal/calls/hub/hub.go +18 −1
  • internal/calls/hub/relay.go +3 −1
  • internal/calls/hub/report.go +159 −0
  • internal/calls/hub/report_test.go +82 −0
  • internal/calls/quality.go +477 −0
  • internal/calls/ratelimit.go +6 −0
  • internal/calls/static/calls.css +56 −0
  • internal/calls/static/report.js +355 −0
  • internal/calls/static/room.js +726 −13
  • internal/calls/stream.go +2 −2
  • internal/calls/templates/join.html +10 −0
  • internal/calls/templates/partials/report.html +48 −0
  • internal/calls/templates/room.html +11 −0
  • internal/callstest/browser_test.go +189 −0
  • internal/callstest/harness_test.go +11 −0
  • internal/callstest/native_browser_test.go +43 −1
  • internal/callstest/quality_test.go +603 −0
  • native/README.md +22 −0
  • native/apple/Sources/CallsInterop/Interop.swift +5 −0
  • native/apple/Sources/CallsKit/Audio.swift +15 −0
  • native/apple/Sources/CallsKit/AudioDevices.swift +2 −0
  • native/apple/Sources/CallsKit/Call.swift +281 −7
  • native/apple/Sources/CallsKit/CallChrome.swift +20 −6
  • native/apple/Sources/CallsKit/CallsLobby.swift +23 −0
  • native/apple/Sources/CallsKit/CallsSettingsView.swift +1 −0
  • native/apple/Sources/CallsKit/DevicePanel.swift +18 −0
  • native/apple/Sources/CallsKit/MacCallView.swift +19 −3
  • native/apple/Sources/CallsKit/Media.swift +16 −0
  • native/apple/Sources/CallsKit/QualityReport.swift +781 −0
  • native/apple/Sources/CallsKit/ReportProblem.swift +270 −0
  • native/apple/Sources/CallsKit/ServerSettings.swift +23 −0
  • native/apple/Sources/CallsMac/CallsMac.swift +4 −0
  • native/apple/Tests/CallsKitTests/QualityReportTests.swift +450 −0
  • native/bridge/bridge.go +39 −0
  • native/bridge/bridge_test.go +77 −0
  • native/ios/Sources/CallsPhone.swift +2 −0
  • native/ios/Sources/PhoneFullScreenCall.swift +5 −1
  • native/ios/UITests/CallsPhoneUITests.swift +42 −0
  • native/ios/project.yml +1 −1
  • protocol/messages.go +4 −0
  • protocol/quality.go +191 −0
  • test/browser/call.mjs +139 −0
  • test/browser/room-quality.test.mjs +381 −0

CI passed — run details

CI log
=== vet ===
go vet ./...
=== fmt ===
=== test ===
go test ./...
ok  	amadan.net/oficina/calls/callscore	7.286s
?   	amadan.net/oficina/calls/cmd/calls	[no test files]
ok  	amadan.net/oficina/calls/cmd/quality-summary	0.003s
ok  	amadan.net/oficina/calls/internal/calls	1.619s
ok  	amadan.net/oficina/calls/internal/calls/apns	(cached)
ok  	amadan.net/oficina/calls/internal/calls/hub	0.327s
?   	amadan.net/oficina/calls/internal/calls/icons	[no test files]
ok  	amadan.net/oficina/calls/internal/calls/relay	(cached)
ok  	amadan.net/oficina/calls/internal/calls/seal	(cached)
ok  	amadan.net/oficina/calls/internal/callstest	9.788s
?   	amadan.net/oficina/calls/protocol	[no test files]
?   	amadan.net/oficina/calls/scripts/writeestilo	[no test files]
=== migration-check ===
go run amadan.net/rastrillo/rastrillo/cmd/rastrillo migration check
rastrillo migration check: models and migrations agree
=== race ===
CGO_ENABLED=1 go test -race ./internal/...
ok  	amadan.net/oficina/calls/internal/calls	11.279s
ok  	amadan.net/oficina/calls/internal/calls/apns	(cached)
ok  	amadan.net/oficina/calls/internal/calls/hub	2.776s
?   	amadan.net/oficina/calls/internal/calls/icons	[no test files]
ok  	amadan.net/oficina/calls/internal/calls/relay	(cached)
ok  	amadan.net/oficina/calls/internal/calls/seal	(cached)
ok  	amadan.net/oficina/calls/internal/callstest	29.286s
Makefile

Loading diff…

PRODUCT.md

Loading diff…

callscore/report.go

Loading diff…

callscore/report_test.go

Loading diff…

callscore/room.go

Loading diff…

cmd/calls/main.go

Loading diff…

cmd/quality-summary/main.go

Loading diff…

cmd/quality-summary/main_test.go

Loading diff…

docs/operations/quality.md

Loading diff…

docs/superpowers/specs/2026-09-07-meet-design.md

Loading diff…

internal/calls/app.go

Loading diff…

internal/calls/config.go

Loading diff…

internal/calls/handlers_room.go

Loading diff…

internal/calls/hub/hub.go

Loading diff…

internal/calls/hub/relay.go

Loading diff…

internal/calls/hub/report.go

Loading diff…

internal/calls/hub/report_test.go

Loading diff…

internal/calls/quality.go

Loading diff…

internal/calls/ratelimit.go

Loading diff…

internal/calls/static/calls.css

Loading diff…

internal/calls/static/report.js

Loading diff…

internal/calls/static/room.js

Loading diff…

internal/calls/stream.go

Loading diff…

internal/calls/templates/join.html

Loading diff…

internal/calls/templates/partials/report.html

Loading diff…

internal/calls/templates/room.html

Loading diff…

internal/callstest/browser_test.go

Loading diff…

internal/callstest/harness_test.go

Loading diff…

internal/callstest/native_browser_test.go

Loading diff…

internal/callstest/quality_test.go

Loading diff…

native/README.md

Loading diff…

native/apple/Sources/CallsInterop/Interop.swift

Loading diff…

native/apple/Sources/CallsKit/Audio.swift

Loading diff…

native/apple/Sources/CallsKit/AudioDevices.swift

Loading diff…

native/apple/Sources/CallsKit/Call.swift

Loading diff…

native/apple/Sources/CallsKit/CallChrome.swift

Loading diff…

native/apple/Sources/CallsKit/CallsLobby.swift

Loading diff…

native/apple/Sources/CallsKit/CallsSettingsView.swift

Loading diff…

native/apple/Sources/CallsKit/DevicePanel.swift

Loading diff…

native/apple/Sources/CallsKit/MacCallView.swift

Loading diff…

native/apple/Sources/CallsKit/Media.swift

Loading diff…

native/apple/Sources/CallsKit/QualityReport.swift

Loading diff…

native/apple/Sources/CallsKit/ReportProblem.swift

Loading diff…

native/apple/Sources/CallsKit/ServerSettings.swift

Loading diff…

native/apple/Sources/CallsMac/CallsMac.swift

Loading diff…

native/apple/Tests/CallsKitTests/QualityReportTests.swift

Loading diff…

native/bridge/bridge.go

Loading diff…

native/bridge/bridge_test.go

Loading diff…

native/ios/Sources/CallsPhone.swift

Loading diff…

native/ios/Sources/PhoneFullScreenCall.swift

Loading diff…

native/ios/UITests/CallsPhoneUITests.swift

Loading diff…

native/ios/project.yml

Loading diff…

protocol/messages.go

Loading diff…

protocol/quality.go

Loading diff…

test/browser/call.mjs

Loading diff…

test/browser/room-quality.test.mjs

Loading diff…