Releases: TeaGuild/Telemachus-1
v1.12.0 — Bar-tailed Godwit
Bar-tailed Godwit (Limosa lapponica) in breeding plumage — holder of the longest non-stop flight of any bird, crossing the entire Pacific from Alaska to New Zealand without landing. Photo: Andreas Trepte / Wikimedia Commons, CC BY-SA 2.5
Telemachus Reborn v1.12.0 — Bar-tailed Godwit
Features
- Add a CORS allowlist so browser dashboards on a different origin can read the API. Configure via a new
ALLOWED_ORIGINSsetting (comma-separatedscheme://host[:port]entries) inPluginData/Telemachus/config.xml. Empty by default, which preserves the historical behaviour of never sending CORS headers — existing setups are untouched. Matching origins are echoed back exactly (no wildcard) withVary: Origin, and the standardOPTIONSpreflight is answered with204. (#82) (Jon Pepler)
Bug Fixes
- Auto-defer attribute-based action handlers to the main Unity thread, so action endpoints no longer risk touching the game from a worker thread. (#81) (Jon Pepler)
- Propagate
AlwaysEvaluablethroughActionAPIEntryso action handlers marked always-evaluable are honoured. (#84) (Jon Pepler)
Miscellaneous
- Broaden
AfterBuild.shportability — safe empty-array expansion underset -u, andcp -pRinstead of the GNU-onlycp -ra, so the post-build step works on macOS/BSD. (#87) (Jon Pepler) - Repository moved to the TeaGuild organisation; version file, netkan, and README links updated to the new home.
Documentation
- Document the
ALLOWED_ORIGINSCORS configuration in the README.
New Contributors
- Jon Pepler (@jonpepler) — CORS allowlist, action-handler threading fixes, build-script portability
Bundled Houston (UI)
- Fixed the surface map's relief base layer. It requested a retired
colortile style that 404/403s on every body; it now uses the livebiometiles (the same style Telemachus's own map already uses) and is relabelled Biome. Satellite and Slope layers were unaffected. (The KerbalMaps tile CDN itself is alive and serves over plain<img>— the earlier CORS/dead-server theory didn't hold up under testing.)
Full Changelog: v1.11.0...v1.12.0
v1.11.0
Kakapo (Strigops habroptilus) — the world's only flightless parrot. Critically endangered, nocturnal, and surprisingly heavy. Photo: Wikimedia Commons
Telemachus Reborn v1.11.0 — Kakapo
Features
- Add quick save, load, and revert API endpoints (
t.quickSave,t.quickLoad,t.revertToLaunch,t.revertToEditor) (#77) - Add API scaling for embedded controllers —
scale,precision, andintquery parameters for integer-only boards (#76) - Add scaling support to batch datalink endpoint with global
_scale/_precision/_intparams and per-key pipe syntax
Bug Fixes
- Fix HTTP/1.1
Connection: closeheader not being respected, causing 3-second socket hangs for embedded clients (#79) (Attila Strba) - Defer map view API calls (
m.toggleMapView,m.enterMapView,m.exitMapView) to main Unity thread (#73) - Guard against null webServer in
Update()(#75) - Enumerate network interfaces directly instead of DNS lookup for LAN address discovery
- Fix version file URL to use
mainbranch instead ofmaster(#74) (HebaruSan)
Documentation
- Add theme-aware SVG logo to README
- Fix FAR link, update mod statuses (FAR, RealChute, Astrogator → Released), add Kerbalism docs
- Update CONTRIBUTORS.md with verified GitHub profiles and contribution details for all contributors
New Contributors
- Attila Strba (@attilastrba) — HTTP/1.1 connection header fix
- HebaruSan (@HebaruSan) — CKAN maintainer; version file URL fix
Houston (bundled UI)
Full Changelog: TeleIO/houston@v2.0.20260310.205418...v2.0.20260310.211146
v1.10.0
Telemachus
[1.10.0] - 2026-03-10
Bug Fixes
- Use PackageReference for WebSocketSharp instead of vendored DLL
- Rename AfterBuild target and ensure NuGet DLLs copy to output
- Resolve CameraCaptureManager memory leak and singleton NullRef
- Match all RPM camera parts, not just JSIPrimitiveExternalCamera
- Keep numOpenDisplays bumped for async Astrogator calculations
Documentation
- Update README with build pipeline and new APIs
Features
- Add FAR integration and mod discovery endpoint
- Add RealChute integration with telemetry and remote actions
- Add VesselView camera integration
- Add Astrogator integration for transfer planning telemetry
- OpenAPI codegen pipeline with Starlight docs site
- Add Mermaid diagram support to Starlight docs
- Add landing prediction and thermal monitoring telemetry
- Add science, career, comms, biome, and encounter telemetry
- Add Principia N-body physics integration via reflection
- Lazy-trigger Astrogator transfer calculations via reflection
- Add Kerbalism life support and radiation integration
Miscellaneous
- Bump version to 1.10.0
Refactoring
- Migrate to SDK-style project and modernize build
Houston (bundled UI)
Full Changelog: TeleIO/houston@v2.0.20260309.201141...v2.0.20260310.205418
v1.9.0
Telemachus
[1.9.0] - 2026-03-09
New API Endpoints (177 new endpoints)
Delta-V System (dv.*) — Full stage-by-stage delta-v analysis (new module)
dv.ready,dv.stageCount,dv.stagesdv.totalDVVac,dv.totalDVASL,dv.totalDVActual,dv.totalBurnTime- Per-stage:
dv.stageDVVac[n],dv.stageDVASL[n],dv.stageDVActual[n] - Per-stage TWR:
dv.stageTWRVac[n],dv.stageTWRASL[n],dv.stageTWRActual[n] - Per-stage ISP:
dv.stageISPVac[n],dv.stageISPASL[n],dv.stageISPActual[n] - Per-stage thrust:
dv.stageThrustVac[n],dv.stageThrustASL[n],dv.stageThrustActual[n] - Per-stage mass:
dv.stageMass[n],dv.stageDryMass[n],dv.stageFuelMass[n],dv.stageStartMass[n],dv.stageEndMass[n] dv.stageBurnTime[n],dv.stage[n]
Alarm Clock (alarm.*) — KSP Alarm Clock integration (new module)
alarm.count,alarm.list,alarm.nextAlarm,alarm.timeToNext
Vessel Data (v.*) — 80+ new vessel endpoints
- Acceleration:
v.acceleration,v.accelerationx/y/z,v.specificAcceleration - Angular:
v.angularMomentum,v.angularMomentumx/y/z,v.angularVelocityx/y/z,v.momentOfInertia - Atmosphere:
v.atmosphericTemperature,v.externalTemperature,v.dynamicPressurekPa,v.staticPressurekPa,v.staticPressure,v.mach,v.speedOfSound,v.indicatedAirSpeed - Solar:
v.directSunlight,v.distanceToSun,v.solarFlux - State:
v.situation,v.situationString,v.vesselType,v.landed,v.splashed,v.landedOrSplashed,v.landedAt,v.isEVA,v.isActiveVessel,v.isControllable,v.isCommandable,v.loaded,v.packed - Mass/geometry:
v.mass,v.CoM,v.perturbation,v.perturbationx/y/z,v.terrainNormal,v.upAxis - Speed:
v.speed,v.srfSpeed,v.obtSpeed - Crew:
v.crew,v.crewCount,v.crewCapacity - Misc:
v.currentStage,v.missionTimeString,v.launchTime,v.pqsAltitude,v.heightFromSurface - Action group readback:
v.sasValue,v.rcsValue,v.lightValue,v.brakeValue,v.gearValue,v.abortValue,v.ag1Value–v.ag10Value
Orbital Mechanics (o.*) — 30+ new orbit endpoints
- Apsides:
o.ApR,o.PeR - Anomalies:
o.meanAnomaly,o.eccentricAnomaly,o.orbitPercent - Vectors:
o.vel,o.pos,o.radius,o.orbitNormal,o.eccVec,o.anVec,o.h - Energy/speed:
o.orbitalEnergy,o.orbitalSpeed,o.orbitalSpeedAt[t],o.orbitalSpeedAtDistance[d] - Geometry:
o.semiMinorAxis,o.semiLatusRectum,o.radiusAtTrueAnomaly[deg],o.trueAnomalyAtRadius[m],o.referenceBody - Transitions:
o.patchStartTransition,o.patchEndTransition,o.StartUT,o.EndUT,o.UTsoi,o.closestEncounterBody,o.closestTgtApprUT - Maneuver nodes:
o.maneuverNodes.count,o.maneuverNodes.deltaV[id],o.maneuverNodes.deltaVMagnitude[id],o.maneuverNodes.UT[id],o.maneuverNodes.timeTo[id],o.maneuverNodes.burnVector[id],o.maneuverNodes.orbitPatches[id]
Flight Control (f.*) — Expanded control readback
- Control inputs:
f.pitchInput,f.yawInput,f.rollInput,f.xInput,f.yInput,f.zInput - Trim:
f.pitchTrim,f.yawTrim,f.rollTrim,f.setPitchTrim,f.setYawTrim,f.setRollTrim - SAS:
f.sasEnabled,f.sasMode,f.setSASMode[mode] - State:
f.isNeutral,f.killRot
Target (tar.*) — New target actions
tar.setTargetBody[index],tar.setTargetVessel[index],tar.clearTarget
Time & Warp (t.*) — New time endpoints
t.deltaTime,t.currentRate,t.currentRateIndex,t.warpMode,t.maxPhysicsRate,t.isPaused
Celestial Bodies (b.*) — Expanded body data
b.description,b.mass,b.geeASL,b.hillSphere,b.atmosphere,b.oceanb.rotates,b.rotationAngle,b.angularV,b.positionb.referenceBody,b.orbitingBodies,b.index,b.timeWarpAltitudeLimits
Map — m.mapIsEnabled
Other Changes
- Replaced vendored SimpleJSON with KSP's built-in MiniJSON (removes external JSON dependency)
- Split monolithic
DataLinkHandlers.csinto attribute-based handler modules - Added thread safety to camera mutex and FlyByWire state
- Comprehensive API reference in README
- Modernized C# codebase and fixed latent bugs
Houston (bundled UI)
Bundled latest Houston release with fixed tile servers and dead link cleanup.
1.8.0
"Reports of my death have been greatly exaggerated."
— Telemachus, after a 6-year nap on the launchpad
Breaking Changes
- Minimum KSP version raised to 1.8.0 — camera system now relies on the single-camera rendering pipeline introduced in KSP 1.8. Maximum tested version is 1.12.5.
- C# language version bumped from 6 to 9 — compiled DLL still targets .NET Framework 4.7.2 and runs fine on KSP's Mono runtime.
Bug Fixes
- Camera capture on KSP 1.8+ (#66, #68) — replaced hardcoded camera name whitelist with blacklist-only filtering so the new unified camera is captured. IVA camera now uses
InternalCamera.Instanceinstead of searching by name. - Camera crash during PartLoader (#66, #68) —
CameraCaptureManageris now lazily created on first HTTP request instead of during plugin loading, fixing a SIGSEGV inFindObjectsOfType. - Per-instance antenna state (#9) — toggling one Telemachus antenna no longer toggles all of them. Static fields replaced with per-instance state and static aggregators.
- Sensor cache key casing (#48) —
SensorCachekey lookup was case-inconsistent, causing only the last sensor of each type to be kept. Now uses consistent lowercase keys throughout. - Sensors report values when PAW is closed (#47) — added
FlightGlobalsfallback for temperature, pressure, gravity, and acceleration whenreadoutInfois stale. - Resource refresh throttle (#17) —
ActiveResourceCache.refresh()throttled from every frame to every 0.5s to reduce GC pressure. - Console map broken (#54) — restored
leafletksp.js(accidentally deleted in a prior map rewrite) and added Leaflet marker icon assets. - MechJeb SmartASS commands — reflection target
attitudeupdated toAttitudeto match modern MechJeb2. Commands now actually steer the vessel instead of silently failing. - MechJeb staging info — updated reflection to match modern MechJeb2's PascalCase
List<FuelStats>with double fields.RequestUpdaterouted through the delayed API queue for Unity thread safety. - Partless mode completely broken —
TelemachusBehaviour.instancewas only set when a physical antenna part existed on the vessel, silently breaking all delayed API calls (MechJeb, throttle, staging, fly-by-wire) in partless mode. - Sensor display values — fixed temperature unit (Celsius → Kelvin), pressure unit (kPa), removed excess decimal places (Row-Bear).
- Latitude/longitude precision — new
LATLONunit type with 6 decimal places; other degree values reduced to 2 (Row-Bear).
Features
- Map layer definitions — added stock and JNSQ satellite/biome/slope maps for all planets, with layer switching (sidrus, Row-Bear).
- Map zoom limit — capped at zoom level 7 to match tile server coverage (Row-Bear).
- Map marker popups — altitude shown in km above 10,000m, added units to display (Row-Bear).
Infrastructure
- GitHub Actions CI — replaced AppVeyor with Ubuntu-based workflow using
dotnet msbuild+ Mono BCL. Artifacts uploaded automatically; draft releases created onv*tags. - Nix dev shell —
flake.nixprovides mono, dotnet-sdk, curl, gitlint, and git-cliff out of the box. - Conventional commits — gitlint + CI workflow for enforcing commit message format on PRs.
- Code formatting — all source files auto-formatted with
dotnet format(~200 whitespace fixes across 21 files). - README rewrite — full documentation with features, HTTP/WebSocket API reference, build instructions, and contributing guidelines.
Known Issues
- Console map tiles still reference the defunct
ksp.deringenieur.nettile server — needs migration to the CloudFront CDN already used bymap.html. - MechJeb staging info fields
maxAccelandresourceMassalways return 0 (removed in modern MechJeb2'sFuelStatsstruct). - Resource cache returns
-1on the very first request after loading into flight (cold-start before first cache refresh at 0.5s).
1.7.64
1.7.2 - Red Parrot
1.7.2 — Red Parrot
Bug Fixes
- Fixed sensors not reporting values (#6)
- Removed deprecated MiniAVC
Changes
- Updated version file for CKAN
- Readme updates
1.7.45
1.7.1 - Dodo Bird
Telemachus Reborn v1.7.1 — Dodo Bird
Bug Fixes
- Fixed Houston and MKON bundled web UIs not loading
- Updated KSP 1.8 references (UnityEngine.CoreModule, camera.allowHdr)
- Fixed Windows and Linux post-build scripts
- Added Linux post-build tasks and OS detection (Martin Schmidt)
Infrastructure
- Hardened post-build script with
set -o errexitandset -o nounset(Fabian Damken) - Build documentation for running AfterBuild.sh manually (scripty)
- Fixed AppVeyor CI extraction paths
- Updated CKAN version information
Contributors
- Martin Schmidt — Linux build support
- Fabian Damken — post-build script hardening
- scripty — build documentation
Telemachus Reborn v1.7 - Gyrfalcon (KSPv1.7.0)
By Falco_rusticolus_white.jpg: Ólafur Larsen, CC BY-SA 2.0, Wikipedia
Telemachus Reborn v1.7 — Gyrfalcon (KSPv1.7.0)
Features
- Russian localization (~80%)
- New index.html landing page
- Web UI refactor
Bug Fixes
- Fixed JSON parse errors — default Telemachus page no longer crashes
- Fixed C# URL handling
Parts
- Deprecated old antenna parts (FustekAntenna, TelemachusAntenna, TeleBladeAntenna), converted textures to DDS, reorganized part folder structure (StoneBlue)
Other
- Data rate code documentation and variable renaming (Fabio Regis)
- Created CKAN netkan metadata
- Updated for KSP 1.7.0
This is a build for KSP v1.7.0.

