Skip to content

v0.5: NativeAOT, threat model, release workflow#17

Merged
tig merged 3 commits intomainfrom
v0.5-remaining-items
May 5, 2026
Merged

v0.5: NativeAOT, threat model, release workflow#17
tig merged 3 commits intomainfrom
v0.5-remaining-items

Conversation

@tig
Copy link
Copy Markdown
Member

@tig tig commented May 5, 2026

Summary

  • NativeAOT settings added to Clet.csproj per spec §4.9 (PublishAot, InvariantGlobalization, StackTraceSupport, etc.)
  • Threat model published at docs/threat-model.md — expands the Appendix A sketch into a full document covering trust boundaries, untrusted inputs, terminal escape sanitization, --title handling, Markdown link policy, file access scope, plugin exclusion, DoS, and JSON output integrity
  • Release workflow at .github/workflows/release-on-tg-release.yml per spec §5.2-§5.5 — triggered by repository_dispatch from TG or manual workflow_dispatch; builds AOT binaries for 6 RIDs, runs all test suites, publishes to NuGet, creates failure issues on error

Decisions made

  • linux-arm64 / win-arm64 runners: Using ubuntu-22.04 and windows-2022 respectively. GitHub doesn't offer dedicated ARM runners for all plans; these will cross-compile or be upgraded when ARM runners are available.
  • WinGet publish: Deferred to a separate workflow — wingetcreate requires Windows tooling and the manifest PR process is async (2-24h SLA from Microsoft's bot).
  • Homebrew formula: Placeholder in the workflow. Actual bottle generation lands when gui-cs/homebrew-tap is created. Build-from-source per D-012.
  • Code signing steps: Commented out / omitted per D-012 (deferred post-1.0).

Issue #4 checkboxes ticked

Updated issue #4 to reflect completed items: all lock criteria, md viewer, link safety, Markdown help, open question #4, TG dependencies #5156/#5157/#5158.

No spec/decisions/runbook impact

The threat model is a new document (not a spec change). The release workflow implements spec §5.2-§5.5 as-designed. NativeAOT settings implement spec §4.9 as-designed.

Test plan

  • dotnet build --no-restore — 0 errors, 0 warnings
  • Unit tests: 188 passed
  • Integration tests: 42 passed, 2 skipped (expected)
  • Smoke tests: 7 passed, 1 skipped (expected)

🤖 Generated with Claude Code

tig and others added 3 commits May 5, 2026 13:20
PublishAot, InvariantGlobalization, StackTraceSupport, DebuggerSupport,
EventSourceSupport, UseSystemResourceKeys per spec §4.9.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Expands the Appendix A sketch into a full threat model covering trust
boundaries, untrusted inputs, terminal escape sanitization, --title
handling, Markdown link policy, file access scope, plugin exclusion,
DoS, and JSON output integrity.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
release-on-tg-release.yml: triggered by repository_dispatch from TG or
manual workflow_dispatch for rollback patches. Builds AOT binaries for
6 RIDs (osx-arm64/x64, linux-x64/arm64, win-x64/arm64), runs all test
suites, publishes to NuGet. Homebrew formula generation is a placeholder
(build-from-source per D-012). Creates a failure issue on error.

Decisions made:
- linux-arm64 and win-arm64 use same-arch runners (ubuntu-22.04 and
  windows-2022) since GitHub doesn't yet offer dedicated ARM runners
  for all plans; cross-compile or upgrade when available.
- WinGet publish deferred to a separate workflow since wingetcreate
  requires Windows-specific tooling and the manifest PR process is
  async (2-24h SLA).
- Homebrew formula is a placeholder; actual bottle generation lands
  when gui-cs/homebrew-tap is created.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tig tig merged commit e6657c0 into main May 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant