Skip to content

feat: silent visual defaults and host-adaptive config locations - #20

Merged
alpertarhan merged 2 commits into
mainfrom
feat/silent-defaults-host-config
Sep 7, 2026
Merged

alpertarhan merged 2 commits into
mainfrom
feat/silent-defaults-host-config

Conversation

@alpertarhan

Copy link
Copy Markdown
Owner

Silent by default

The dashboard widget and its footer status were installed automatically in active repositories. This PR makes visual silence the default:

  • dashboard.enabled defaults to false — a repository still activates tools and skills, but nothing is drawn on screen (no widget, no footer status) until the dashboard is enabled explicitly
  • Widget registration and the footer status subscription share one gate (installWidget), so a single default silences both
  • Watch notifications keep following dashboard.notifications independently — functional wakes are unaffected

Host-adaptive config locations

Config paths were hardcoded to ~/.pi/agent/forgejo.json and <cwd>/.pi/forgejo.json. Under omp (the pi-mono fork):

  • the active agent directory (~/.omp/agent) and project .omp/ directory are preferred
  • legacy fallback: an existing .pi config keeps working unchanged, so shared pi/omp setups do not break on upgrade
  • pi paths are untouched

The host context (isOmp, getAgentDir()) is resolved once at session start in the extension entry and injected into config.ts — keeping config.ts free of pi-coding-agent imports that would drag optional dependencies into the test graph.

Verification

  • vitest 212/212, tsc --noEmit clean
  • Live on omp 18.1.11 (sentirum/agent-cortex): legacy shared config resolves, in-repo activation works (forgejo_context current → sentirum:sentirum/agent-cortex), no widget/status
  • pi regression: OK

Silent by default: the dashboard widget and its footer status line were
installed automatically in active repositories. Users who only want the
tools now get exactly that — dashboard.enabled defaults to false, so
nothing is drawn on screen until it is enabled explicitly; watch
notifications still follow dashboard.notifications independently.

Host-adaptive config: config paths were hardcoded to ~/.pi/agent and
<cwd>/.pi. Under omp the toolkit now prefers the active agent directory
(~/.omp/agent) and the project .omp/ directory, falling back to the
legacy .pi locations when they already hold a config so existing shared
setups keep working on upgrade. pi behavior is unchanged. The host
context is resolved once at session start in the extension entry, which
keeps config.ts free of pi-coding-agent imports (they would drag
optional dependencies into the test graph).

Verified live on both hosts: omp resolves the legacy shared config and
activates in-repository (forgejo_context current reports the resolved
repo), pi regression unchanged; vitest 212/212.
The Node 22 build/import smoke test follows runtime imports; importing
pi-coding-agent from the extension entry dragged its optional
pi-server dependency into the bundle and broke the build. pi sets
PI_CODING_AGENT=true for extensions and omp does not, so the host and
agent directory are now derived purely from the environment
(PI_CODING_AGENT / PI_CODING_AGENT_DIR / OMP_PROFILE), with no module
import at all.
@alpertarhan
alpertarhan merged commit 3be4a57 into main Sep 7, 2026
3 checks passed
@alpertarhan
alpertarhan deleted the feat/silent-defaults-host-config branch September 7, 2026 12:26
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