fix: terminal UTF-8, deploy --no-otel, hermes schema drift, opencode model carry#2706
fix: terminal UTF-8, deploy --no-otel, hermes schema drift, opencode model carry#2706dgokeeffe wants to merge 1 commit into
Conversation
|
@dgokeeffe This PR is a Bug fix, Feature, or UI / frontend change but the Demo section is missing or only contains a placeholder. These change types require a screenshot or screen recording so reviewers can see the new behaviour without checking out the branch. Please update the Demo section with:
Use |
6a9db6b to
40f10b3
Compare
…encode model carry - inner/terminal: force a UTF-8 locale (C.UTF-8) into terminal env when the inherited environment has no UTF-8 signal, so native TUI harnesses in minimal containers don't fall back to ASCII. - deploy/databricks: add --no-otel to deploy without the OTel collector. - hermes_native_forwarder: introspect state.db columns and adapt SELECTs so schema drift across Hermes builds doesn't abort discovery/mirroring. - opencode_native_provider: carry the user config top-level model default into the synthesized config when no model is pinned. Signed-off-by: David O'Keeffe <dgokeeffe@users.noreply.github.com>
40f10b3 to
48a3cee
Compare
|
Thanks for working through these fixes. Could you please split this into separate PRs for:
These changes address unrelated problems, touch different subsystems, and have different verification and rollback paths. Keeping them separate will make each fix easier to validate, review, and merge independently. Please link the resulting PRs here when they are ready. |
|
Split into 4 separate PRs as requested:
Links to the new PRs above. Closing this one. |
Related issue
N/A — no tracking issue yet. (Replace with
Closes #NNNif one exists.)Summary
Four small, independent backend fixes bundled for review:
omnigent/inner/terminal.py) — when the inherited environment carries no UTF-8 locale signal, forceC.UTF-8into the terminal env so native TUI harnesses in minimal containers don't fall back to ASCII (glibc/musl shipC.UTF-8without a locale archive).--no-oteldeploy (deploy/databricks/deploy.py,databricks.yml,README.md) — deploy without the OpenTelemetry collector for collector-less workspaces. Also makes the post-start UCUSE_CATALOG/USE_SCHEMAgrant step warn-and-continue instead of aborting the whole deploy when the grant fails (the SP may already have access via group inheritance, or the deployer may lackMANAGEon a shared catalog).omnigent/hermes_native_forwarder.py) — introspectstate.dbcolumns and adapt SELECTs, so a schema change across Hermes builds (e.g. a droppedsessions.cwd) no longer aborts discovery/mirroring withno such column.omnigent/opencode_native_provider.py) — carry the user config's top-levelmodeldefault into the synthesized config when no model is pinned, so opencode-native doesn't silently fall back to its own default over the merged models map.ELI5
--no-otel: you can now skip the telemetry collector if you don't want it.Test Plan
ruff check+ruff formatclean on all changed Python; byte-compile clean.tests/inner/test_terminal.py(UTF-8 locale fallback),tests/test_hermes_native_forwarder.py(schema introspection),tests/test_opencode_native_provider.py(model carry-over).Demo
N/A — non-visual changes.
--no-otelis a CLI flag; optionally showomnigent deploy ... --no-otelresulting in a collector-less deployment.Type of change
Test coverage
Coverage notes
Each fix has a corresponding updated unit test (
test_terminal.py,test_hermes_native_forwarder.py,test_opencode_native_provider.py). The--no-oteldeploy path is covered by the updated deploy option wiring + docs; an integration deploy test would be a nice follow-up but isn't included here. These four changes are independent of each other and of the host-sharing PR — happy to split into separate PRs if reviewers prefer one-fix-per-PR.Changelog
--no-oteldeploys without the OpenTelemetry collector; terminal auto-forces a UTF-8 locale in minimal containers