Skip to content

release: Code UX 0.9.9 - #3136

Merged
numnx merged 203 commits into
mainfrom
release/v0.9.9
Jul 15, 2026
Merged

release: Code UX 0.9.9#3136
numnx merged 203 commits into
mainfrom
release/v0.9.9

Conversation

@numnx

@numnx numnx commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Code UX 0.9.9

Promotes the validated dev integration state to main as Code UX 0.9.9.

This patch release adds complete English/German dashboard internationalization, production-ready provider profiles and management workflows for all six chat connectors, stronger connector state and lifecycle guarantees, more accurate sprint/QA projections, smoother Live rendering, and a fail-closed npm packaging allowlist that prevents local runtime artifacts from entering releases.

Release Snapshot

Item Details
Version 0.9.9
Release PR #3136
Base main at 436eee7173415281ef72d399533395f96de95bf0 (0.9.8)
Content head dev at b51e0721bec0a5a20caada2823cc6e923c972aff
Release branch head 976eea8a7a559b1699a2addd231ceb7a254f0f9d
Included dev lineage sync #3132
Scope 919 files changed; 55,787 additions and 12,836 deletions across dashboard, connector runtime, orchestration, tests, documentation, and release packaging
Integration volume 2 completed integration sprints, 42 task PRs, and 201 commits (104 non-merge commits)
Release branch release/v0.9.9

What’s New

English and German Dashboard Internationalization

  • Settings → Appearance now includes a Language selector for English and German, applying immediately without joining Settings dirty-state or Save/Reset behavior.
  • The selected locale persists in browser-local storage, synchronizes across open tabs, updates the root HTML lang attribute, and falls back safely to English when storage is missing, invalid, or unavailable.
  • Dashboard-owned copy is translated across the application shell, onboarding, Overview, Projects, Sprints, sprint authoring, Quicksprints, Tasks, Chat, Agents, Live, Nodes, Scheduler, Memory, Knowledge, Browser Preview, File Browser, Custom Dashboards, Stats, and Settings.
  • Locale-aware Intl formatting now covers numbers, dates, times, relative time, lists, percentages, sizes, plurals, cost analytics, and provider-call summaries without changing underlying values.
  • Provider output, runtime/API/MCP messages, diagnostics, paths, source code, user-authored content, and English documentation bodies remain verbatim and outside the translation boundary.
  • Feature-owned typed message catalogs, key/placeholder/plural parity checks, static-copy scanning, exact rationale-bearing exemptions, focused English/German tests, and navigation E2E coverage make incomplete localization fail visibly.

Complete Six-Provider Chat Connector Platform

  • A typed provider-profile registry now defines setup fields, secrets, supported modes, authentication, ingress normalization, conversation identity, outbound behavior, verification, sessions, lifecycle metadata, and official references for Discord, WhatsApp, Telegram, Slack, Microsoft Teams, and iMessage.
  • Discord adds signed HTTP interactions, Gateway session/reconnect behavior, bot-token replies, idempotency, and rate-limit handling.
  • WhatsApp, Telegram, and Slack add official API ingress, acknowledgements, outbound replies, bounded provider verification, and explicit legacy bridge compatibility.
  • Microsoft Teams adds Bot Connector Activity validation, fixed Microsoft metadata/JWKS trust, tenant/service URL policy, token caching, and reply delivery.
  • iMessage adds a versioned native bridge protocol with a bounded subprocess and secret boundary plus health verification.
  • Profiles advertise only implemented transport modes; registry presence remains a software contract rather than provider certification or an implied live credential pass.

Durable Connector State, Delivery, and Management

  • Connector secrets and session state are encrypted and persisted atomically, with write-only credential handling and sanitized REST, MCP, dashboard, health, and verification responses.
  • Authenticated ingress is idempotent at the durable insert boundary. Unbound channels fail explicitly, while ambiguous shared channels remain pending for disambiguation instead of guessing a project.
  • Every outbound attempt uses a compare-and-set lease. Retryable failures use capped jittered backoff, provider Retry-After guidance is persisted, ambiguous-delivery failures stop safely, and terminal cancellation cannot be revived by a late completion.
  • Startup independently recovers ingress, provider sessions, and expired outbound leases; shutdown cancels and settles connector work before storage closes.
  • Settings now supports the complete connection workflow, including provider-specific configuration, verification, binding, session visibility, delivery inspection, approved retry/cancel actions, and redacted diagnostics.
  • Deterministic fan-in tests exercise all six profiles through verification, binding, ingress, Chat reply, outbound delivery, restart recovery, and matching REST/MCP inspection. Optional live evidence remains credential-gated and restricted to fixed provider-controlled endpoints.

Release and Runtime Hardening

  • The npm package now uses an explicit allowlist for every bundled .code-ux asset instead of including the whole local runtime directory.
  • Release verification checks both package.json and the final npm pack manifest, rejecting unexpected .code-ux content plus local logs, SQLite state, and environment files before installation.
  • Live dashboard animations use a paced paint loop so software-rendered or no-vsync browsers remain responsive while the pipeline and DAG continue updating.
  • Runtime timestamps accept current ISO/Unix formats and the legacy 12-hour time-only format; invalid optional timestamps are omitted instead of interrupting Live.
  • CI and documented development requirements are aligned on pnpm 11.13.0 and Node 22.13+.
  • Native package and Electron preparation now run the approved ONNX postinstall in CPU-only mode, avoiding the upstream optional CUDA/TensorRT download while proving the bundled CPU runtime loads.

Fixes

Connector Security and Reliability

  • Fixed duplicate concurrent callbacks invoking Chat more than once by making the durable ingress insert the idempotency boundary.
  • Fixed provider acknowledgement paths so post-ack model failures become durable failed deliveries instead of causing callback retry loops.
  • Fixed outbound races across pollers/processes, expired sending leases after restart, provider retry hints, manual cancellation, and ambiguous-send retry safety.
  • Fixed connector startup/shutdown ordering, reconnect timer cleanup, resumable session recovery, optional-provider readiness isolation, and repeated lifecycle starts.
  • Fixed credential, authorization header, signed URL, payload, and response-body exposure risks by keeping verification and health diagnostics sanitized.

Internationalization and Accessibility

  • Closed remaining German coverage gaps in Custom Dashboards, Nodes, chat connector Settings, Stats cost panels, Tasks, and workflow-status presentation.
  • Fixed English/German accessible names, focus restoration, live regions, keyboard interaction, responsive behavior, and test expectations without translating protocol identifiers or authored/runtime data.
  • Fixed generated documentation parity and the translated Tasks page landmark used by navigation E2E.
  • Normalized six extra end-of-file blank lines left by the integrated localization changes so the release diff passes whitespace validation.

Sprint, QA, and Delivery Status Accuracy

  • Fixed stale QA, CI, merge, and attention evidence from earlier sprint runs leaking into current sprint cards and workflow badges.
  • Fixed duplicate reviewer rows from repeated attempts and ensured completed review cycles verify coding follow-ups from a fresh branch snapshot rather than an obsolete resumed workspace.
  • Fixed startup recovery leaving QA rows stuck when their structured invocation lacked provider-runtime linkage.
  • Fixed completed 100% sprints suppressing QA/CI/merge evidence while preserving suppression during genuinely active coding.
  • Fixed merge-conflict and merge-required presentation overriding inactive or terminal sprint state.

Live and Analytics Responsiveness

  • Fixed animated backgrounds running unbounded in environments without dependable vsync, reducing Live rendering contention.
  • Fixed invalid optional runtime timestamps disrupting Live rendering and added locale-aware legacy time parsing.
  • Fixed remaining hard-coded cost-analytics pricing coverage, provenance, provider-call, token, and data-quality labels.

Release Packaging

  • Fixed .code-ux/debug.log being eligible for inclusion through the previous broad package directory entry. The file was found only in a local test pack, was never tracked or pushed, and is excluded by the explicit release allowlist.
  • Added a release-install regression gate that fails on broad or unexpected .code-ux entries and on packed runtime logs, databases, or environment files.
  • Fixed release-install and desktop packaging dependence on the optional ONNX NuGet download; package smoke now imports the installed CPU runtime directly.

Validation

Check Result
Quality guardrails Passed; existing advisory inventory only
Security audit Passed; no known vulnerabilities
Typecheck and lint Passed
Backend tests and coverage 460 files; 5,925 passed, 12 skipped; 84.38% lines, 84.08% functions, 73.05% branches, 83.09% statements
Dashboard tests 270 files; 2,514 passed, 1 skipped
Production build Passed
Documentation parity Passed after regenerating the affected public documentation mirror
Dashboard i18n static coverage Passed; 651 production files and 326 exact rationale-bearing exemptions checked
Packed npm install Local @codeuxai/codeux@0.9.9 pack contained 1,469 allowlisted entries; isolated install, bundled ONNX CPU import, and codeux --help passed. GitHub package smoke also passed; no local debug log was present
Diff validation git diff --check main passed
Publication preflight npm version 0.9.9, tag v0.9.9, and GitHub Release v0.9.9 were available before push
Playwright E2E Passed; all 18 Linux, macOS, and Windows purpose shards completed successfully
CodeQL analysis Passed for Actions and JavaScript/TypeScript
Cross-platform release candidates Passed for Linux, macOS, and Windows desktop packages

Additional local validation:

pnpm run ci
pnpm run check:docs-web
pnpm run check:dashboard-i18n
CODE_UX_SKIP_RELEASE_INSTALL_BUILD=1 node scripts/verify-release-install.mjs
git diff --check main

Risk and Rollback

  • Primary risk is concentrated in the breadth of translated dashboard surfaces, provider-specific authentication/session behavior, connector state migration and recovery, and shared sprint/QA status projections.
  • Translation is presentation-only and browser-local; backend contracts and persisted domain values are unchanged. Connector secrets remain write-only/encrypted, provider diagnostics are redacted, and optional connector outages do not affect global readiness.
  • Rollback before publication: revert this release PR from main and keep v0.9.8 active.
  • Rollback after publication: npm versions are immutable; publish a corrective patch release rather than attempting to republish 0.9.9.

Known Follow-Up

  • English and German are the only complete dashboard locales in this release. Additional languages require full-catalog, formatter, accessibility, and E2E coverage before they can be enabled.
  • Teams and iMessage do not issue live credential checks from the optional evidence lane; their deterministic contract paths remain covered, while provider certification and production credential validation remain operator responsibilities.

Full Merged PR Patch Log

Integration PRs

  • #3132 — sync the 0.9.8 release lineage and release-time fixes back into dev
  • #3128 — complete and verify all six chat connectors
  • #3131 — deliver the dashboard internationalization foundation

Chat Connector Tasks

  • #3062 — extract the typed connector profile registry
  • #3069 — complete Discord
  • #3065 — complete WhatsApp
  • #3066 — complete Telegram
  • #3068 — complete Slack
  • #3070 — complete Microsoft Teams
  • #3067 — complete the iMessage bridge
  • #3072 — encrypt and atomically persist connector state
  • #3108 — harden connector routing and lifecycle recovery
  • #3111 — wire connector verification into REST and MCP
  • #3119 — complete the dashboard connector workflow
  • #3122 — publish the connector verification matrix
  • #3127 — prove all connector paths end to end

Dashboard Internationalization Tasks

  • #3078 — build the dashboard i18n runtime
  • #3095 — internationalize the application shell
  • #3089 — translate onboarding
  • #3092 — add language selection and translate Settings chrome
  • #3093 — translate operational Settings
  • #3112 — translate model and memory Settings
  • #3088 — translate agent and guidance Settings
  • #3118 — translate integrations and MCP Settings
  • #3091 — translate Overview
  • #3086 — translate project management
  • #3100 — translate Sprints
  • #3113 — translate sprint authoring and Quicksprints
  • #3096 — translate Tasks
  • #3099 — translate dashboard Chat
  • #3114 — translate agent management
  • #3115 — translate Live
  • #3087 — translate Node Flows
  • #3090 — translate Scheduler
  • #3097 — translate Memory
  • #3084 — translate Knowledge
  • #3094 — translate Browser Preview
  • #3083 — translate File Browser
  • #3085 — translate Custom Dashboards
  • #3098 — translate Stats and analytics
  • #3126 — enforce complete i18n coverage
  • #3130 — document dashboard internationalization
  • #3134 — close remaining German coverage and regressions
  • #3133 — regenerate documentation mirrors
  • #3135 — finalize internationalization integration artifacts

Release Branch

  • 0479d04203807fdcd9af054d58ebefa74ef42647 — bump Code UX to 0.9.9, harden npm package contents, document release verification, synchronize Live documentation, and normalize release whitespace
  • 5f7d283df2b08a551c87f9d46e43cd9e6a56aa83 — stabilize cross-platform credential, connector, Tasks, route, and Electron validation
  • 976eea8a7a559b1699a2addd231ceb7a254f0f9d — make native package and desktop dependency preparation deterministic while retaining CPU runtime validation

Code UX and others added 30 commits July 13, 2026 22:45
…ex-f29b0c11-mrjsorla

(CODUX-225) Extract the chat connector profile registry
…ex-9f5d4cbb-mrjtgj21

(CODUX-225) Complete the Slack connector
…-verification into task/feature-codux-22-t02-codex-1f9c0cde-mrjtgd0y
…ex-1f9c0cde-mrjtgd0y

(CODUX-225) Complete the Discord connector
…-verification into task/feature-codux-22-t03-codex-51b87a23-mrjtgem0
…-verification into task/feature-codux-22-t06-codex-85a23533-mrjtglmg
…ex-51b87a23-mrjtgem0

(CODUX-225) Complete the WhatsApp connector
…-verification into task/feature-codux-22-t08-codex-361e6fad-mrjtgr1j
…-verification into task/feature-codux-22-t04-codex-8cd239e4-mrjtggh8
…ex-c94016a2-mrjvrqv0

(CODUX-226) Build the dashboard i18n runtime
…ex-8cd239e4-mrjtggh8

(CODUX-225) Complete the Telegram connector
…-verification into task/feature-codux-22-t07-codex-24812d70-mrjtgp06
…ex-24812d70-mrjtgp06

(CODUX-225) Complete the iMessage bridge connector
Code UX and others added 23 commits July 14, 2026 18:32
…ex-abbc7b0e-mrkwu27t

(CODUX-226) Enforce and exercise full i18n coverage
…ex-617e61fa-mrl07kb8

(CODUX-226) Document dashboard internationalization
# Conflicts:
#	docs-web/content/docs/operations-credential-security.mdx
#	docs-web/operations/credential-security.md
#	docs/operations/credential-security.md
…lization-foundation

Code-UX-Repair-Head: 91910fb960666d0b13a055e6895aaef61e1cf8cf
…lization-foundation

Code-UX-Repair-Head: ad906c6e07167f65715993a1a2988207a5799140
…ationalization-foundation

Code-UX-Repair-Head: 0fc7bb1
…a97fab-mrl4623o

Code-UX-Repair-Head: d063324598a6f5adc5646d25fa16c75ffb1ea8c7
…ex-57a97fab-mrl4623o

(CODUX-226) Regenerate and validate internationalization documentation mirrors
…foundation into task/feature-codux-22-t27-codex-117cb86f-mrl46221

Code-UX-Repair-Head: 0b2a92d1a05947c234a783275bc6f0ac15153d35
…ex-117cb86f-mrl46221

(CODUX-226) Complete remaining dashboard German coverage and repair i18n regressions
…ex-0bf355eb-mrl7x9nf

(CODUX-226) Finalize dashboard internationalization integration artifacts
…nternationalization-foundation

Sprint 226: Dashboard internationalization foundation — merge feature/CODUX-226-dashboard-internationalization-foundation into dev
@numnx
numnx marked this pull request as ready for review July 15, 2026 05:22
@numnx
numnx marked this pull request as draft July 15, 2026 05:32
@numnx
numnx marked this pull request as ready for review July 15, 2026 05:53
@numnx
numnx merged commit fdc87ed into main Jul 15, 2026
64 checks passed
@numnx
numnx deleted the release/v0.9.9 branch July 15, 2026 06:03
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