953 Commits
Author SHA1 Message Date
Sergey KozyrenkoandClaude Opus 5.5 cffed9485a docs: the README links Graphiti to its public repository and names the image PentAGI runs
The link pointed to vxcontrol/pentagi-graphiti, which readers outside the organization get as a 404.
Graphiti now links to getzep/graphiti, and the fork is named by the vxcontrol/graphiti image on
Docker Hub that docker-compose-graphiti.yml pulls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 06:20:46 +07:00
Sergey KozyrenkoandClaude Opus 5.5 843dfeb4bf docs: the README says what PentAGI is, who it is for, how it differs and how to install it
The overview was generic; it now answers those four questions in the wording of pentagi.com.
The README, config.md and the installation guide no longer list MCP among the server-side
settings: the open-source edition has no MCP code, and Enterprise adds MCP servers. SearXNG is
spelled as its project spells it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 03:53:25 +07:00
Sergey KozyrenkoandClaude Opus 5.5 e7f3000832 docs(PAGI-561): the README names VXControl as the developer of PentAGI
Asked who develops PentAGI, assistants cite this README and press
articles, yet the README named no developer and never linked
vxcontrol.com; asked what VXControl is, they also describe other
products of that name. The overview now says PentAGI is developed by
VXControl and links its site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 21:06:34 +07:00
Dmitry Ng b611fbebcf fix: installer stack detection, tests that can fail, proxy and port docs
- installer: decide whether the stack is extracted by the provider examples
  beside the env file, not in the working directory
- tests: assert table cells in the markdown editor pipe tests; pin the
  prompter in provider failover, the permission error on a password change
  and the built-in Bedrock config against its shipped example
- docs: state what PROXY_URL covers and which ports flows publish; name the
  cgr.dev registry of the Langfuse stack
- comments: drop history and restated code, correct those that had drifted
  from the code
v2.2.0
2026-10-04 01:18:50 +03:00
Dmitry Ng 55a063ecb3 feat(provider): add Bedrock provider configuration and update related documentation
- Introduced a new example configuration file for the Bedrock provider, ensuring compatibility with the existing stack.
- Updated Docker and docker-compose configurations to include the new Bedrock provider, enhancing the overall functionality of the application.
- Revised README and other documentation to reflect the addition of the Bedrock provider, including environment variable descriptions and usage instructions.
- Improved installer logic to handle the new provider configuration seamlessly, ensuring a smooth user experience during setup.
2026-10-03 00:15:29 +03:00
Dmitry Ng fc6f2e3443 docs: update README with new Trendshift badges and configuration details 2026-10-03 00:04:54 +03:00
Dmitry Ng 3cfe5cba4b refactor: improve document handling and validation in knowledge management
- Updated knowledge document creation and update functions to store content as sent, preserving whitespace and line breaks.
- Enhanced validation for flow template fields to ensure titles are trimmed while text retains its original format.
- Refactored tests to verify that blank content is rejected and that stored content matches the input, including line breaks.
- Updated markdown editor to maintain content integrity during serialization and deserialization processes.
- Improved documentation to clarify how content is stored and processed, ensuring consistency across the application.
2026-10-02 09:51:01 +03:00
Dmitry Ng 3b7c75f9e9 chore(deps): update OpenTelemetry and related dependencies
- Upgraded OpenTelemetry packages to the latest versions, including otel v1.45.0 and otlp exporters.
- Updated various indirect dependencies to their latest stable releases, improving compatibility and performance.
- Enhanced observability tests with new logging and tracing functionalities, ensuring better integration with OpenTelemetry.
- Refactored logging attributes to utilize the new OpenTelemetry attribute types for improved clarity and consistency.
2026-10-01 16:18:00 +03:00
Dmitry Ng 01acdda6d3 fix: failover on flow creation, minio image, stable build revisions
- Failover: when the primary provider is down, flow and assistant creation now falls back for the tool call ID template.
- Prompts: a stored custom prompt that no longer validates is ignored in favor of the default, with a warning, instead of rendering "<no value>".
- Security: PUT /users/{hash} refuses a password change without users.edit, so a stolen session cookie can no longer reset the account password.
- Langfuse: minio/minio is gone from Docker Hub, so the stack runs cgr.dev/chainguard/minio:latest as root to keep existing volumes readable.
- Installer: the main menu highlights Maintenance while a worker, stack or installer update is waiting.
- Versions: the build revision is the first 7 characters of the commit SHA instead of git rev-parse --short, which depends on the size of the clone.
- Tests: the docker pids-limit test sets its limit after the probes start, so the setup execs no longer exhaust it on slow CI runners.
- Docs: README covers Azure OpenAI through the custom provider and the Neo4j/APOC files a manual Graphiti install needs.
- Reports: added the Azure OpenAI ctester report and regenerated vllm-mixed for Qwen3.8.
2026-10-01 00:55:56 +03:00
Dmitry Ng 6f3d29c3f1 feat: port major fixes 2026-09-30 01:48:35 +03:00
Dmitry Ng 8b2deb6a53 feat(provider): add qwen3.8-27b fp8 provider configuration and testing report
- Introduced a new configuration file for the Qwen3.8-27B FP8 provider, detailing model settings and recommended sampling parameters for various tasks.
- Created a comprehensive testing report summarizing agent performance, success rates, and average latencies across multiple test scenarios.
- Ensured the configuration aligns with official Qwen recommendations for optimal inference performance.
2026-09-02 02:39:04 +03:00
Dmitry Ng 6f34a010e1 feat(cloud): enhance VXControl Cloud API usage and add PentAGI version checks 2026-09-02 02:31:59 +03:00
Dmitry Ng 2d39d1f74d feat(installer): new checking updates protocol and bump cloud sdk version to v1.0.0
- Introduced new checks for stack components in the installer checker, ensuring accurate reporting of connection and external status for Graphiti, Langfuse, and Observability.
- Added comprehensive unit tests to validate the behavior of the new checks, covering various configurations and expected outcomes.
- Updated the go.mod file to include new dependencies and upgraded existing ones for improved functionality.
- Created new test files for component checks and product information, enhancing overall test coverage and reliability.
2026-08-12 23:24:12 +03:00
Dmitry Ng 17bc0e16c7 feat(docker): update environment variables for stack images in docker-compose files
- Added new environment variables for PentAGI, Graphiti, Langfuse, and Observability stack images in the .env.example file.
- Updated docker-compose files to use these environment variables for service images, enhancing configurability and maintainability.
- Ensured default values are retained for backward compatibility.
2026-08-12 23:08:43 +03:00
Dmitry Ng 93e9974851 feat(provider): update Qwen provider configuration and testing reports
- Revised Qwen provider configuration to reflect new model assignments, including the introduction of deepseek-v4 models and updated pricing structures.
- Enhanced testing reports with detailed performance metrics, including success rates and average latencies for various agents.
- Added new testing report for qwen-cloud, summarizing agent performance and success rates.
- Updated VSCode launch configuration to include new report options for testing.
2026-08-08 19:54:10 +03:00
Dmitry Ng ea665308ba fix(deps): upgrade langchaingo version to release version v0.1.14-update.7 2026-08-06 14:06:47 +03:00
Dmitry Ng a4dcfa8178 feat(provider): update OpenCode provider configuration and testing report
- Enhanced OpenCode provider configuration with detailed pricing for various models.
- Updated agent settings to reflect new model assignments and pricing structures.
- Revised testing report to include updated performance metrics and average latencies for agents.
- Adjusted overall success rates and latencies in the report for improved accuracy.
2026-08-04 23:57:58 +03:00
Dmitry Ng 454569a8eb feat(provider): add OpenCode provider configuration and testing report
- Added OpenCode provider configuration file with model settings and parameters.
- Updated README to include OpenCode as a supported provider and modified relevant sections for clarity.
- Created a testing report for OpenCode, summarizing agent performance and success rates.
- Enhanced VSCode launch configuration to include OpenCode provider options for testing.
2026-08-04 20:58:08 +03:00
Dmitry Ng ccb309a628 fix(docker): upgrade Go and dependencies for improved compatibility and performance
- Updated Go version from 1.24 to 1.26.5 in Dockerfile and CI configuration.
- Upgraded various dependencies in go.mod, including AWS SDK and OpenTelemetry packages, to their latest versions for enhanced features and security.
- Refactored Docker client imports from the Docker library to the Moby library for better compatibility with the updated API.
- Adjusted Docker client usage throughout the codebase to align with the new Moby client structure.
2026-08-04 19:09:09 +03:00
Dmitry Ng 049527a39d fix(docker): update alpine base image version in Dockerfile
- Updated the base image from alpine:3.23.3 to alpine:3.23.5 for improved security and stability.
2026-08-04 10:56:37 +03:00
Dmitry Ng 4081292a25 fix(docker): update container error handling and logging
- Replaced client.IsErrNotFound with cerrdefs.IsNotFound for consistent error handling across container operations.
- Updated probe image version to alpine:3.23.5.
- Enhanced logging for container removal failures in flow tools, ensuring better traceability of issues.
- Improved context usage in tests for better cancellation handling.
2026-08-04 10:54:58 +03:00
Dmitry Ng a5274d3c86 Merge pull request #386 from F2had/fix/primary-container-missing-from-daemon
fix(docker): rebuild flow primary container when it is gone from the daemon
2026-08-04 11:34:52 +04:00
Fahad 7d675b313a fix(tools): rebuild the flow primary container when the daemon lost it
A flow stores the id of its primary container in the database. When that
container is removed outside pentagi the row keeps status 'running', so
Prepare reused a container the daemon no longer knows about and every
terminal call failed with "No such container" until the flow was recreated.

Confirm with the daemon before reusing the stored container and let the
existing remove-and-rebuild path take over when it is gone. An unreachable
daemon is still an error, so a transient failure cannot discard a healthy
container.
2026-08-04 09:53:11 +03:00
Fahad 16f1e0c42e fix(docker): report a removed container as not running
ContainerInspect returns a not-found error once a container is gone from
the daemon, and IsContainerRunning wrapped it as an inspection failure, so
callers could not tell a missing container apart from an unreachable
daemon. StopContainer and RemoveContainer already special-case
client.IsErrNotFound; do the same here.
2026-08-04 09:52:06 +03:00
Dmitry Ng ca17c72f96 Merge pull request #384 from vxcontrol/feature/next-release
Merge feature/next-release into main (pre-2.2.0)
2026-08-04 02:22:38 +04:00
Dmitry Ng db68cde21c feat(flows): implement provider renaming and reset functionality
- Added `RenameFlowsProvider` and `ResetFlowsProviderToDefault` methods to the `FlowController` to handle renaming of user-defined providers and resetting to built-in defaults.
- Introduced SQL queries for bulk updating flow and assistant provider names based on user actions, ensuring idempotency and safe retries.
- Enhanced error handling and logging for provider updates, ensuring that flows and assistants remain valid after provider changes.
- Added unit tests to verify the correct behavior of provider renaming and resetting functionalities.
2026-08-04 01:06:58 +03:00
Dmitry Ng 2da929d38d feat(providers): add xAI provider support and configuration details
- Updated the README to include xAI as a supported provider, along with pre-configured provider files for testing.
- Added a new configuration file for xAI with detailed model settings and pricing.
- Created a testing report for xAI, summarizing the performance and success rates of various agents.
- Enhanced the VSCode launch configuration to include xAI provider options for testing.
2026-08-04 00:42:25 +03:00
Dmitry Ng 21338d858f test(cast): add new test for dropping multiple nil function call tool calls
- Introduced a new test case to verify that multiple nil FunctionCall tool calls are correctly removed from the message content, ensuring only relevant text parts are retained.
- Removed the previous test file `newbodypair_reg_test.go` as its functionality is now covered in the updated test suite.
2026-08-03 17:23:23 +03:00
Dmitry Ng b8c1b7d9a6 refactor(tests): update pentester prompt tests for tool-agnostic guidance
- Renamed the test function to reflect a broader focus on CLI argument guidance rather than specific XSStrike flags.
- Enhanced test descriptions and guidance to cover common AI-agent mistakes, ensuring clarity and tool-agnostic advice.
- Updated the template to remove specific tool references, promoting a more generalized approach to command-line argument handling.
2026-08-03 17:17:02 +03:00
Dmitry Ng c19665d822 fix(docs): improve clarity and formatting in installation guides
- Consolidated sentences in the README and installation configuration guide for better readability.
- Removed unnecessary line breaks and ensured consistent formatting for installation instructions and requirements.
- Enhanced links to related documentation for a smoother user experience.
2026-08-03 17:04:12 +03:00
Dmitry Ng c4859cba95 fix(providers): improve error handling when retrieving providers from the database
- Added a specific error check to handle cases where the provider is not found in the database, providing clearer feedback on retrieval failures.
2026-08-03 15:57:00 +03:00
Dmitry Ng 881ba6645f fix(etester): update minimum connections configuration to respect maximum connections limit
- Modified the minimum connections setting in the connection pool configuration to ensure it does not exceed the maximum connections limit, enhancing resource management and preventing potential connection issues.
2026-08-03 15:56:42 +03:00
Dmitry Ng 5fa405782b fix(docs): remove maxLength constraint for password fields in API documentation
- Updated the API documentation in `docs.go`, `swagger.json`, and `swagger.yaml` to remove the maxLength constraint for password fields, simplifying the validation requirements.
- Added `github.com/docker/go-units` as a direct dependency in `go.mod` to support updated functionality.
2026-08-03 14:49:51 +03:00
Dmitry Ng 9b588bd211 Merge pull request #382 from N1neSun/fix/allow-null-flow-trace-id
fix(flows): allow pending trace IDs in flow responses
2026-08-03 15:44:28 +04:00
Dmitry Ng 5610cd96c0 fix(ctester): improve success rate calculation and documentation clarity
- Updated the success rate calculation in `PrintAgentResults`, `PrintSummaryReport`, and `WriteReportToFile` functions to handle cases where total tests are zero, preventing division by zero errors.
- Enhanced comments in `convertToAgentResults` to clarify the impact of unsupported capabilities on overall success rates and average latency.
2026-08-03 14:41:18 +03:00
Sergey Kozyrenko 0068b53bb9 fix(flows): stop wide tables from horizontally scrolling the message list
A markdown table with a long unbreakable cell (e.g. a FLAG hash) overflowed
the message bubble and dragged the entire message list into a horizontal
scroll, cutting off the left edge of every line. Wrap tables in an
overflow-x-auto container so wide content scrolls inside its own box while the
list scrolls only vertically. Covers both automation and assistant, which
render through the same Markdown component.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 8745c51388)
2026-08-02 02:53:31 +07:00
Dmitry Ng f6fe867a99 feat(worker_node): enhance monitoring setup and documentation for worker node
- Updated `METRICS_IP` documentation to reflect new metrics ports (8080, 9100) for cAdvisor and node-exporter.
- Added detailed instructions for deploying cAdvisor and node-exporter on the worker node's host Docker, including scripts for setup.
- Enhanced the security and firewall configuration section to include new metrics endpoints.
- Improved overall documentation clarity for metrics integration with PentAGI's observability stack.
2026-08-01 20:16:15 +03:00
Dmitry Ng 339aa958f0 feat(neo4j): enhance configuration and directory structure for Neo4j integration
- Added new environment variables to `.env.example` for Neo4j memory and transaction settings, including `NEO4J_HEAP_INITIAL_SIZE`, `NEO4J_HEAP_MAX_SIZE`, `NEO4J_PAGECACHE_SIZE`, and `NEO4J_TRANSACTION_MAX`.
- Updated `docker-compose-graphiti.yml` to mount Neo4j configuration and plugin directories, ensuring proper integration with the Graphiti stack.
- Introduced static configuration files for Neo4j and APOC in the `examples/neo4j/conf` directory, providing a clear structure for user-editable settings.
- Enhanced the README to document the new configuration options and directory structure for Neo4j, improving user guidance for setup and customization.
2026-08-01 20:03:02 +03:00
Dmitry Ng 1778290d15 feat(graphiti): update model versions in configuration files
- Updated the model references in `gemini.yaml` from `gemini/gemini-2.5-flash-lite` to `gemini-3.5-flash-lite` and `gemini/gemini-2.5-flash-lite` to `gemini-3.1-flash-lite` for improved performance.
- Changed the model references in `openai.yaml` from `openai/gpt-5-mini` to `gpt-5.6-luna` and `openai/gpt-5.4-nano` to `gpt-5-nano`, reflecting the latest versions for better capabilities.
2026-08-01 19:54:27 +03:00
Dmitry Ng cfa325228e feat(gemini): update model configurations and test report
- Increased temperature settings for `simple` and `simple_json` models from 0.7 to 1.0 for enhanced variability.
- Changed model references from `gemini-3.5-flash` to `gemini-3.5-flash-lite` for `reflector`, `searcher`, and `enricher`, optimizing for cost and performance.
- Updated `coder`, `installer`, and `pentester` models to `gemini-3.6-flash`, reflecting the latest version with improved pricing and capabilities.
- Revised test report to reflect new model configurations, including updated success rates and average latencies, ensuring accurate performance metrics.
- Enhanced documentation to clarify model descriptions and pricing adjustments for better user understanding.
2026-08-01 19:53:43 +03:00
Dmitry Ng 341a9def05 feat(worker_node): add browser scraper deployment instructions for worker node
- Introduced a new section in the worker node guide detailing the deployment of a browser scraper on the worker node's host Docker, including setup instructions and security considerations.
- Added a script for launching the scraper with appropriate configurations, including environment variables for credentials and resource limits.
- Updated firewall requirements to include access for the scraper service, ensuring clarity on network configurations.
- Enhanced documentation to guide users on verifying the scraper's readiness and integrating it with the main PentAGI node.
2026-08-01 19:44:55 +03:00
Dmitry Ng c383086afe refactor(worker_node): improve worker node guide and policy test script
- Revised the worker node guide to clarify the use of TCP over TLS for worker connections, addressing potential failure modes associated with socket mounts.
- Updated environment variable configurations to include `METRICS_IP`, ensuring proper binding for Docker metrics.
- Enhanced the `policy-tests.sh` script to improve transport resolution for the DinD API, allowing for better handling of both TCP and Unix socket connections.
- Improved documentation for the metrics endpoint and security model, ensuring clearer instructions for users.
2026-07-30 20:46:01 +03:00
Dmitry Ng 21baa20a0b refactor(logging): standardize error logging across controllers and providers
- Replaced direct error logging calls with a centralized `obs.LogErrorOrCancel` function to ensure consistent logging behavior for errors, particularly in cases of context cancellation.
- Updated various controllers and providers to utilize the new logging method, enhancing maintainability and clarity in error handling.
- Introduced new methods for invalidating subtasks and tasks in the flow and subtask controllers to improve resource management and prevent stale references.
- Enhanced the handling of database errors in task and subtask status updates to treat missing records as completed, ensuring idempotent task shutdowns.
2026-07-30 16:33:52 +03:00
Dmitry Ng ebb228b19a feat(graphiti): enhance configuration and integration settings
- Added new environment variables to `.env.example` and `docker-compose-graphiti.yml` for Graphiti, including `GRAPHITI_CPUS`, `GRAPHITI_MEMORY`, and various ingestion and logging settings.
- Updated the README to clarify the optional nature of the Graphiti integration and its configuration requirements.
- Enhanced the backend installer to support new Graphiti configuration options, ensuring proper handling of the Graphiti stack.
- Improved the user interface for Graphiti settings in the installer wizard, allowing for better configuration management.
- Revised documentation to reflect changes in Graphiti's deployment modes and integration capabilities.
2026-07-30 16:26:16 +03:00
N1neSun 3068b626d0 fix(flows): allow pending trace IDs 2026-07-30 16:36:36 +08:00
Dmitry Ng ca482686d7 feat(database): enhance PostgreSQL schema handling for multi-tenant support
- Added new environment variables `DATABASE_EXTENSIONS_SCHEMA` and `DATABASE_SEARCH_PATH_VIA_OPTIONS` to `.env.example` and `docker-compose.yml` for better management of PostgreSQL schemas in multi-tenant deployments.
- Updated the README and configuration documentation to explain the purpose and usage of the new variables, particularly for setups using Supabase.
- Implemented schema verification and initialization logic in the backend to ensure proper handling of tenant-specific schemas during database connections.
- Enhanced the installer and server settings forms to include the new configuration options, improving user experience and clarity.
2026-07-30 00:14:30 +03:00
Dmitry Ng 0da3892b0d fix(docker): clarify container capability management in Docker setup
- Updated the documentation in `docker.md` to provide a detailed explanation of the explicit capability allow-list used for primary containers, emphasizing the rationale behind the selected capabilities and the deliberate omission of `MKNOD`.
- Revised comments in `client.go` and `tools.go` to reflect the decision against using `no-new-privileges`, clarifying its impact on privilege escalation testing and container security.
- Enhanced the overall clarity and completeness of the capability management section to aid understanding of security measures in the Docker-in-Docker setup.
2026-07-29 22:33:14 +03:00
Dmitry Ng dfb762f420 fix(config): update model versions in Anthropic configuration and test report
- Changed the model version from `claude-opus-5` to `claude-opus-4-8` in the configuration file for both generator and refiner.
- Updated the test report to reflect the new model version, including adjustments to success rates and average latencies for the generator and refiner agents.
- Revised overall average latency in the test report to account for the updated model performance.
2026-07-29 22:05:27 +03:00
Dmitry Ng 7a81132730 fix(tests): update state initialization in compose_test.go
- Refactored state initialization in tests to use NewState instead of New for clarity and consistency.
- Ensured that the changes maintain the functionality of the tests while improving code readability.
2026-07-29 16:05:31 +03:00
Dmitry Ng 464dca8903 feat(worker_node): enhance Docker-in-Docker setup with security and cleanup features
- Updated the worker node guide to include a hardened Docker-in-Docker (dind) configuration, emphasizing security measures such as OPA authorization and seccomp profiles.
- Introduced new scripts for managing dind containers, including `dind-cleanup.sh` for removing stale containers and `run-dind.sh` for starting the dind container with authorization.
- Added configuration files for the dind setup, including `authz.rego`, `seccomp.json`, and `daemon.json`, to enforce strict security policies.
- Implemented a systemd timer and service for regular cleanup of nested containers, ensuring efficient resource management.
- Expanded documentation to clarify the purpose and usage of new scripts and configuration files, enhancing user understanding of the setup process.
2026-07-29 16:01:42 +03:00