Proposal: Multi-developer configuration for distributed teams#30
Closed
marcoaperez wants to merge 1 commit into
Closed
Proposal: Multi-developer configuration for distributed teams#30marcoaperez wants to merge 1 commit into
marcoaperez wants to merge 1 commit into
Conversation
Adds a design proposal for supporting multiple developers working against the same FMS-hosted solution, each from their own machine with their own local repo and companion server. Describes the problem, three design options, and a two-iteration implementation path that stays backward-compatible with the current single-dev workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a design proposal at
docs/proposals/multi-developer-config.mdcovering how to support multiple developers working against the same FMS-hosted solution — each from their own machine, with their own localagentic-fmrepo and their own companion server — without having to edit FM scripts for every person on the team.Context
Get agentic-fm pathcurrently assumes one developer per solution (caches the chosen folder in$$AGENTIC.FMfor the session), andExplode XMLhardcodes the companion URL tohttp://localhost:8765. With the exclusive-bind policy whereCOMPANION_BIND_HOSTpoints at a LAN or Tailscale address instead of127.0.0.1,localhostreturns "Connection refused", and teams end up with a chain ofIf Get(AccountName) = "..."branches inside the script — a hardcoded path and companion IP per developer, edited directly into the.fmp12.That workaround doesn't scale, mixes environment config with package logic, and forces machine-specific data to live inside the solution file instead of in the repo where it belongs.
Proposal
Full writeup in
docs/proposals/multi-developer-config.md. Short version:userssection inautomation.json(already lives next to each developer's companion).GET /whoamiendpoint to the companion server that reads that section and returns the block for the current account.Get agentic-fm pathto cascade: cached global → companion/whoami→ optionalagentic_fm_usersFM table → interactive dialog fallback.Explode XML's URL with$$AGENTIC.FM.COMPANION.HOST/$$AGENTIC.FM.COMPANION.PORTglobals populated byGet agentic-fm path.All fully backward-compatible — solo developers see no functional change, everything is opt-in.
What this PR contains
Just the markdown writeup under
docs/proposals/. If the direction lands well, I'm happy to follow up with the implementation PRs, split by component (automation.jsonschema,companion_server.pyendpoint, FM script refactors, and thefilemaker/README.mdsection).