Skip to content

fix(proskenion): repair desktop app build (drifted Debug field + eval API) - #4149

Merged
forkwright merged 1 commit into
mainfrom
chore/fix-proskenion-build
May 27, 2026
Merged

fix(proskenion): repair desktop app build (drifted Debug field + eval API)#4149
forkwright merged 1 commit into
mainfrom
chore/fix-proskenion-build

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Why

The desktop app (proskenion) did not compile on main. It is excluded from the workspace (GTK/webkit2gtk system deps) and not built in CI, so two errors had drifted in undetected:

  1. state/connection.rs:118 (E0609) — the manual Debug impl referenced a removed retry_backoff_ms field.
  2. views/files/toolbar.rs:117 (E0599) — document::eval(&js).is_err(), but Dioxus eval returns an Eval future, not a Result.

What

  1. Dropped the stale retry_backoff_ms line from the Debug impl (field no longer exists; referenced nowhere else).
  2. Added .await to the toolbar eval call so it matches the other call sites (chat.rs, command_palette.rs) and actually drives the clipboard-write before checking the result.

Verification

cargo build -p proskenion --manifest-path crates/theatron/proskenion/Cargo.toml now compiles cleanly (no errors, no warnings). The root-workspace kanon gate --full is green (tip carries the Gate-Passed: trailer); note the main-workspace gate does not cover proskenion since it is excluded.

Review note

Leaving this for maintainer review rather than auto-merging: change #2 alters desktop-app runtime behavior (the clipboard copy now awaits the eval). Separately, proskenion has accumulated a backlog of clippy -D warnings lint debt (it is outside CI) — out of scope here; flagged for a dedicated cleanup.

… API)

proskenion is excluded from the workspace (GTK/webkit2gtk) and not built in
CI, so two compile errors had drifted onto main:

- state/connection.rs: the manual `Debug` impl referenced a removed
  `retry_backoff_ms` field (E0609). Dropped the stale line.
- views/files/toolbar.rs: `document::eval(&js).is_err()` — Dioxus `eval`
  returns an `Eval` future, not a `Result` (E0599). Added `.await` to match
  the other eval call sites (chat.rs, command_palette.rs).

`cargo build -p proskenion --manifest-path crates/theatron/proskenion/Cargo.toml`
now compiles cleanly.

Gate-Passed: kanon 0.1.0
@sonarqubecloud

Copy link
Copy Markdown

@forkwright
forkwright merged commit ea02844 into main May 27, 2026
6 checks passed
@forkwright
forkwright deleted the chore/fix-proskenion-build branch May 27, 2026 16:28
forkwright pushed a commit that referenced this pull request May 28, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](v0.27.0...v0.28.0)
(2026-05-28)


### Features

* **agora:** reintroduce Matrix channel provider
([cf4a13f](cf4a13f)),
closes [#3981](#3981)
* **complexity:** Tier-1 no-LLM handler registry
([#3970](#3970))
([#4107](#4107))
([8cacb1a](8cacb1a)),
closes [#4106](#4106)
* **energeia:** add prompt context policy slot
([3681da8](3681da8)),
closes [#3974](#3974)
* **energeia:** add prompt worktree policy slot
([#4066](#4066))
([b683be5](b683be5))
* **energeia:** add session isolation primitive
([#4093](#4093))
([3e18e26](3e18e26))
* **energeia:** bound DAG context handoff
([6e09a72](6e09a72)),
closes [#3974](#3974)
* **energeia:** emit child session progress
([#4067](#4067))
([40a627f](40a627f))
* **episteme:** add memory policy RL readiness
([#4046](#4046))
([a2a3a65](a2a3a65))
* **episteme:** NuExtract-2.0 ONNX bookkeeping provider
([#3978](#3978))
([#4108](#4108))
([5e97029](5e97029))
* **hermeneus:** add no-llm complexity tier
([7a9d810](7a9d810)),
closes [#3970](#3970)
* **hermeneus:** carry structured output format
([18db6e3](18db6e3)),
closes [#3972](#3972)
* **memory:** add project identity primitive
([#4059](#4059))
([8e7f676](8e7f676))
* **memory:** tag observations with runtime project id
([fc12cc3](fc12cc3))
* **mneme:** partition recall by project
([81f60f6](81f60f6)),
closes [#3975](#3975)
* **organon:** implement katharos worktree cleanup
([#4060](#4060))
([6dccac4](6dccac4))
* **provider:** accept codex oauth config type
([5f2d6b4](5f2d6b4)),
closes [#3980](#3980)
* **recall:** thread local reranker model path
([#4092](#4092))
([4e1833d](4e1833d)),
closes [#3977](#3977)
* **routing:** RoutingBoundary + FallthroughRouter — Q-learner prereqs
([#3969](#3969))
([#4105](#4105))
([6a3b2b9](6a3b2b9))


### Bug Fixes

* **aletheia/init:** honor the global -r/--instance-root flag for init
([#4177](#4177))
([1091647](1091647))
* **aletheia/maintenance:** unify the three maintenance task-name lists
and include audits in 'run all'
([#4178](#4178))
([c77b2d9](c77b2d9))
* **aletheia/tls:** reject --days 0 and overflowing --days instead of
emitting already-expired certs
([#4176](#4176))
([fd9d18d](fd9d18d))
* **ci:** open auto-merge PR for _llm regeneration instead of direct
push ([#4114](#4114))
([54fc7a6](54fc7a6))
* **ci:** repair YAML syntax in llm-regen workflow PR body
([#4118](#4118))
([f1fcff8](f1fcff8))
* **compile:** add missing project_id to Fact/ScoredResult/RecallResult
initializers; suppress loopback-url false positives
([#4125](#4125))
([0bed947](0bed947))
* **energeia:** add missing project_id field to training Fact
initializer
([#4110](#4110))
([c7fa56e](c7fa56e))
* **energeia:** pass real PR diff into QA
([cfca9df](cfca9df)),
closes [#3941](#3941)
* **episteme,aletheia:** carry scope/project_id/visibility through fact
supersession
([#4172](#4172))
([7cf2845](7cf2845))
* **episteme:** partition instinct aggregation by project
([98ca77d](98ca77d)),
closes [#3975](#3975)
* **episteme:** sanitize FTS query text so recall survives questions and
punctuation
([#4174](#4174))
([57fb08d](57fb08d))
* **fmt:** apply rustfmt to episteme nuextract bookkeeping provider
([#4113](#4113))
([f05f8f2](f05f8f2))
* **fmt:** apply rustfmt to hermeneus cc/codex/complexity providers
([#4111](#4111))
([4a1adf2](4a1adf2))
* **hermeneus:** classify seat-bridged providers as cloud
([0251691](0251691))
* **hermeneus:** codex provider silently drops tool-use turns
([#3980](#3980))
([#4104](#4104))
([9bfa5aa](9bfa5aa))
* **hermeneus:** ignore unenforceable max_tokens on CC/Kimi providers
instead of erroring
([#4166](#4166))
([b432978](b432978)),
closes [#4158](#4158)
* **hermeneus:** normalize OpenAI cache token usage
([#4045](#4045))
([c58947d](c58947d))
* **hermeneus:** restore pii-allow marker in vault_round_trip test
fixture ([#4127](#4127))
([38df495](38df495))
* **integration-tests:** add project_id to engine-tests Fact fixtures
([#4147](#4147))
([de46e53](de46e53))
* **lint:** add serde(deny_unknown_fields) to 39 taxis config structs
([#4121](#4121))
([9d5d1f2](9d5d1f2))
* **lint:** clean non-koina kanon lint baseline for full hygiene gate
([#4100](#4100))
([66b3ec7](66b3ec7)),
closes [#3987](#3987)
* **lint:** clear residual rust-lint in aletheia-lexica and organon
([#4186](#4186))
([c03c56b](c03c56b))
* **lint:** drive aletheia/commands rust-lint violations to zero
([#4207](#4207))
([d5a6ddd](d5a6ddd))
* **lint:** drive daemon (oikonomos) rust-lint violations to zero
([#4195](#4195))
([ea10c0c](ea10c0c))
* **lint:** drive eidos rust-lint violations to zero
([#4188](#4188))
([9196fbe](9196fbe))
* **lint:** drive energeia rust-lint violations to zero
([#4204](#4204))
([a034ea6](a034ea6))
* **lint:** drive eval (dokimion) rust-lint violations to zero
([#4202](#4202))
([18200b9](18200b9))
* **lint:** drive graphe rust-lint violations to zero
([#4189](#4189))
([319b689](319b689))
* **lint:** drive poiesis rust-lint violations to zero
([#4199](#4199))
([5fd4a36](5fd4a36))
* **lint:** drive symbolon rust-lint violations to zero
([#4193](#4193))
([50cb0e7](50cb0e7))
* **lint:** drive taxis rust-lint violations to zero
([#4196](#4196))
([abab180](abab180))
* **lint:** make kanon gate --full pass on main
([#4145](#4145))
([32d34be](32d34be))
* **lint:** resolve all kanon rust-lint violations in agora to zero
([#4122](#4122))
([bc2b769](bc2b769))
* **lint:** resolve kanon rust-lint violation in dianoia to zero
([#4133](#4133))
([12c5459](12c5459))
* **lint:** resolve kanon rust-lint violations in 6 tiny crates to zero
([#4120](#4120))
([4073a68](4073a68))
* **lint:** resolve kanon rust-lint violations in diaporeia to zero
([#4137](#4137))
([a6fd0f5](a6fd0f5))
* **lint:** resolve kanon rust-lint violations in hermeneus to zero
([#4184](#4184))
([6d767ee](6d767ee))
* **lint:** resolve kanon rust-lint violations in krites to zero
([#4139](#4139))
([112cf65](112cf65))
* **lint:** resolve kanon rust-lint violations in melete to zero
([#4123](#4123))
([d920662](d920662))
* **lint:** resolve kanon rust-lint violations in organon to zero
([#4140](#4140))
([ea87908](ea87908))
* **lint:** resolve kanon rust-lint violations in pylon to zero
([#4183](#4183))
([eaf556d](eaf556d))
* **lint:** resolve kanon rust-lint violations in thesauros to zero
([#4135](#4135))
([2d1aaf4](2d1aaf4))
* **matrix:** remove stale config dto surface
([9a067da](9a067da)),
closes [#3981](#3981)
* **nous,episteme:** stop double-wrapping recall errors and log failing
read scripts
([#4170](#4170))
([4820d63](4820d63)),
closes [#4156](#4156)
* **nous:** preserve local complexity routing boundary
([#4064](#4064))
([a5a3e1b](a5a3e1b))
* **nous:** remove redundant provider name from provider-unavailable
message ([#4167](#4167))
([c999a61](c999a61)),
closes [#4154](#4154)
* **proskenion:** clean API client lint
([#4054](#4054))
([8cb6bc8](8cb6bc8))
* **proskenion:** clean chart label lint
([#4080](#4080))
([f3b2059](f3b2059))
* **proskenion:** clean config prefs lint
([#4082](#4082))
([ae2bb3e](ae2bb3e))
* **proskenion:** clean meta assembly numeric lint
([#4077](#4077))
([e36bc75](e36bc75))
* **proskenion:** clean meta fetch lint
([#4076](#4076))
([b3bc5bc](b3bc5bc))
* **proskenion:** clean ops fetch lint
([#4078](#4078))
([e2626ca](e2626ca))
* **proskenion:** clean planning fetch lint
([#4079](#4079))
([4a55b8c](4a55b8c))
* **proskenion:** clean SSE lint slice
([#4052](#4052))
([d8cb78b](d8cb78b))
* **proskenion:** clean state indexing lint
([#4057](#4057))
([adc9622](adc9622))
* **proskenion:** clean stream error lint
([#4053](#4053))
([648a902](648a902))
* **proskenion:** clean tool metrics lint
([#4055](#4055))
([0314e74](0314e74))
* **proskenion:** clean truncation lint
([#4056](#4056))
([56bb553](56bb553))
* **proskenion:** clean UI empty fallback lint
([#4081](#4081))
([4f94553](4f94553))
* **proskenion:** repair desktop app build (drifted Debug field + eval
API) ([#4149](#4149))
([ea02844](ea02844))
* **proskenion:** tag credentials TODO debt quadrant
([#4071](#4071))
([f4748a6](f4748a6))
* **pylon:** accept bodiless POST /knowledge/facts/{id}/forget and
default the reason
([#4181](#4181))
([6961625](6961625))
* **pylon:** reject invalid metrics query params instead of silently
ignoring them
([#4153](#4153))
([adbabb8](adbabb8))
* **pylon:** replace unfulfilled expect with explicit allow on
ImportFactError re-export
([#4112](#4112))
([74f56fb](74f56fb))
* repair desktop smoke test + serialize flaky architecture_fact tests
([#4150](#4150))
([13ba571](13ba571))
* **routing:** preserve interactive after-action outcomes
([#4068](#4068))
([54751f0](54751f0))
* **routing:** wire empirical feedback router injection at runtime
startup ([#4099](#4099))
([3492670](3492670))
* **security:** clean high severity lint findings
([#4061](#4061))
([aa2f6b8](aa2f6b8))


### Documentation

* **_llm:** refresh current_state.toml to v0.27.0
([#4041](#4041))
([fbe9b91](fbe9b91)),
closes [#4034](#4034)
* **decisions:** add ADR-001 adopting Nygard ADR practice
([#4044](#4044))
([6c5e057](6c5e057))
* **decisions:** backfill aletheia ADRs 001-003 (D-020 canary)
([#4087](#4087))
([d90b37f](d90b37f))
* **matrix:** remove stale config affordance
([#4069](#4069))
([09e895b](09e895b))
* **organon:** refresh bookkeeper feature status
([#4065](#4065))
([bec9677](bec9677))
* **QUICKSTART:** bump prebuilt-binary version pin to v0.27.0
([#4043](#4043))
([ad3db0e](ad3db0e)),
closes [#4033](#4033)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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