Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
f427b55
chore(wip): preserve local worktree changes
Jul 28, 2026
09b7bf5
fixes
Jul 28, 2026
c0097c9
fix(core): return FlextResult from construction mixin factories
Jul 29, 2026
6080da1
fixes
Jul 30, 2026
c2f84c9
fixes
Jul 30, 2026
005e398
fixes
Jul 30, 2026
bd7c3da
fixes
Jul 30, 2026
f607749
refactor(result): consolidate protocols and result internals into MRO…
Jul 30, 2026
62c85de
fix(result): return concrete FlextResult from ok factory for mypy com…
Jul 30, 2026
02ae46b
fix(result): return concrete FlextResult from ok factory for mypy com…
Jul 30, 2026
0a25f02
fix(protocols): make p.Result covariant-safe and align result factories
Jul 30, 2026
acae76c
fix(result): collapse map_or overloads and drop stale ignores for mypy
Jul 30, 2026
e089981
fix(result,settings): make FlextResult and FlextSettings friendlier t…
Jul 30, 2026
49f8912
fix(handler): serialize middleware via PlainSerializer instead of mod…
Jul 30, 2026
a1b7f40
fix(core): recover flext-core-0120 metadata/result ownership on 0.12
Jul 30, 2026
93e60b1
fix(core): resolve Pyrefly/Ruff structural subtyping and typing regre…
Jul 30, 2026
2642f2d
style(enforcement): reformat long call for ruff line length
Jul 30, 2026
9307c2c
fix(core): enforce metadata result contract via protocol and remove p…
Jul 30, 2026
1219a3c
Fix service registration typing in tests
Jul 30, 2026
dc7b820
chore(beads): untrack member-local tracker state
Jul 30, 2026
59453ee
chore(codegen): regenerate managed surfaces and fix example spacing
Jul 30, 2026
3ec3edc
Merge remote-tracking branch 'origin/main' into 0.12.0-dev
Jul 30, 2026
0cef39b
chore(codegen): regenerate managed surfaces for flext-core
Jul 31, 2026
98ea1b0
chore(codegen): adopt regenerated conform projections
Jul 31, 2026
4067fe0
Merge remote-tracking branch 'origin/0.12.0-dev' into 0.12.0-dev
Jul 31, 2026
da10690
fix(codegen): restore the schema-v61 beads pin in regenerated surfaces
Jul 31, 2026
6c85f1c
fix(result): complete returns removal and allow empty success payload
Aug 1, 2026
ef0e952
fix(codegen): refresh direnv activation
Aug 1, 2026
73c3930
fixes
Aug 2, 2026
43bfab0
fixes
Aug 2, 2026
8cb6492
fix(service): validate by field name as well as alias
Aug 2, 2026
467fea1
fix(models): call computed_field without empty parentheses
Aug 2, 2026
524caa9
chore(codegen): adopt regenerated managed surfaces (ci, gitignore, pr…
Aug 2, 2026
31bd095
chore(workspace): regenerate managed surfaces from canonical SSOT
Aug 2, 2026
df672e3
chore(deps): converge pyproject managed markers to fixed point
Aug 3, 2026
a3508fe
chore(codegen): converge pyproject to the generator fixed point
Aug 3, 2026
7dfed1f
fix(codegen): restore the generator fixed point for [MANAGED] markers
Aug 3, 2026
4e9b54e
fixes
Aug 3, 2026
cb348e5
chore: regenerate Makefile and pyproject from workspace conform
Aug 3, 2026
6ce1b97
chore(gen): adopt regenerated Makefile, pyproject, and scope AGENTS
Aug 3, 2026
91a4c32
refactor(ci): move Dockerfiles under tests/fixtures/ci/docker
Aug 3, 2026
a31e9bc
chore(ci): expand blocking CI push branches to shared integration names
Aug 3, 2026
9236a21
fix(deps): exclude standalone uv cycle
Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .agents/INSTRUCTION_SURFACE.md

This file was deleted.

45 changes: 0 additions & 45 deletions .beads/.gitignore

This file was deleted.

85 changes: 0 additions & 85 deletions .beads/README.md

This file was deleted.

Empty file removed .beads/backup/LOCK
Empty file.
4 changes: 0 additions & 4 deletions .beads/backup/backup_state.json

This file was deleted.

Binary file removed .beads/backup/h6mbga66itkhrhtji8j986g8944trmlt.darc
Binary file not shown.
Binary file removed .beads/backup/i5r9boc7btoavocdoffrrcnho6dfr995.darc
Binary file not shown.
1 change: 0 additions & 1 deletion .beads/backup/manifest

This file was deleted.

Binary file removed .beads/backup/mt450ckcsvqtjh4v6ufap2cla4p8bjc9.darc
Binary file not shown.
90 changes: 23 additions & 67 deletions .beads/config.yaml
Original file line number Diff line number Diff line change
@@ -1,67 +1,23 @@
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
# or overridden with command-line flags

# Issue prefix for this repository (used by bd init)
# If not set, bd init will auto-detect from directory name
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
# issue-prefix: ""

# Use no-db mode: load from JSONL, no SQLite, write back after each command
# When true, bd will use .beads/issues.jsonl as the source of truth
# instead of SQLite database
# no-db: false

# Disable daemon for RPC communication (forces direct database access)
# no-daemon: false

# Disable auto-flush of database to JSONL after mutations
# no-auto-flush: false

# Disable auto-import from JSONL when it's newer than database
# no-auto-import: false

# Enable JSON output by default
# json: false

# Default actor for audit trails (overridden by BD_ACTOR or --actor)
# actor: ""

# Path to database (overridden by BEADS_DB or --db)
# db: ""

# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
# auto-start-daemon: true

# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
# flush-debounce: "5s"

# Export events (audit trail) to .beads/events.jsonl on each flush/sync
# When enabled, new events are appended incrementally using a high-water mark.
# Use 'bd export --events' to trigger manually regardless of this setting.
# events-export: false

# Git branch for beads commits (bd sync will commit to this branch)
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
# This setting persists across clones (unlike database config which is gitignored).
# Can also use BEADS_SYNC_BRANCH env var for local override.
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
# sync-branch: "beads-sync"

# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
# repos:
# primary: "." # Primary repo (where this database lives)
# additional: # Additional repos to hydrate from (read-only)
# - ~/beads-planning # Personal planning repo
# - ~/work-planning # Work planning repo

# Integration settings (access with 'bd config get/set')
# These are stored in the database, not in this file:
# - jira.url
# - jira.project
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
# @flext-managed: continuous
# @flext-regenerate: make gen WHAT=apply APPLY=Y
# @flext-ssot: config/workspace.yaml (ledger_id) + flext-infra config/codegen.yaml (toolchain.beads.server)
# @flext-maintenance: do not edit generated projections; edit the SSOT and regenerate
# Generated by `flext-infra gen conform`.
# Source: issue_prefix/database = workspace manifest ledger_id (config key:
# ledger_id) falling back to the canonical project name when undeclared.
# Source: dolt server block = flext-infra config/codegen.yaml
# toolchain.beads.server (machine-wide shared Dolt server facts).
# Owned ledger config: the workspace root owns this tracker; conform
# initializes and verifies it against the pinned binary.
issue-prefix: "flext-core"

# Dolt shared-server connection (machine-wide shared server on :3308).
# The `flext-core` database lives there; a repository-local server is never used.
dolt:
mode: server
shared-server: true
host: 127.0.0.1
port: 3308
user: root
database: flext-core
auto-commit: "on"
1 change: 0 additions & 1 deletion .beads/embeddeddolt/beads/.dolt/config.json

This file was deleted.

Empty file.
Binary file removed .beads/embeddeddolt/beads/.dolt/noms/journal.idx
Binary file not shown.
1 change: 0 additions & 1 deletion .beads/embeddeddolt/beads/.dolt/noms/manifest

This file was deleted.

This file was deleted.

Binary file not shown.
15 changes: 0 additions & 15 deletions .beads/embeddeddolt/beads/.dolt/repo_state.json

This file was deleted.

Empty file.
Empty file removed .beads/interactions.jsonl
Empty file.
Empty file removed .beads/issues.jsonl
Empty file.
4 changes: 0 additions & 4 deletions .beads/metadata.json

This file was deleted.

72 changes: 32 additions & 40 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,56 +1,48 @@
# @generated by: flext_infra workspace sync
# Canonical direnv activation for FLEXT Python workspaces.

# Generated by `flext-infra codegen conform`.
# === SECTION: header (managed) ===
# Source: template (base/.envrc.j2)
# Free: no
# Canonical direnv activation for one inferred repository environment.
# End SECTION: header

# === SECTION: strict evaluation and watched inputs (managed) ===
# Source: template (direnv stdlib contract)
strict_env

WORKSPACE_ROOT="${PWD}"
AI_HUB="${AI_HUB:-${HOME}/.ai-hub}"
VENV_DIR="${WORKSPACE_ROOT}/.venv"
MISE_SHIMS="${WORKSPACE_MISE_SHIMS:-${MISE_SHIMS:-${HOME}/.local/share/mise/shims}}"
PYPROJECT_FILE="${WORKSPACE_ROOT}/pyproject.toml"

export AI_HUB
export WORKSPACE_ROOT
export WORKSPACE_MISE_SHIMS="${MISE_SHIMS}"
export MISE_SHIMS
watch_file .mise.toml
watch_file pyproject.toml
# End SECTION: strict evaluation and watched inputs

# === SECTION: repository environment (managed) ===
# Source: computed:nearest-pyproject-via-direnv-find_up + template
PROJECT_ROOT="$(find_up pyproject.toml)"
PROJECT_ROOT="${PROJECT_ROOT%/*}"
VENV_DIR="${PROJECT_ROOT}/.venv"
export PROJECT_ROOT
export PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring"
export PYTHONDONTWRITEBYTECODE=1
export PYTHONUNBUFFERED=1
# End SECTION: repository environment

# === SECTION: mise activation (managed) ===
# Source: template (optional installed mise runtime)
if command -v mise >/dev/null 2>&1; then
eval "$(mise activate bash --shims)"
fi
# End SECTION: mise activation

path_prepend_once() {
case ":${PATH}:" in
*":$1:"*) ;;
*) PATH="$1${PATH:+:${PATH}}" ;;
esac
}

if [[ -d "${WORKSPACE_ROOT}/bin" ]]; then
path_prepend_once "${WORKSPACE_ROOT}/bin"
fi
# === SECTION: configured paths (managed) ===
# Source: template + config:environment_path_prepends
PATH_add "${PROJECT_ROOT}/bin"
# End SECTION: configured paths

if [[ -d "${AI_HUB}/.venv/bin" ]]; then
path_prepend_once "${AI_HUB}/.venv/bin"
fi

path_prepend_once "${MISE_SHIMS}"

if [[ -f "${PYPROJECT_FILE}" && -d "${VENV_DIR}" ]]; then
# === SECTION: virtual environment (managed) ===
# Source: computed:nearest-pyproject-root/.venv + template
if [[ -f "${PROJECT_ROOT}/pyproject.toml" && -d "${VENV_DIR}" ]]; then
export UV_PROJECT_ENVIRONMENT="${VENV_DIR}"
export VIRTUAL_ENV="${VENV_DIR}"
path_prepend_once "${VENV_DIR}/bin"
PYTHON_VERSION="$(python -c 'import sys; u.Cli.print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
export PYTHON_VERSION
log_status "workspace activated (python ${PYTHON_VERSION:-?}, venv ${VENV_DIR})"
elif [[ -f "${PYPROJECT_FILE}" ]]; then
log_error ".venv not found - run: uv venv && uv sync"
PATH_add "${VENV_DIR}/bin"
else
unset UV_PROJECT_ENVIRONMENT
unset VIRTUAL_ENV
log_status "workspace activated without Python project (pyproject.toml not found)"
fi

export PATH
# End SECTION: virtual environment
Loading
Loading