Skip to content

feat: Multi-agent Phase 1 — user_id scoping for DB schema and agent filesystem#568

Merged
chubes4 merged 1 commit intomainfrom
feature/multi-agent
Mar 3, 2026
Merged

feat: Multi-agent Phase 1 — user_id scoping for DB schema and agent filesystem#568
chubes4 merged 1 commit intomainfrom
feature/multi-agent

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 3, 2026

Summary

Phase 1 of multi-agent support (#560). Adds user_id scoping to the database layer and agent filesystem so each WordPress user can operate as an independent agent.

  • Add user_id column to pipelines, flows, and jobs tables with DEFAULT 0 for backward compat
  • Add migrate_columns() to Pipelines and Flows for existing installs (Jobs already had one)
  • Add optional user_id filter to all list/count query methods
  • Partition agent filesystem: DirectoryManager::get_agent_directory($user_id) returns agent/{user_id}/ when specified
  • AgentMemory and DailyMemory accept user_id in constructors
  • get_default_agent_user_id() resolves from DATAMACHINE_DEFAULT_AGENT_USER constant or first admin user
  • TODO markers for Phase 2 (directives) in CoreMemoryFilesDirective and MemoryFilesReader

Changes

10 files changed, 291 insertions, 38 deletions

File Change
Pipelines.php Schema + migrate_columns + CRUD user_id
Flows.php Schema + migrate_columns + CRUD user_id
Jobs.php Schema + extend migrate_columns
JobsOperations.php create_job + list filters
DirectoryManager.php get_agent_directory($user_id) + get_default_agent_user_id()
AgentMemory.php Constructor accepts user_id
DailyMemory.php Constructor accepts user_id
CoreMemoryFilesDirective.php TODO for Phase 2
MemoryFilesReader.php TODO for Phase 2
data-machine.php Call migrate_columns() on activation

Backward Compatibility

  • All user_id columns default to 0 — existing single-agent installs work without changes
  • All method parameters default to null/0 — callers that don't pass user_id get original behavior
  • Migration is idempotent and runs automatically on plugin update

Refs

Closes #561, closes #562, closes #563, closes #564, closes #567
Parent: #560

…-agent support (#560)

Phase 1 of multi-agent support: scope pipelines, flows, jobs, and agent
files to WordPress users.

Database:
- Add user_id column to pipelines, flows, and jobs tables
- Add migrate_columns() to Pipelines and Flows (Jobs already had it)
- Add user_id filter to get_all_pipelines, get_all_flows, get_pipelines_count,
  get_pipelines_list, get_pipelines_for_list_table, get_jobs_count,
  get_jobs_for_list_table
- Include user_id in create_pipeline, create_flow, create_job
- Scheduler intentionally skips user_id filter (runs all users' flows)

Filesystem:
- DirectoryManager::get_agent_directory() accepts user_id param
- AgentMemory and DailyMemory constructors accept user_id
- get_default_agent_user_id() resolves DATAMACHINE_DEFAULT_AGENT_USER
  constant or first admin user
- user_id=0 preserves legacy shared directory for backward compat

All changes are additive with DEFAULT 0 — existing single-agent installs
keep working without configuration.

Refs: #561, #562, #563, #564, #567
@github-actions
Copy link

github-actions bot commented Mar 3, 2026

Homeboy Results — data-machine

lint (changed files only)

test

  • PHPCS: LINT SUMMARY: 233 errors, 203 warnings
  • Fixable: 180 | Files with issues: 109 of 346
Top violations
  WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine    93
  WordPress.DB.PreparedSQL.NotPrepared                       73
  Generic.Formatting.MultipleStatementAlignment.NotSameWarning    39
  Generic.CodeAnalysis.UnusedFunctionParameter.Found         36
  WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned    35
- PHPStan: PHPSTAN SUMMARY: 154 errors at level 5 - BUILD FAILED: PHPUnit tests
Fatal error
Fatal:  Uncaught Error: Class "DataMachine\Engine\AI\System\Tasks\ImageGenerationTask" not found in /home/runner/work/data-machine/data-machine/tests/Unit/AI/System/Tasks/ImageGenerationTaskTest.php:13

audit


Homeboy Action v1 — homeboy 0.54.0

@chubes4 chubes4 merged commit 53ff92d into main Mar 3, 2026
0 of 2 checks passed
@chubes4 chubes4 deleted the feature/multi-agent branch March 3, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant