52 Commits
Author SHA1 Message Date
Khaled AhmedandKhaled Ahmed 27ffaa5936 fix(linux): make systemd env setup explicit (#99)
Co-authored-by: Khaled Ahmed <[email protected]>
2026-09-14 23:05:15 +03:00
Andre Brait 01aef6d0e5 feat: copy user and assistant messages as text or Markdown (#100)
* feat: copy user and assistant messages as text or Markdown

* fix: exclude Mermaid status controls from copied text

* test: cover plain-copy fallback for oversized messages
2026-09-14 23:04:59 +03:00
Alfablos a0881e1ef8 added nix build (with source filtering) and nix run to the project (#59)
* added nix build (with source filtering) and nix run to the project

* Update nix build to conform to version 0.5.0:

- Removed leftover ouput dependency in flake.nix
- Added local font download during derivation build for JetBrains Mono and Geist
- Aadded `instrumentation.ts` to the nix source fileset
- Updated npm deps module hash in nix build
- Removed stale comments
2026-09-12 17:00:40 +03:00
CrazyTweeksandKhaled Ahmed bbe6016308 feat(linux): add systemd service manager and system tray (#55)
* feat(linux): add systemd service manager and system tray

Add Linux parity for the Windows tray service and macOS launchd agent:

- `ompweb-systemd` bin installs and manages a systemd user service
  (install/uninstall/start/stop/restart/status/open) that runs the local
  ompweb binary at login, restarts on crash, and bakes PORT/OMP_WEB_* env
  into ~/.config/systemd/user/ompweb.service
- `ompweb-tray` gains a Linux path: a StatusNotifierItem tray icon with a
  DBusMenu (open, copy URL, start/stop/restart service, view logs,
  autostart toggle, quit), live status polling, desktop notifications,
  and XDG autostart support
- tray icon ships as self-contained ARGB32 IconPixmap (pure-JS rasterizer)
  so it renders without theme-cache dependency
- `ompweb systemd <cmd>` forwards to the service manager, mirroring
  `ompweb launchd`
- new dependency: dbus-next (pure JS) for the tray's session-bus work

* feat(tray): add service settings to the Linux tray (expose, port, password)

- move runtime service config into ~/.omp/agent/web-service.env, read by
  the unit via EnvironmentFile — port/hostname/password edits no longer
  require a reinstall
- tray menu gains "Expose to Network" (rebinds 127.0.0.1 -> 0.0.0.0,
  prompts for a web password via kdialog/zenity when leaving loopback),
  "Change Port...", and "Set Web Password..." — each applies the env
  file and restarts the service
- dialogs are async (execFile) so the tray's DBus loop stays responsive
  while a prompt is open
- new shared bin/service-env.js (atomic 600 env-file read/write/parse)

* fix(linux): make systemd/tray tests pass on Windows

- runCli handles --help/--version and unknown commands before the
  Linux-only guard, so help works everywhere and bogus commands
  return exit 2 on all platforms (previously process.exit(1)
  killed the test runner on non-Linux)
- guard the mode-600 assertion: chmod is best-effort on Windows
- branch the X_OK and PATH-order assertions per platform

---------

Co-authored-by: Khaled Ahmed <[email protected]>
2026-09-12 16:30:28 +03:00
Andre Brait 01fc51aea5 fix: restore unsent drafts after browser navigation (#68)
* fix: restore unsent drafts after browser navigation

* fix: prune persisted draft overflow on restore

* fix: discard empty persisted drafts during restore
2026-09-10 21:19:28 +03:00
Andre Brait 759e183393 fix: confirm queued message deletion (#69) 2026-09-10 21:19:24 +03:00
Noor LatifandKhaled Ahmed 42fdee37d8 feat(composer): add provider-agnostic voice dictation (STT) (#58)
* feat(composer): add provider-agnostic voice dictation (STT)

* fix(stt): bound audio upload payload and support transcription cancellation

---------

Co-authored-by: Khaled Ahmed <[email protected]>
2026-09-09 23:02:54 +03:00
Khaled Ahmed 5517b9d7aa feat(theme): add omp.sh midnight theme with switcher and contrast fixes
New omp theme (tokens, fonts, pre-paint default, ThemeSwitcher, useTheme migration) plus accent-strong contrast passes across config surfaces.
2026-09-09 18:23:58 +03:00
Khaled Ahmed fe4dc2aee0 docs(readme): sync features and CLI with current code
- add Windows System Tray/service section and CLI flags (--install-tray etc)
- fix macOS launchd npx -p -> npx --yes
- expand Features to match actual code: interactive chat with queue/interrupt,
  session archive/import, live plans/subagents, tool preset picker,
  worktrees, Usage analytics, tray/launchd services, 8 settings tabs
- keep env vars and dev notes in sync
2026-09-02 01:15:04 +03:00
Richard G 5af9e13df5 feat: add macOS launchd installer 2026-09-02 01:10:16 +03:00
Khaled Ahmed 8bafce6205 feat: update README with new badges and improved descriptions
chore: add CHANGELOG.md to document release history

feat: implement generate-release-notes script for automated release notes generation

test: add tests for generate-release-notes functionality
2026-08-29 08:59:30 +03:00
Khaled Ahmed 25f15872d5 docs: add demo gif, refresh screenshots, expand feature list 2026-08-23 04:42:28 +03:00
Khaled Ahmed 2233174252 chore: pin Node 22 release runtime 2026-08-20 04:24:48 +03:00
Khaled Ahmed 1d4239f4a8 chore: ignore Claude Code .ux artifacts and refresh docs 2026-08-19 01:23:41 +03:00
Khaled Ahmed 83ce71e468 feat(auth): replace Basic Auth with password login and signed session cookie
- Switch OMP_WEB_PASSWORD from HTTP Basic Auth (proxy 401 + fixed username 'omp')
  to a themed password-only /login screen with HMAC-signed, HTTP-only session
  cookie (v1 HMAC-SHA256, 30-day expiry, invalidated on password change).
- proxy.ts: redirect unauthenticated page requests to /login, return 401
  {code:'password_required'} for /api/*, allowlist _next/static|image|favicon
  so the login assets load before a session exists.
- Add POST /api/web-auth/session (8 KiB bounded JSON body) and LoginForm
  (client form, error + submitting states, redirects to / on success).
- Update lib/web-auth.test.mjs to cover createWebSession/isValidWebSession
  and proxy matcher/routing; adjust bin/omp-web{,-options}.js messaging.
- Add prepack -> npm run build so npm pack/publish always ships .next.
- Docs: README*, DESIGN.md reflect cookie-based flow and HTTPS guidance.
2026-08-17 23:18:24 +03:00
Khaled Ahmed f195cf69ef feat(cli): add --password, --help/--version and Windows docs
OMP_WEB_PASSWORD='...' ompweb uses POSIX inline-env syntax which does
not exist in PowerShell/CMD ("cmdlet was not found"). Add first-class
--password "..." (-p stays port, -H hostname, -h help, --version)
with OMP_WEB_PASSWORD fallback (--password wins), propagate to
process.env for proxy.ts and the spawned Next child, include
printHelp() and Windows examples (="...";
ompweb / set ...&&) in README* and a helpful refusing hint. Tests
updated (8 pass).
2026-08-17 23:13:26 +03:00
Khaled Ahmed 463e914dc7 Fix credits for pi-mono repository
Updated credits section to reflect the correct repository for pi-mono.
2026-08-15 05:51:32 +03:00
Khaled Ahmed 462dcd3ca2 docs: update development notes 2026-08-14 06:47:54 +03:00
Khaled Ahmed e679fdb189 chore: release automation, community links, and dev tooling
- publish workflow: generated release notes (commit range, upgrade
  instructions, changelog link) and a Discord release-notification job
- READMEs: add OMPWEB Discord community links (en/ja/zh-CN)
- next.config: type the webpack callback instead of any
- .vscode: pendant runtime source + binary path settings
2026-08-12 17:52:16 +03:00
Khaled Ahmed c51d660cec Refresh screenshots and development configuration 2026-08-10 18:41:09 +03:00
Khaled Ahmed 2d87ae8c36 Scope npm package under kahme247 2026-08-10 16:45:37 +03:00
Khaled Ahmed 0e9b5bc8ea Release ompweb v0.2.0 2026-08-10 16:19:20 +03:00
Alex Yang afe9dc7c1c docs: document global install upgrade and uninstall 2026-08-09 21:37:53 +08:00
Alex Yang 99dae1f9b2 docs: document matching Pi Web and pi environments 2026-08-09 18:55:43 +08:00
Alex Yang 5158faf81e test: cover model and session recovery flows 2026-08-07 23:18:08 +08:00
pazhikandAlex Yang fdc28d54d7 docs: add Russian README translation (#313)
* docs: add Russian README translation

Add README.ru.md and link Русский from existing locale language bars.

* docs: improve Russian README translation

---------

Co-authored-by: Alex Yang <[email protected]>
2026-07-31 00:45:09 +08:00
Alex Yang 48e83009f7 feat: add optional password authentication 2026-07-31 00:23:30 +08:00
Alex Yang def8fb4a62 fix DNS rebinding bypass 2026-07-27 21:21:11 +08:00
Alex Yang d1622fc59d Merge remote-tracking branch 'origin/main' into pr/251
# Conflicts:
#	components/FileExplorer.tsx
#	components/FileViewer.tsx
#	components/MarkdownBody.tsx
#	components/SessionSidebar.tsx
2026-07-27 19:25:55 +08:00
Alex Yang 3bd11ee2ab fix: bind server to loopback by default 2026-07-26 01:11:33 +08:00
Alex Yang 236b1482c3 fix: require Node.js 22.19 or newer 2026-07-26 01:00:38 +08:00
Alex Yang 17c6732758 Merge pull request #247 from sleepinginsummer/feature/directory-picker
feat: add browsable directory picker
2026-07-25 22:34:12 +08:00
xiaojueshi e16ccf0fba docs: document i18n usage and extensions 2026-07-25 11:06:34 +08:00
syy 2db68daf2b feat: add browsable directory picker 2026-07-25 09:51:13 +08:00
tura-ai-agent 80269f2b31 docs: add Japanese README translation 2026-07-22 23:17:34 +02:00
Alex Yang fcb4b3728a fix: honor HTTP proxy environment variables 2026-07-22 21:05:38 +08:00
Alex Yang 0571a15826 Rename Pi Agent Web to Pi Web 2026-07-21 23:03:41 +08:00
Alex Yang 67a2038152 feat: support disabling automatic browser launch 2026-07-15 22:00:13 +08:00
Alex Yang 6802793566 Add git worktree support 2026-07-03 22:59:54 +08:00
Alex Yang e019587d1d Release v0.7.3 2026-07-01 23:52:14 +08:00
Alex Yang 53d2f9752a docs: add English README and split Chinese version into separate file 2026-06-26 22:41:17 +08:00
Alex Yang e658234053 docs: expand README with detailed feature descriptions 2026-06-26 21:33:34 +08:00
Alex Yang a0bcba9077 chore: localize README to Chinese, improve npx compatibility, and bump version to 0.5.13
- Translate README.md from English to Chinese
- Add npx quick-start instructions to README
- Resolve next CLI entry directly to avoid .bin symlink issues when running via npx
- Spawn next with node directly instead of relying on shell or .bin wrappers
- Gracefully handle missing @mariozechner/pi-coding-agent package in next.config.ts
2026-04-19 20:57:47 +08:00
Alex Yang 31437b8f41 feat: add CLI options for port and hostname configuration and change default port to 30141 2026-04-05 19:55:22 +08:00
Alex Yang 4746895b8c feat: add real-time token streaming metrics 2026-04-05 16:28:02 +08:00
Alex Yang 73c9db84a4 docs: remove pre-configured working folder 2026-03-25 21:31:21 +08:00
Alex Yang 8f0509d97c docs: restructure AGENTS.md with quick start section and concise file map 2026-03-24 16:39:59 +08:00
Alex Yang 47ec67cecb feat: add npm package distribution with global CLI installation 2026-03-24 14:15:04 +08:00
Alex Yang 96182117a5 fix: update pi repository URL and favicon
- Change pi repository link from mariozechner/pi to badlogic/pi-mono
- Update favicon.ico
2026-03-23 19:44:05 +08:00
Alex Yang 2bcea2bcc9 feat: add models configuration UI with provider and model management
- Add ModelsConfig component with sidebar for providers/models and detail panel
- Implement /api/models-config endpoint to read and write models.json
- Add Models button to sidebar bottom that opens configuration modal
- Support provider-level settings: baseUrl, apiKey, API type, headers
- Support model-level settings: id, name, API override, reasoning, input types, context window, max tokens, cost
- Add provider and model creation
2026-03-23 15:33:38 +08:00