Skip to content

feat: M9 release notes + M3.5-ext DNS proxy + M8 effort UI selector#47

Merged
oratis merged 1 commit into
mainfrom
feat/m9-release-notes-dns-effort
May 28, 2026
Merged

feat: M9 release notes + M3.5-ext DNS proxy + M8 effort UI selector#47
oratis merged 1 commit into
mainfrom
feat/m9-release-notes-dns-effort

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

Three small polish pieces: gen-release-notes script (buckets by conventional commit) + userspace DNS proxy for allowedDomains (M3.5-ext scaffold) + /effort interactive selector table. 25 new tests. 476→501 passing.

Three small but visible pieces of polish.

  · scripts/gen-release-notes.ts (NEW) — walks `git log <from>..<to>`,
    buckets commits by Conventional-Commit type (feat / fix / perf /
    refactor / docs / test / chore / other), renders Markdown with emojis
    + short hashes. Strips Co-Authored-By trailers. 16 unit tests.

  · packages/core/src/sandbox/dns-proxy.ts (NEW) — userspace UDP DNS
    resolver that returns NXDOMAIN for anything not in allowedDomains;
    forwards allowed lookups to upstream (default 1.1.1.1). M3.5-ext
    scaffold; full sandbox integration (resolv.conf wiring in bwrap /
    sandbox-exec) is deferred but the resolver itself is testable. 10
    unit tests covering DNS wire format + bind + NXDOMAIN + close
    idempotence.

  · apps/cli/src/commands.ts — `/effort` now shows an interactive
    selector table (tier / maxTokens / temperature / use case) when
    called with no args; bare `/effort` no longer just dumps the
    current value. Switch still works with `/effort <tier>`.

  · vitest.scripts.config.ts + package.json — root test script now
    includes scripts/*.test.ts. Renamed to avoid pnpm -r picking it
    up for every workspace package.

Tests: core 429 → 438 (+9 DNS), cli unchanged 47, scripts new 16.
Total 476 → 501 passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit a5b5f07 into main May 28, 2026
@oratis oratis deleted the feat/m9-release-notes-dns-effort branch May 28, 2026 07:14
oratis added a commit that referenced this pull request May 28, 2026
Tracks PRs #46-#49 (post-v4 work):
  · #46 fix: worktree GIT_* env var leak (husky pre-commit context broke
    child git invocations)
  · #47 feat: M9 release-notes script + M3.5-ext DNS proxy + M8 /effort UI
  · #48 feat(desktop): full Vite/Tailwind/electron-builder config (.template
    suffix avoids dep-missing failures)
  · #49 feat: WhisperCppProvider + 4 more desktop screens + Nav

Major-milestone status:
  · M0-M5.2 + M3.5 + M3c-rest + M4 + M8 → 100%
  · M6 → 65% (skeleton + 6 screens + all build configs; need binary deps +
    last 5 screens + agent IPC + Apple signing)
  · M7 → 15% (depends on M6)
  · M9 → 75%

Overall: ~95% v1 scope. Remaining estimate: 2-3 weeks single-engineer-
focused for v1 ship. M6 Mac client is the only multi-week piece.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
oratis added a commit that referenced this pull request May 28, 2026
…vation (#53)

Two long-form docs + release workflow polish.

  · docs/SHIPPING_MAC.md (NEW, ~140 lines)
    - Prereqs: Apple Developer membership, Xcode, Developer ID Application
      cert, app-specific password, GH PAT.
    - One-time CI secrets table (APPLE_ID / APPLE_APP_SPECIFIC_PASSWORD /
      APPLE_TEAM_ID / CSC_LINK / CSC_KEY_PASSWORD / GH_TOKEN).
    - First local build commands (install heavy deps → activate
      .template configs → dev → pack → dist).
    - Releasing via tag flow.
    - Sanity-check notarytool history + spctl verification.
    - Auto-update flow walkthrough.
    - Common failure modes (cert without private key, notarytool
      stuck in progress, spctl rejection, quarantine flag).

  · docs/VOICE_INPUT.md (NEW, ~120 lines)
    - whisper.cpp install: macOS Homebrew + Linux source build.
    - Model download (base.en recommended; sizes vs accuracy).
    - settings.json `voice` config.
    - CLI + Mac client usage flow.
    - Privacy notes (audio file deleted post-transcript, no network).
    - Troubleshooting.
    - API example for plugin authors using @deepcode/core's
      WhisperCppProvider directly.

  · .github/workflows/release.yml
    - build-mac job: `if: false` → `if: vars.BUILD_MAC == 'true'`. The
      maintainer flips a Repository Variable when Apple secrets are
      wired; everything else stays automatic.
    - build-mac now activates the .template configs before building,
      and runs build:renderer + build:electron before electron-builder.
    - github-release: replaced the hand-rolled `git log` snippet with
      `npx tsx scripts/gen-release-notes.ts <prev-tag> HEAD` — uses
      the conventional-commit bucketing from PR #47.

Tests: still 512 passing. Nothing changes at runtime; this PR is docs +
config only.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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