• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

orion-ecs / keen-eye
64%

Build:
DEFAULT BRANCH: main
Repo Added 01 Dec 2025 07:50AM UTC
Files 1058
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • agent_1
  • agent_2
  • agent_3
  • chore/core-cleanups-1051
  • chore/drop-imagesharp-webp
  • chore/sample-polish-1052
  • chore/sdk-band-bump-1023
  • ci/macos-test-matrix
  • claude/add-binary-serialization-01Eh5z8ZMpTYyVkWCUq8ZSw5
  • claude/add-coverage-publishing-01AqcLjFabhuJxLkuhzVc3DW
  • claude/add-coverage-reports-01WBjvvNLx5Phg6WXFnQNPqK
  • claude/add-dotnet-templates-01Py33VTs72pkpFPaHoep7G9
  • claude/add-dotrecast-navmesh-lkHKl
  • claude/add-engine-benchmarks-01TwofRqsJC32uCXPQEcdNnM
  • claude/add-gh-cli-hook-QvrWb
  • claude/add-icu-messageformat-q2RqC
  • claude/add-iworld-cast-analyzer-cnbQa
  • claude/add-localized-assets-aTrEv
  • claude/add-navmesh-baking-aYDwP
  • claude/add-physics-plugin-01HQDUT9qGTgPPDCiwRf3inc
  • claude/add-pr-path-filters-4bWK6
  • claude/add-prefab-system-01YJqbjWRf9hAWq1PBFCRQhE
  • claude/add-rtl-localization-VaoMC
  • claude/add-save-load-features-01LMuaUmH59WZy3RRcyHv5Q8
  • claude/add-test-world-builder-01A6euDcG1MEGnqRHiXtiXJV
  • claude/add-testing-issue-73-01AxDbeJbc5KK8ZaK5ZHWX1e
  • claude/add-timeline-panel-ltROB
  • claude/add-webfetch-tool-LMyfK
  • claude/ai-navigation-integration-XfG7a
  • claude/analyze-parallel-plugin-neF29
  • claude/analyze-testing-components-vUjWf
  • claude/asset-loader-implementation-wN4bP
  • claude/batch-save-migration-tool-MpBKm
  • claude/benchmark-baseline-setup-01M9Lsh8RyLFkLLoEhWbNDCx
  • claude/benchmark-workflow-validation-01PXaXuET7RJ4HTW4RjCTcqF
  • claude/check-hooks-triggering-8QETZ
  • claude/check-querybuilder-types-mLa5T
  • claude/check-workflow-permissions-01AGbbsUes8nrYKejitf9qSb
  • claude/ci-agent-push-check-N0nEX
  • claude/cleanup-documentation-01MT9FysoMhJF7yNfCGwWJ9G
  • claude/collision-event-system-lGVwD
  • claude/component-validation-feature-0112ZvJyRz394TnbKDyRYWxg
  • claude/component-version-infrastructure-3DbXt
  • claude/custom-csproj-sdk-cSDlc
  • claude/default-value-injection-wWspe
  • claude/disable-codeql-where-rule-01CXos7icoYrzRvXMwJW4mRy
  • claude/document-new-features-018eeyiJ7sVHpvJze1PuCjHU
  • claude/dotnet-test-coverage-01XRvvUamW7c91USgR4ouaRm
  • claude/dynamic-plugin-loading-VzwKB
  • claude/execution-ordering-phases-01StCAzYEg3FQxTE7yMmJds8
  • claude/expand-tagging-system-01EE9JjMkdG349wFA8vs23u9
  • claude/extract-more-managers-01LWvgvge7SRKtnNmjU46cUG
  • claude/extract-plugin-abstractions-01VppvQS4kwcGXYh2WuDYCtu
  • claude/fix-aot-workflow-012XvBRP6WEdHdKYCy4C6q3h
  • claude/fix-api-docs-github-pages-01PCyEPiKDSfqVeX4US2s8Nq
  • claude/fix-benchmark-workflow-01UiNB5DNqa5ZnGyRPDKaEgD
  • claude/fix-bugs-code-quality-Rd8Qt
  • claude/fix-bugs-code-quality-iZiW4
  • claude/fix-build-test-issues-ILoU9
  • claude/fix-calendar-today-test-Ym5Ck
  • claude/fix-compiler-warnings-01AHymVkJ8iqfouqTVaRdjDN
  • claude/fix-dead-links-01L6Ty9VQwS5czA6zKNtnraD
  • claude/fix-dotnet-dorm-nHnGw
  • claude/fix-dotnet-path-resume-0167hPf7f1Bc9Sbv4EtjAN7P
  • claude/fix-entity-migration-tracking-smxeU
  • claude/fix-issue-349-MhIcI
  • claude/fix-issue-668-m6Xn1
  • claude/fix-issue-74-01UPjm3rSmkp8bbwK9VwaWXZ
  • claude/fix-nuget-dependency-0132A4T8rojU1YmZdbCcRHAS
  • claude/fix-nuget-workflow-sKRpz
  • claude/fix-remote-session-timeout-Ee8UL
  • claude/fix-serialization-01MgnsPr1WNWWu1kGernGAGH
  • claude/fix-session-hooks-61BTn
  • claude/fix-slow-test-4JW3m
  • claude/fix-world-thread-safety-zl9tS
  • claude/float-equality-tolerance-40mQI
  • claude/github-workflow-filtering-01JcS5CD61GASkbpUJZnNMdU
  • claude/graphics-library-plugin-01Gvkf7dfzJKdaLeZxsSeL3L
  • claude/grid-astar-pathfinding-tu90i
  • claude/implement-animation-player-42z7A
  • claude/implement-github-workflows-01CA9veQ9XDB3yU8TEdhS7gx
  • claude/implement-issue-54-015tMUjGyMuiMaAu7WQaGV4o
  • claude/implement-issue-55-01MGc7kD75TqavJBfmpZ6B5W
  • claude/implement-issue-56-015dP6pvPuYwhHseX3yYkzeb
  • claude/implement-issue-57-018ibePvhrWMWNusyVAqjuc7
  • claude/implement-issue-58-016G1xnRJYduwixf5MKXz1HU
  • claude/implement-issue-59-01S4ZtPQr4PSCDrpj3pd7GY9
  • claude/implement-issue-60-012jnMYUdpnDdnB69ec68kES
  • claude/implement-issue-68-01XGN1qj363au6E38giEroa2
  • claude/implement-issue-90-01UCT3Rid9N2eEbgH4CTeSDb
  • claude/implement-localization-plugin-r5cyh
  • claude/implement-logging-redirection-01B411ukZg2Jc3ar8fNMzXQe
  • claude/implement-scene-serialization-cLrup
  • claude/improve-api-docs-01Be8fBGfYwUSEcUjduYyrNd
  • claude/improve-generators-coverage-01MhkUw3tbaJW44JFyJpLw9q
  • claude/increase-code-coverage-01UHFPn8jy8N2wMKzjCM7Tsu
  • claude/input-replay-system-BpezS
  • claude/investigate-unit-test-Pyp6M
  • claude/issue-166-20251209-1527
  • claude/issue-167-20251209-1440
  • claude/issue-168-20251209-1442
  • claude/issue-169-20251209-1448
  • claude/issue-170-20251209-1448
  • claude/issue-171-20251209-1449
  • claude/issue-172-20251209-1449
  • claude/issue-187-20251209-1449
  • claude/issue-188-20251209-1449
  • claude/issue-189-20251209-1510
  • claude/issue-213-20251211-1902
  • claude/issue-214-20251211-1902
  • claude/issue-215-20251211-1919
  • claude/issue-216-20251211-1903
  • claude/issue-217-20251211-1903
  • claude/issue-218-20251211-1903
  • claude/issue-219-20251211-1903
  • claude/issue-220-20251211-1903
  • claude/issue-221-20251211-1903
  • claude/issue-222-20251211-1903
  • claude/issue-224-20251211-1903
  • claude/issue-225-20251211-1903
  • claude/issue-226-20251211-1904
  • claude/issue-227-20251211-1904
  • claude/issue-228-20251211-1904
  • claude/issue-229-20251211-1905
  • claude/issue-231-20251211-1905
  • claude/issue-232-20251211-1908
  • claude/issue-237-20251211-0511
  • claude/issue-238-20251211-1704
  • claude/issue-240-20251211-1704
  • claude/issue-241-20251211-1705
  • claude/issue-242-20251211-1900
  • claude/issue-244-20251211-1900
  • claude/issue-246-20251211-2155
  • claude/issue-250-20251211-1901
  • claude/issue-278-20251211-1949
  • claude/issue-284-20251211-1948
  • claude/issue-326-20251214-2300
  • claude/issue-329-20251214-2156
  • claude/issue-331-20251214-2141
  • claude/issue-332-20251214-2230
  • claude/issue-333-20251214-2141
  • claude/issue-335-20251214-2138
  • claude/issue-336-20251214-2140
  • claude/issue-67-019hj762NLDcxnxUpYLtaV3H
  • claude/issue-78-20251211-2029
  • claude/issue-94-20251209-1534
  • claude/linq-hotpath-analyzer-QW1R6
  • claude/migrate-sln-to-slnx-Edgyb
  • claude/migration-chain-resolution-cCM7Z
  • claude/migration-function-pipeline-HTyHg
  • claude/navigation-abstractions-Nlt5c
  • claude/navigation-plugin-ecs-KxYKs
  • claude/networking-plugins-plan-9o9oE
  • claude/nuget-lock-file-parsing-01S5UspaW1EBpBRXA272ErhU
  • claude/parallel-job-system-integration-I9s3j
  • claude/parallel-system-implementation-01MGPXYE8Dncxu5LnqVUbQV1
  • claude/random-class-analyzer-rule-01NzYuQXTcX1NrS7UtybZ9RQ
  • claude/rebase-from-main-015BSpsdEx9Tk5n8t2q33e1m
  • claude/refactor-world-class-014CrwJsAX74Tfka6z8voyxU
  • claude/refactor-world-class-files-01Epbrz5qWHtppr4suDK5YEp
  • claude/remove-reflection-aot-01RRUDGdtCRTPRKFMFZxWaBt
  • claude/remove-static-validation-state-Rd8Qt
  • claude/replay-checksum-validation-mSTXP
  • claude/replay-event-system-9qIJV
  • claude/replay-playback-mode-HmubU
  • claude/replay-playback-plugin-CUVfZ
  • claude/replay-player-core-abDIy
  • claude/replay-recording-sub-issues-w6mIt
  • claude/replay-speed-control-62xwe
  • claude/resolve-issue-64-01EMyjTpZbPHhyAB4xfUgPsu
  • claude/resolve-issue-65-016RQjc1jeYgktcDXtKGQhED
  • claude/resolve-issue-66-01V4nEcnGdbCJ1hVPou9LyYG
  • claude/review-epic-criteria-0151vK29CHbPh5Uu5Yjd1rSn
  • claude/review-epic-update-docs-018ku7sSJNVFZZuk1JDoZ4BF
  • claude/review-epic-update-docs-01QqWpnAE1e6tGZY6WyzLhXo
  • claude/review-issues-5jhM7
  • claude/review-networking-plugins-0z9UG
  • claude/review-nightly-issues-y3u5S
  • claude/review-spatial-benchmarks-016Nj138uXwj5xa28e23i6aX
  • claude/self-running-sample-project-01MEBWHiAzayKJBzG2WhEoSj
  • claude/setup-husky-dotnet-01YaAe6guMtLB8uiqepTuCh2
  • claude/setup-resume-hook-014qfjW4CZzrTJUvzoP5keEA
  • claude/timeline-frame-stepping-tE3KR
  • claude/update-nightly-review-workflow-01Hg4rm56tKwSrSH9q1Ff9xQ
  • claude/update-ui-components-9rqJF
  • code_analyzers
  • coverage-improvement-round2
  • coverage-improvement-round3
  • coverage-improvement-tests
  • coverage-improvements-2
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/github-script-8
  • dependabot/github_actions/actions/upload-artifact-5
  • dependabot/nuget/BenchmarkDotNet-0.15.8
  • dependabot/nuget/FontStashSharp-1.3.10
  • dependabot/nuget/NuGet.Configuration-7.0.1
  • dependabot/nuget/NuGet.Protocol-7.0.1
  • dependabot/nuget/NuGet.Versioning-7.0.1
  • dependabot/nuget/Pfim-0.11.4
  • dependabot/nuget/SharpGLTF.Core-1.0.6
  • dependabot/nuget/System.Text.Json-10.0.1
  • dependabot/nuget/benchmarks/KeenEyes.AotVsJit.Benchmarks/analyzers-aa083474d9
  • dependabot/nuget/tests/Microsoft.Testing.Extensions.CodeCoverage-18.3.2
  • docs/align-with-engine-state
  • feat/2d-blend-modes
  • feat/475-thread-safety-tests
  • feat/570-graph-editor-phase1
  • feat/572-graph-editor-connections
  • feat/574-graph-editor-interaction-polish
  • feat/575-node-type-system
  • feat/576-kesl-graph-integration
  • feat/624-scene-manager
  • feat/625-unified-generator
  • feat/627-deprecate-prefab-manager
  • feat/647-editor-plugin-core-abstractions
  • feat/674-plugin-lifecycle-memory-safety
  • feat/675-plugin-dependency-management
  • feat/676-plugin-installation-nuget
  • feat/677-plugin-security-sandboxing
  • feat/678-plugin-management-ui
  • feat/719-getreadonly-api
  • feat/881-mesh-pbr-vertex-data
  • feat/882-model-asset-material-extraction
  • feat/884-pbr-shader-implementation
  • feat/886-rendersystem-pbr-enhancement
  • feat/897-896-render-target-foundation
  • feat/900-lod-system
  • feat/crowd-offmesh-links
  • feat/editor-builtin-plugins
  • feat/engine-component-serialization
  • feat/gl-capability-diagnostics
  • feat/logging-integration
  • feat/mcp-http-transport
  • feat/mcp-testbridge-phase1
  • feat/mcp-testbridge-phase2
  • feat/mcp-testbridge-phase3
  • feat/mcp-testbridge-phase4
  • feat/mcp-testbridge-phase6
  • feat/mcp-testbridge-phase7
  • feat/novafall-core
  • feat/novafall-juice
  • feat/novafall-modes
  • feat/shadow-mapping-point-spot-debug
  • feat/testbridge-phase1
  • feat/testbridge-phase2-ipc
  • feat/testbridge-phase3
  • feat/testbridge-phase4
  • feat/testbridge-phase5
  • feat/ui-themes-system
  • feat/viewport-gizmo-renderers
  • feat/window-controller-828
  • feature/588-viewport-panel
  • feature/590-hot-reload
  • feature/591-editor-test-suite
  • feature/asset-source-generators
  • feature/audio-core-infrastructure
  • feature/connect-playmode-viewport
  • feature/particles-system
  • feature/phase-0-keeneyes-common
  • feature/phase-1-grid-spatial-partitioning
  • feature/spatial-phase3-advanced
  • feature/spatial-phase3-memory-pooling
  • feature/spatial-phase4-docs-samples
  • feature/spatial-quadtree-octree
  • fix/474-consolidate-test-components
  • fix/482-split-test-serializer
  • fix/483-magic-numbers-constants
  • fix/ai-shared-definition-state
  • fix/animation-cluster
  • fix/archetype-multichunk-corruption
  • fix/assets-cluster
  • fix/assets-path-traversal
  • fix/audio-cluster
  • fix/audio-native-and-gl-dispose
  • fix/blackboard-inspection
  • fix/code-review-findings
  • fix/codeql-editor
  • fix/codeql-leftovers
  • fix/codeql-samples-tools
  • fix/codeql-src
  • fix/codeql-tests-core
  • fix/codeql-tests-dptr
  • fix/codeql-tests-rest
  • fix/codeql-tests-ui-spatial
  • fix/core-dup-components
  • fix/core-lifecycle
  • fix/core-misc
  • fix/core-serialization-delta
  • fix/core-withboxed-and-despawn-docs
  • fix/editor-cluster
  • fix/extension-alias-disposal
  • fix/extension-clear-dedupe
  • fix/extensionmanager-disposal
  • fix/generators-cluster
  • fix/generators-ibundle
  • fix/graphics-cluster
  • fix/graphics-window-lifecycle-and-disposal
  • fix/hidpi-framebuffer-viewport
  • fix/hot-path-allocations
  • fix/input-device-absent
  • fix/jobhandle-combine-deadlock
  • fix/macos-font-discovery
  • fix/macos-main-thread-window
  • fix/macos-pipe-path-limit
  • fix/mcp-persistence-localization
  • fix/mcp-phase5-completeness
  • fix/messagemanager-dispatch
  • fix/misc-cleanups
  • fix/navigation-correctness
  • fix/net-replay-deser-hardening
  • fix/network-cluster
  • fix/network-reconciliation-polish
  • fix/novafall-ball-escape
  • fix/novafall-guard-plugin-install
  • fix/parallel-flaky-tests
  • fix/parallelism-cluster
  • fix/physics-correctness
  • fix/remaining-code-review-items
  • fix/render-target-texture-id-space
  • fix/replay-remove-reflection
  • fix/replication-udp-message-size
  • fix/review-generators
  • fix/review-src-hardening
  • fix/sample-cleanups
  • fix/sample-inputdebugger
  • fix/sceneserializer-nested-keys
  • fix/snapshot-restore-tag-components
  • fix/test-validity
  • fix/testbridge-ipc
  • fix/testbridge-snapshot-roundtrip
  • fix/testing-logging-debugging
  • fix/ui-cluster
  • graphics-abstract
  • main
  • perf/editor-entity-benchmark
  • perf/editor-serialization-gc
  • refactor/473-split-large-test-files
  • refactor/remove-runtime-prefabs
  • refactor/unify-asset-models
  • silk-platform-integration
  • test/editor-settings-isolation
  • test/fix-nav-context-and-mcp-mocks
  • test/quarantine-wallclock-tests
  • tyevco-patch-1

28 Jul 2026 04:07PM UTC coverage: 64.277% (+0.06%) from 64.22%
30376778113

push

github

tyevco
fix(graphics,samples): Select system fonts by loadability so macOS collections are skipped (#1365)

Every windowed sample failed to load a font on macOS. `/System/Library/Fonts/Helvetica.ttc`
was the first macOS candidate in four duplicated discovery lists, and each list selected on
`File.Exists` alone and returned the first hit. `.ttc` is a TrueType Collection - several faces
behind a `ttcf` header rather than a font table directory - and `SilkFontManager` loads with
`fontSystem.AddFont(File.ReadAllBytes(path))`, which initialises at offset 0, so stb rejected it
with a bare `stbtt_InitFont failed`. Existence is not loadability, so an unusable file shadowed
every later candidate that would have worked.

- Add `SystemFonts` to `KeenEyes.Graphics.Abstractions`: one platform-aware candidate list plus
  `FindFirstUsable()`, which selects by reading the leading 4-byte sfnt tag and skipping anything
  the rasterizer cannot open at offset zero - collections, web formats, truncated or unreadable
  files. The check, not the list, is what stays correct when Apple moves fonts again.
- Reorder the macOS candidates so the single-font files under
  `/System/Library/Fonts/Supplemental` come first and the `.ttc` last. Windows and Linux entries
  are unchanged.
- Replace the four duplicated `FindSystemFont` helpers (Sample.UI, Sample.Showcase,
  Sample.NovaFall, EditorApplication) with calls to the shared locator.
- Name the file and the format when a collection reaches `LoadFont`/`LoadFontFromMemory`, and wrap
  FontStashSharp's anonymous rejection at the boundary, per the #1274 diagnostics contract.
  Collection support itself remains deliberately out of scope.
- Make the Sample.UI and Sample.Showcase catch-alls report what actually failed instead of
  asserting "This sample requires a display" on a machine that had just logged a GL device line
  (third instance of the class tracked in #1256).

Closes #1365

9079 of 13305 branches covered (68.24%)

Branch coverage included in aggregate %.

70 of 76 new or added lines in 3 files covered. (92.11%)

4 existing lines in 3 files now uncovered.

53586 of 84187 relevant lines covered (63.65%)

1.0 hits per line

Relevant lines Covered
Build:
Build:
84187 RELEVANT LINES 53586 COVERED LINES
1.0 HITS PER LINE
Source Files on main
  • Tree
  • List 1058
  • Changed 5
  • Source Changed 2
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
30376778113 main fix(graphics,samples): Select system fonts by loadability so macOS collections are skipped (#1365) Every windowed sample failed to load a font on macOS. `/System/Library/Fonts/Helvetica.ttc` was the first macOS candidate in four duplicated discov... push 28 Jul 2026 04:13PM UTC tyevco github
64.28
30376572913 fix/macos-font-discovery Merge a09a9f858 into 14a8b0ee2 Pull #1367 28 Jul 2026 04:10PM UTC web-flow github
64.28
30374356992 main docs: Correct the plugin-install comment about when the OS window is created The comment added in #1259 said SilkWindowPlugin.Install 'creates the window (and therefore initializes GLFW) right here'. Only the second half is true: Install initiali... push 28 Jul 2026 03:43PM UTC tyevco github
64.22
30371985237 fix/macos-main-thread-window Merge 8629e8bd2 into 1cbd5ab75 Pull #1366 28 Jul 2026 03:15PM UTC web-flow github
64.23
30361115029 dependabot/github_actions/actions/checkout-7 Merge 24df1a5ce into 1cbd5ab75 Pull #1339 28 Jul 2026 01:01PM UTC web-flow github
64.31
30360962500 main ci: Run the test suite on macOS (non-blocking to start) The suite has never executed on macOS. The only Apple Silicon coverage in the repo was the AOT publish job in aot-compatibility.yml, so ~14,900 tests were unverified on the platform the iOS ... push 28 Jul 2026 12:59PM UTC tyevco github
64.32
30322907581 fix/render-target-texture-id-space Merge 83eaa84f7 into 29dd3ee1d Pull #1361 28 Jul 2026 02:27AM UTC web-flow github
64.01
30322560592 fix/macos-pipe-path-limit Merge 9f229a3e8 into 29dd3ee1d Pull #1359 28 Jul 2026 02:20AM UTC web-flow github
63.96
30322295363 main fix(ai): Move all execution state out of shared behavior definitions into per-entity memory Behavior definitions (BT nodes, AI actions, utility actions and considerations) are shared between every entity that runs them, but they stored per-execut... push 28 Jul 2026 02:14AM UTC tyevco github
63.95
30322064196 ci/macos-test-matrix Merge efb954064 into 08ebffe1c Pull #1356 28 Jul 2026 02:08AM UTC web-flow github
63.93
See All Builds (830)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc