Skip to content

Release: promote measured ClosedRoom candidate - #49

Open
daniele21 wants to merge 200 commits into
mainfrom
dev
Open

Release: promote measured ClosedRoom candidate#49
daniele21 wants to merge 200 commits into
mainfrom
dev

Conversation

@daniele21

@daniele21 daniele21 commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Release intent

Promote the final integrated ClosedRoom candidate from dev to stable main under the repository RELEASE contract.

Candidate identity

  • Candidate: dev@23dafebbc4f2c00a0b92496fe73085387ef6ee1f
  • Candidate tree: 4fd02a28fa2b66716383546ae566b0c47d893fef
  • Stable base: main@2e821c08fbba8b63fd866f155bb805096d36e029

Any subsequent dev movement invalidates candidate-bound evidence.

Automated release readiness

Current exact-candidate hosted evidence:

  • Repository Health #370: PASS on 23dafebb…;
  • RELEASE/FULL Remote preflight #378: PASS on 23dafebb….

Hosted CI establishes deterministic automated readiness only and never substitutes for target-Mac or Apple-authority release requirements.

REAL_ENVIRONMENT status

A fresh LOCAL REAL_ENVIRONMENT run has now been executed on current exact candidate 23dafebbc4f2c00a0b92496fe73085387ef6ee1f using exact artifact ClosedRoom-0.1.0-local-20260911T145416Z-cc6275-23dafebbc4f2.app.

The aggregate currently reports FAIL for both target_mac_recording_ui and seed_target_mac_recording_ui. This aggregate only exposes the wrapper checks, so the first nested UI checkpoint still needs to be read from ui-target-mac-report.json and contention-seed-ui-report.json before classifying the failure or changing code.

The immediately preceding representative-Mac run on 1db33c60… established PASS through packaged WKWebView accessibility, native capture + TCC, recording start/stop, persistence, both microphone + system-audio tracks, current post-stop Meeting workspace and Home search availability; both journeys then failed only at keyboard_cmd_k_search. PR #58 replaced global HID posting with PID-targeted key delivery and is included in current 23dafebb….

Because Apple Developer Program distribution authority is unavailable, LOCAL REAL_ENVIRONMENT can establish representative target-Mac behavior but cannot establish Developer ID signing, secure timestamp, app/DMG notarization and stapling, distribution Gatekeeper acceptance, or final release readiness.

Blocking release evidence

Do not merge this PR until all applicable release evidence matches the exact candidate:

  • passing packaged WKWebView/accessibility/keyboard-focus journey, including Cmd-K search and Escape;
  • TCC-backed native both capture with persisted non-empty microphone and system-audio tracks and clean lifecycle;
  • real local MLX completion plus bounded CPU/RSS/scheduler/thermal observation;
  • PRS-16 physical AI-busy contention proof with truthful Preparing recording, no premature capture and capture after the safe boundary;
  • PRS-9 representative dual-track vs mixed-track benchmark;
  • any materially required subjective VoiceOver/usability observation;
  • Developer ID signing, timestamping, notarization/stapling and distribution Gatekeeper evidence if stable distribution is pursued.

A candidate/base move, material source edit, production artifact rebuild/signing mutation, or mismatched evidence invalidates affected release evidence.

Integrated validation trail

Readiness classification

  • Implementation complete: yes
  • Integration complete on dev: yes
  • Automated release readiness: PASS on exact candidate
  • LOCAL REAL_ENVIRONMENT: current-candidate run executed; FAIL pending nested-check diagnosis
  • Apple distribution authority: blocked / unavailable
  • Release-ready: no
  • Stable promotion to main: blocked

This PR remains an evidence-gathering boundary until target-Mac and distribution obligations are truthfully resolved.

Introduce a process-wide bounded scheduler for memory-heavy ClosedRoom jobs, with deterministic queue capacity, cancellation, shutdown, and metrics. Validated by STRONG remote preflight on exact PR head.
Coalesce high-frequency volume telemetry, bound discrete capture event/history retention and warnings, and expose saturation counters. STRONG remote preflight passed on exact PR head including arm64 package smoke.
Pin local-llm-server 0.4.0 to validated immutable source revision 53500af8c1e1df1c92937b18928790fded8b437f, move updater logic to reproducible source/release modes, and update compatibility tests. FULL remote preflight passed on exact PR head including arm64 package smoke.
Bound browser fallback upload backlog to 64 MiB / 24 pending chunks with lossless fail-closed finalization and localized saturation messaging. SCOPED remote preflight passed on the exact PR head.
Add on-demand privacy-safe process, sidecar, machine and heavy-workload resource telemetry without background polling. STRONG remote preflight passed on exact PR head, including arm64 packaged-app lifecycle smoke.
Keep at most one registered local LLM/VLM resident per managed phase, return the sidecar to a cold state after local analysis/visual workloads, preserve external-server ownership, and fall back to process stop/restart for explicit/custom model paths. Update architecture and feature documentation with the canonical arbiter/lease/residency ownership, with tests covering success, failure and override propagation.
Enforce phase-scoped local model residency
daniele21 and others added 30 commits September 5, 2026 15:36
Replay the AX multi-window fix cleanly on the current dev baseline and keep target-Mac REAL_ENVIRONMENT confirmation deferred to release.
Complete the saved Meeting fast-open slice with lazy accessory loading, isolated retry/recovery, stale-response guards, coalesced reloads, browser FULL_MEDIA coverage, and exact-head FULL integration validation.
* feat: persist preparation job relationships

* feat: expose transcription terminal callbacks

* feat: make analysis jobs composable

* feat: add durable meeting preparation state machine

* feat: expose prepare notes workflow

* fix: keep meeting analysis aligned to current transcript

* fix: migrate job dedupe column before indexing

* test: cover durable meeting preparation semantics

* fix: keep queued cancellation terminal

* feat: add meeting preparation client

* feat: make prepare notes the meeting primary action

* fix: reveal transcript at preparation milestone

* test: add prepare notes browser full-media journey

* test: preserve saved meeting browser journey

* test: run all affected meeting browser journeys

* docs: register meeting preparation e2e journey

* docs: align meeting ux contract with prepare notes

* docs: document durable meeting preparation workflow

* docs: record PRS-12 integration candidate

* docs: move PRS-12 to integration candidate

* fix: cancel children admitted during preparation races

* test: cover preparation cancel admission races

* test: retain preparation media in canonical evidence artifact

* fix: keep partial preparation output non-canonical

* test: keep incomplete preparation output non-canonical

* fix: avoid legacy partial-analysis fallback after preparation

* docs: keep current state within context budget

* docs: keep meeting workstream within context budget

* test: align notes workflow contract with preparation owner

* test: reload meeting for preparation reconnect journey
Implement shared structured meeting notes with source-aware v2 outputs, virtual legacy projections, bounded chunking, exact cache identity, automated FULL_MEDIA recovery evidence, and validation-selector coverage.
* feat: add durable structured note edit overlay

* test: cover structured note edit revisions and conflicts

* feat: project structured note revisions and edits

* feat: add structured note edit request schema

* feat: expose structured note edit endpoints

* feat: add structured note edit client

* feat: add verifiable editable notes surface

* test: cover edit carry across projected revisions

* feat: edit verified notes in meeting workspace

* test: add verified note edit browser journey

* test: include verified note edit browser journey

* test: register verified note edit critical journey

* test: prove structured note edits survive catalog reopen

* fix: preserve e2e contract version

* feat: retain source snapshot for removed note edits

* feat: expose source snapshot on structured note edits

* feat: surface removed note edit conflicts

* test: retain source evidence for removed note edits

* test: persist note source snapshots across reopen

* test: lock structured note conflict recovery UI

* test: cover structured note edit API boundaries

* docs: record PRS-14 integration candidate

* docs: register verifiable editable meeting notes

* docs: clarify PRS-14 conflict evidence
* PRS-15: add bounded catalog meeting search

* PRS-15: expose paged archive search

* PRS-15: cover complete catalog search

* PRS-15: cover paged meeting search API

* PRS-15: add bounded meeting search client

* PRS-15: add complete archive search dialog

* PRS-15: move global search out of Today preview

* PRS-15: lock complete archive search frontend contract

* PRS-15: add archive search FULL_MEDIA journey

* PRS-15: include archive search browser journey

* PRS-15: verify FTS5 in packaged app smoke

* PRS-15: declare archive search FULL_MEDIA evidence

* PRS-15: align workstream with archive search candidate

* PRS-15: refresh durable current state

* PRS-15: make project filter canonically exact

* PRS-15: make search dirty triggers conflict-safe

* PRS-15: align archive e2e with StrictMode load bound
* PRS-16: add atomic capture reservation to heavy scheduler

* PRS-16: expose capture reservation API

* PRS-16: register capture admission router

* PRS-16: cover capture and heavy-work admission races

* PRS-16: cover capture reservation API lifecycle

* PRS-16: add capture reservation client

* PRS-16: coordinate recording start with AI workload reservation

* PRS-16: keep logical pending capacity bounded during capture

* PRS-16: prove capture cannot exceed logical queue capacity

* PRS-16: show truthful recording preparation while AI is busy

* PRS-16: add busy-AI recording FULL_MEDIA journey

* PRS-16: include busy-AI recording browser journey

* PRS-16: register busy-AI recording evidence contract

* PRS-16: define truthful capture-priority UX

* PRS-16: advance meeting efficiency workstream

* PRS-16: record current capture-priority integration state

* PRS-16: keep E2E contract version compatible

* PRS-16: keep current state within context budget

* PRS-16: compact active workstream context

* PRS-16: remove unused audio meter helper

* PRS-16: align new meeting lock contract with preparation state
* docs: mark PRS-16 integrated

* docs: advance meeting workstream after PRS-16
Converge Today, Meeting and Projects into one adaptive macOS workspace shell while preserving existing local-first product/runtime ownership. Includes deterministic workspace coherence FULL_MEDIA coverage and date/locale/progress-stable browser fixtures.
Close PRS-17 durable documentation after #43 integration, register the adaptive workspace feature, and advance PRS-18 as the next measured release slice.
* docs: consolidate pre-release workstream state

* docs: finalize product runtime workstream

* docs: finalize UX simplification workstream

* docs: keep release state within context budget
Make PRS-18 release acceptance executable and fail-closed, including production signing/notarization tooling, target-Mac measured evidence runners, physical AI-busy contention proof, and canonical release commands. Validated by exact-head INTEGRATION/FULL preflight #329.
Align durable release truth after PRS-18 tooling integration and correct the dev-to-main RELEASE/FULL sequencing. Validated by Repository Health #324 and INTEGRATION/LEAN preflight #332.
Ensure every canonical Saved Meeting browser journey harness selects the browser-e2e gate, with parametrized selector coverage. Exact-head INTEGRATION/FULL preflight #337 and Repository Health #329 passed.
Replace the wall-clock reconnect race with a bounded fixture barrier released only after the same active parent is observed. Exact-head INTEGRATION/SCOPED preflight #340, including Saved Meeting browser FULL_MEDIA, and Repository Health #332 passed.
Add a single target-Mac release evidence runner that composes the existing measured-release and AI-busy contention owners, emits a privacy-bounded aggregate PASS/FAIL report, and documents the operator runbook. Exact-head Repository Health #338 and Remote preflight #346 passed.
…ty (#54)

Add a target-Mac LOCAL REAL_ENVIRONMENT evidence path for environments without Apple Developer distribution authority, plus bounded AX/WindowServer diagnostics for repeated ClosedRoom window visibility failures. Preserve canonical release qualification and privacy boundaries. Exact-head Repository Health and INTEGRATION/FULL Remote preflight passed.
Propagate privacy-bounded closedroom_window_missing diagnostics from canonical nested target-Mac UI evidence reports into the aggregate. Exact-head Repository Health #357 and INTEGRATION/SCOPED Remote preflight #365 passed.
Align the target-Mac smoke and FULL_MEDIA checkpoint with the current MeetingDetailPage post-stop actions. Repository Health #362, exact-head Remote preflight #370, and the local UI-contract regression test passed.
* fix: persist macOS accessibility helper identity

* fix: prompt for accessibility on stable helper

* fix: report correct accessibility client remediation

* docs: clarify stable accessibility helper permission

* test: cover stable accessibility helper contract
* fix: target synthetic keys to ClosedRoom process

* test: cover targeted keyboard event delivery
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