Skip to content

Flexion - Custom Implementations Tracker#2

Draft
lgarceau768 wants to merge 3 commits intodevfrom
flex
Draft

Flexion - Custom Implementations Tracker#2
lgarceau768 wants to merge 3 commits intodevfrom
flex

Conversation

@lgarceau768
Copy link
Copy Markdown
Collaborator

DO NOT MERGE

This is a permanent tracking PR that shows all Flexion-specific customizations on top of upstream anomalyco/opencode.

It mirrors the pattern used in flexion/open-webui#14.


Branching Strategy

Branch Purpose
dev Tracks upstream anomalyco/opencode:dev exactly — synced via force-push when upstream releases
flex All Flexion customizations, rebased onto latest dev after each upstream sync

Keeping in sync with upstream

# 1. Fetch upstream
git fetch upstream  # upstream = https://github.com/anomalyco/opencode.git

# 2. Update dev to match upstream
git checkout dev
git reset --hard upstream/dev
git push origin dev --force

# 3. Rebase flex onto the new dev
git checkout flex
git rebase dev
# Resolve any conflicts, then:
git push origin flex --force

# 4. This PR will automatically update to reflect the new diff

Flexion Customizations (rebased onto v1.4.0)

1. fix: hide skill prompt text from chat UI

File: packages/opencode/src/session/prompt.ts

Mark the skill template TextPart as synthetic: true so the full prompt is sent to the model but hidden from the user. Adds a short ignored: true summary part (Running skill: <command>) so the user still sees confirmation the skill was loaded.

Originally merged as flexion/opencode#1.


2. fix: respect tool_call: false capability flag at runtime

Files: packages/opencode/src/session/llm.ts, packages/opencode/test/session/llm.test.ts

Gates tool resolution, LiteLLM noop injection, activeTools, tools, and toolChoice behind input.model.capabilities.toolcall. Without this fix, tool_call: false in opencode.json is parsed and stored but never checked — causing Bedrock models that don't support streaming + tool use to fail.

Includes a regression test verifying body.tools is not sent when toolcall: false.

Originally from lgarceau768/opencode#1.


3. docs: add local build and AWS Bedrock setup instructions

File: LOCAL_AWS_SETUP.md

Covers cloning, building with bun, AWS SSO profile config, opencode.json Bedrock provider setup, and the opencode-work shell alias.

Originally from lgarceau768/opencode#1.


Local Development Setup

See LOCAL_AWS_SETUP.md for full setup instructions including AWS Bedrock configuration.

@github-actions
Copy link
Copy Markdown

Hey! Your PR title Flexion - Custom Implementations Tracker doesn't follow conventional commit format.

Please update it to start with one of:

  • feat: or feat(scope): new feature
  • fix: or fix(scope): bug fix
  • docs: or docs(scope): documentation changes
  • chore: or chore(scope): maintenance tasks
  • refactor: or refactor(scope): code refactoring
  • test: or test(scope): adding or updating tests

Where scope is the package name (e.g., app, desktop, opencode).

See CONTRIBUTING.md for details.

@github-actions
Copy link
Copy Markdown

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

Mark the skill template TextPart as synthetic so the full prompt is
sent to the model but hidden from the user. Add a short ignored
summary part ('Running skill: <command>') so the user still sees
confirmation that the skill was loaded.

Rebased from flexion/hide-skill-prompt-in-chat onto v1.4.0.
Gate tool resolution, LiteLLM noop injection, activeTools, tools, and
toolChoice behind input.model.capabilities.toolcall. Without this fix,
tool_call: false in opencode.json is parsed and stored but never checked,
causing Bedrock models that don't support streaming + tool use to fail.

Adds regression test verifying body.tools is not sent when toolcall: false.

Cherry-picked from lgarceau768#1 and rebased onto v1.4.0.
Covers cloning, building with bun, AWS SSO profile config,
opencode.json Bedrock provider setup, and the opencode-work
shell alias. Notes the tool_call fix included in this branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant