refactor: extract streaming engine into internal/flinger

Move the capture/encode/send pipeline out of cmd/teleportfling into a
GUI-free Engine so the CLI and the desktop app share one implementation:
- flinger: Config/Engine/Status, audio+video+stats loops, pattern source
- config: JSON persistence at ~/.config/teleportfling/config.json
- cmd/teleportfling: thin CLI wrapper around the engine (same flags)
- golangci: extend exclusions to flinger/config
This commit is contained in:
2026-09-18 20:32:45 +01:00
parent 79beeefdc7
commit ba423eb944
8 changed files with 836 additions and 368 deletions
+5 -1
View File
@@ -27,7 +27,7 @@ linters:
# Wire-format int conversions: the Teleport protocol defines 32-bit fields
# on the wire (uint32) while the reference uses int32 struct fields. These
# casts are intentional and mirror obs-teleport's types.go.
- path: "internal/protocol/"
- path: "(internal/protocol|internal/flinger)/"
linters:
- gosec
text: "G115"
@@ -42,6 +42,10 @@ linters:
linters:
- gosec
text: "G115"
# Config path comes from os.UserConfigDir(); safe to read/write.
- path: "internal/config/"
linters:
- gosec
formatters:
enable: