mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-29 14:02:19 +00:00
Improve autocomplete UX (inline + external overlay), add serve mode, and add macOS ARM64 release workflow (#66)
* Update CLAUDE.md to clarify pull request workflow and enhance documentation - Added a note to emphasize the importance of opening pull requests against the upstream repository instead of a fork's default remote, ensuring better collaboration and code management. - Improved the overall clarity of the Git workflow section, contributing to a more streamlined development process. * Refactor REPL session handling and remove deprecated chat methods - Removed the `repl_session_chat` functionality from the schema and related files, streamlining the REPL session management. - Introduced a new `start_chat` method in the web channel provider for handling chat interactions, enhancing the chat system's architecture. - Updated socket handling to improve event emission with alias support, ensuring better communication across the application. - Enhanced error handling and logging for chat operations, providing clearer feedback during interactions. - Consolidated chat-related logic into the new web channel module, improving maintainability and organization. * Refactor apiClient to improve token management and eliminate circular dependencies - Renamed `_getToken` to `authTokenGetterRef` for clarity and to avoid clashing with transpiled private method names. - Updated the `setStoreForApiClient` function to use the new `authTokenGetterRef` variable, ensuring the `apiClient` remains free of direct imports from `store/index`. - Enhanced the `ApiClient` class by renaming the `getToken` method to `resolveAuthToken`, improving readability and consistency in token retrieval logic. - Adjusted comments in `apiClient.ts` and `store/index.ts` to reflect the changes and clarify the purpose of the lazy store accessor. * Enhance API client integration with store for improved token management - Introduced `setStoreForApiClient` in `main.tsx` to bind the Redux store's auth token for API requests, ensuring seamless token access. - Updated comments in `apiClient.ts` to clarify the lazy token accessor's purpose and prevent circular dependencies. - Removed the previous direct call to `setStoreForApiClient` from `store/index.ts`, centralizing the setup in `main.tsx` for better organization. - Enhanced test setup to include the new store binding, ensuring consistent token retrieval during testing. * Refactor web channel event handling and enhance chat functionality - Updated `WebChatSseEvent` structure to include new fields: `tool_name`, `skill_id`, `args`, `output`, `success`, and `round`, improving the granularity of event data. - Refactored event emission logic in `emit_web_chat_event` to utilize the new fields, ensuring more informative payloads for tool calls and results. - Enhanced the `start_chat` and `cancel_chat` functions to accommodate the new event structure, improving chat session management. - Introduced a new function `publish_tool_events_from_history` to streamline the emission of tool call and result events from chat history, enhancing the overall chat experience. * Refactor web channel integration and enhance controller management - Updated references from the deprecated `web_channel` module to the new `channels::providers::web` structure, improving code organization and maintainability. - Refactored the `build_registered_controllers` and `build_declared_controller_schemas` functions to utilize the new web channel controller methods, ensuring consistency across the application. - Removed the obsolete `web_channel` module and its associated files, streamlining the codebase and enhancing clarity in the channel management system. - Introduced new functions for managing web channel events and schemas, improving the overall architecture of the web channel integration. * Refactor main.tsx and test setup for improved organization - Reordered imports in `main.tsx` to enhance clarity and maintainability, ensuring that `setStoreForApiClient` is called with the correct store reference. - Removed unnecessary whitespace in `setup.ts`, streamlining the test setup file for better readability. * Fix service gate false blocking when service is running * Support soft-pass daemon gate and harden macOS service detection * Extend list-files fallback trigger phrases in agent loop * Replace list-files fallback with tool-call repair retry * Log full system prompt and drop tool-call repair flow * Add tracing-log dependency and enhance CLI logging - Introduced `tracing-log` as a dependency to bridge `log` and `tracing` for improved logging capabilities. - Added a `--verbose` flag to the CLI for enhanced logging detail, initializing the logging level based on this flag. - Implemented an HTTP request logging middleware to capture and log request details. - Updated CLI help output to reflect the new `--verbose` option and improved logging messages throughout the application. * Tighten system prompt for native tool-calling * Auto-create missing workspace context markdown files * Seed workspace prompt files from canonical agent prompt templates * Enhance logging with nu-ansi-term and improve CLI output - Added `nu-ansi-term` dependency for colored terminal output in logs. - Implemented a custom logging format for better readability in CLI. - Updated logging initialization to conditionally use ANSI colors based on terminal support. - Added debug logging for agent responses to aid in troubleshooting. * Harden OpenAI-compatible native tool-call parsing * Format provider tool-call parsing updates * Implement inline autocomplete suggestions in Conversations component - Added functionality for inline suggestions based on user input in the Conversations component. - Introduced debounce logic for autocomplete requests to optimize performance. - Enhanced user experience by allowing suggestions to be accepted via the Tab key. - Updated UI to display inline completion suffixes in the input area. - Modified backend to support new autocomplete features and improved error handling. * Add macOS ARM64 build workflow and enhance release process - Introduced a new GitHub Actions workflow for building signed macOS ARM64 bundles. - Updated the release workflow to validate signing prerequisites for macOS builds. - Enhanced the Tauri configuration preparation to include updater settings. - Added necessary secrets to the example secrets file for macOS signing. - Implemented CLI autocomplete functionality for macOS, including options for debounce and process management.
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
"APPLE_SIGNING_IDENTITY": "",
|
||||
"APPLE_TEAM_ID": "",
|
||||
"GITHUB_TOKEN": "",
|
||||
"UPDATER_PUBLIC_KEY": "",
|
||||
"TAURI_SIGNING_PRIVATE_KEY_PASSWORD": "",
|
||||
"TAURI_SIGNING_PRIVATE_KEY": "",
|
||||
"XGH_TOKEN": "",
|
||||
@@ -15,6 +16,7 @@
|
||||
},
|
||||
"vars": {
|
||||
"BASE_URL": "https://localhost",
|
||||
"UPDATER_ENDPOINT": "",
|
||||
"VITE_BACKEND_URL": "https://localhost:5005",
|
||||
"VITE_SKILLS_GITHUB_REPO": "",
|
||||
"VITE_SENTRY_DSN": "",
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
export default function prepareTauriConfig() {
|
||||
// For production builds, use the dist directory path
|
||||
// BASE_URL is only used for updater endpoints, not for frontendDist
|
||||
const frontendDist = process.env.BASE_URL?.startsWith('http')
|
||||
? '../dist'
|
||||
: process.env.BASE_URL || '../dist';
|
||||
// Production frontend always ships from dist; BASE_URL is for updater URLs.
|
||||
const frontendDist = '../dist';
|
||||
|
||||
const config = {
|
||||
build: { frontendDist, devUrl: null },
|
||||
@@ -12,11 +9,28 @@ export default function prepareTauriConfig() {
|
||||
};
|
||||
|
||||
if (process.env.WITH_UPDATER === 'true') {
|
||||
const repoSlug = process.env.UPDATER_REPO || 'tinyhumansai/openhuman';
|
||||
const baseUrl =
|
||||
process.env.BASE_URL ||
|
||||
`https://github.com/${repoSlug}/releases/latest/download`;
|
||||
const normalizedBaseUrl = String(baseUrl).replace(/\/+$/, '');
|
||||
const updaterEndpoint =
|
||||
process.env.UPDATER_ENDPOINT ||
|
||||
process.env.UPDATER_GIST_URL ||
|
||||
`${normalizedBaseUrl}/latest.json`;
|
||||
const updaterPublicKey = process.env.UPDATER_PUBLIC_KEY;
|
||||
|
||||
if (!updaterPublicKey) {
|
||||
throw new Error(
|
||||
'WITH_UPDATER=true requires UPDATER_PUBLIC_KEY to be set',
|
||||
);
|
||||
}
|
||||
|
||||
config.plugins = {
|
||||
updater: {
|
||||
dialog: false,
|
||||
endpoints: [process.env.UPDATER_GIST_URL],
|
||||
pubkey: process.env.UPDATER_PUBLIC_KEY,
|
||||
endpoints: [updaterEndpoint],
|
||||
pubkey: updaterPublicKey,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -5,10 +5,12 @@
|
||||
# - Uses scripts/ci-secrets.example.json for secrets/vars.
|
||||
# - Runs in dry-run mode unless --run is passed.
|
||||
#
|
||||
# For --run: set XGH_TOKEN in scripts/ci-secrets.json (PAT with repo scope). prepare-release uses
|
||||
# XGH_TOKEN for checkout/push. Do not put a bad GITHUB_TOKEN in ci-secrets.json — act uses it to
|
||||
# clone action repos and an invalid PAT breaks even public clones. github-script steps use
|
||||
# secrets.XGH_TOKEN (see release.yml).
|
||||
# For --run: set GitHub App credentials in scripts/ci-secrets.json:
|
||||
# - XGITHUB_APP_ID
|
||||
# - XGITHUB_APP_PRIVATE_KEY
|
||||
# prepare-release uses those to mint a token for checkout/push.
|
||||
# Do not put a bad GITHUB_TOKEN in ci-secrets.json — act uses it to clone action repos and an
|
||||
# invalid PAT breaks even public clones.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/test-release-act.sh
|
||||
|
||||
Reference in New Issue
Block a user