Skip to main content

Tenter

This longform module page is the manufacturer-docs entry point for the module. It uses the product overview when that surface is admitted and falls back to the first safe versioned detail page when the overview is still blocked. Use it first; drop into the versioned product pages only when you need deeper surface detail or channel-specific reference.

  • Canonical module key: tenter
  • Source repo: JaddaHelpifyr/jhf-tenter
  • Preferred versioned channel today: stable

Versioned product docs

Use these direct entry points when you need exact product behavior, operations, or reference detail:

Tool / Contract Summary

jhf-tenter is the runtime toolkit and verification repo for the OpenClaw voice lane. It owns repo-side contracts, verifiers, package artifacts, and the canonical Asterisk stack definition for tenter-owned voice surfaces.

This repo does not present itself as a permanent product service. Its job is to define, verify, and document runtime behavior precisely enough that deployment, validation, website, and governance consumers can use it without guessing.

When You Need Tenter

Use jhf-tenter when the stack needs:

  • canonical voice-lane runtime contracts and verification paths
  • repo-owned Asterisk stack truth for tenter-owned voice surfaces
  • package and handoff artifacts for the voice toolkit lane
  • bounded live readback and runtime evidence for voice-related stacks

Do not use jhf-tenter as the owner of Fabric semantics, deployment execution, or unrelated product UI truth.

Business Value

  • Gives operators one repo-owned place for runtime stack truth, verify commands, and recovery hints.
  • Gives downstream repos a stable contract for what jhf-tenter owns versus what Fabric, Deployment, Heddle, or OpenClaw own.
  • Reduces drift between repo claims and real host evidence.
  • Makes Wiki.js and jhf-web consumption possible without inventing structure or semantics.

Current Verified State

Current live runtime evidence is owner-only. Public release-facing surfaces in this repository define the contract and verify path, while exact host coordinates remain excluded from the current release-admission set.

Available now

  • Repo-owned voice runtime slices and executable smoke evidence.
  • Repo-owned Asterisk stack source of truth.
  • Repo-owned package contract and package verification path.
  • Read-only Fabric alignment for governance, voice events, combinations, and optional carrier slices.
  • Host-near and live verification scripts.

Optional / Extended

  • Deployment-executed GUI runtime and rollout.
  • Heddle-backed SSO for the GUI operator surface.
  • Optional carrier/CTI slice for spindle/Zammad through Fabric.
  • Discord readiness without a live Discord runtime.

Planned / Not in current scope

  • No repo-owned product UI or operator portal beyond the defined stack artifacts and handoff docs.
  • No local rewrite of Fabric governance or combinations semantics.
  • No automatic live-host mutation from CI.

Public Surfaces

  • Repo artifacts:
    • fabric-manifest.json
    • docs/CAPABILITIES.md
    • docs/ASTERISK_RUNTIME_STACK_SOURCE_OF_TRUTH.md
  • Verify commands:
    • python3 scripts/ci/verify_repo.py
    • bash scripts/fabric-selfcheck.sh
    • python3 scripts/ci/verify_asterisk_stack_source_of_truth.py
    • python3 scripts/ci/verify_voice_live_call.py
  • Consumed live read surfaces:
    • Fabric contracts and combinations APIs
    • OpenClaw healthz
    • Asterisk ARI info endpoint

Contract Families

  • Voice runtime slices:
    • VOICE_ROUTER_RUNTIME_SLICE
    • VOICE_ASTERISK_ARI_ADAPTER_SLICE
    • VOICE_STT_TTS_OPENCLAW_FLOW_SLICE
    • VOICE_RUNTIME_VALIDATION_MATRIX
  • Fabric consumer slices:
    • FABRIC_COMBINATION_PROFILE_CONSUMER
    • FABRIC_PRODUCER_CONSUMER_ADOPTION
  • Runtime/GUI slices:
    • ASTERISK_RUNTIME_STACK_SOURCE_OF_TRUTH
    • ASTERISK_GUI_SSO_HANDOFF
    • ASTERISK_GUI_OPERATOR_SURFACE_CONSUMER
  • Transitional operator slice:
    • VOICE_DIRECT_TARGET_OPERATOR_CALL
  • Optional carrier boundary:
    • SIPGATE_CARRIER_BOUNDARY_CONTRACT

Producer-/Consumer-Zuordnung

  • jhf-tenter produces:
    • repo-owned runtime contracts
    • repo-owned verify output
    • canonical Asterisk stack artifacts
  • jhf-tenter consumes read-only:
    • Fabric governance truth
    • Fabric combinations truth
    • OpenClaw host evidence
  • jhf-tenter does not own:
    • Fabric contract semantics
    • OpenClaw runtime implementation
    • deployment execution
    • IdP and SSO truth

Ownership Boundary

jhf-tenter owns:

  • voice runtime toolkit contracts and verifiers
  • the repo-owned Asterisk stack definition
  • package artifacts and voice runtime documentation in this repository

jhf-tenter does not own:

  • final deployment execution
  • Fabric governance truth
  • jhf-docs materialization or publisher ownership
  • non-voice domain ownership outside the documented runtime slices

Compatibility Window

  • Fabric governance and voice-events adoption currently targets version 1.0.0 as published by Fabric.
  • Combination and optional-slice semantics must track the live Fabric surfaces, not frozen local copies.
  • Runtime stack compatibility is defined by the checked-in compose files and env contracts in this repo.

Lifecycle Status

  • Repository state:
    • active
  • Runtime posture:
    • toolkit plus verification layer
  • Live runtime posture:
    • host/readback required

Readiness / Drift / Monitoring

  • Green means repo-local verifiers, Fabric self-check, and live read surfaces agree.
  • Drift means:
    • docs claim something the host no longer does
    • Fabric-owned versions or states differ from local assumptions
    • ports or runtime ownership are inferred from nearby stacks instead of the repo contract
  • Monitoring in this repo is evidence-oriented, not a separate control plane.

Deployment / Verify

Recommended entry path:

bash scripts/fabric-selfcheck.sh
python3 scripts/ci/verify_repo.py
python3 scripts/export-fabric-metadata.py --check
python3 scripts/ci/verify_asterisk_stack_source_of_truth.py

For deeper voice verification, continue with:

python3 scripts/ci/verify_voice_runtime_slice.py
python3 scripts/ci/verify_stt_tts_flow_slice.py
python3 scripts/ci/verify_voice_live_call.py

For a bounded repo-owned source-doc verification pass, run:

python3 scripts/validate_docs_platform_v1_6.py
python3 scripts/export-fabric-metadata.py --check
python3 scripts/docs/validate_docs_inventory.py

Known Limits

  • The deepest live-call path is still sensitive to the external openclaw status --json wrapper blocker.
  • This repo does not own deployment execution even though it owns the stack definition.
  • Several runtime slices are transitional rather than fully productized services.

Exceptions / Waivers

  • The optional sipgate-zammad-cti slice is allowed to stay disabled without making the core agent-call path unhealthy.
  • GUI runtime presence may be externalized to deployment execution while the stack truth stays here.
  • jhf-tenter#87
  • jhf-tenter#88
  • jhf-tenter#90
  • openclaw-environment#30
  • jhf-deployment#170

Docs Platform v1.6 Base Family

  • README.md
  • docs/OVERVIEW.md
  • docs/INSTALL.md
  • docs/CONFIGURATION.md
  • docs/OPERATIONS.md
  • docs/TROUBLESHOOTING.md
  • docs/RELEASE_NOTES.md
  • docs_manifest.yml

Release Admission Posture

This repository is a stack-nightly candidate, but it is not yet admitted for a public nightly. The current owner-bounded release posture is pending_history_scan, with release-facing surfaces constrained by contracts/admission/release_surface_inventory_v1.json. Repo-owned history evidence now runs through python scripts/verify_repository_history_posture.py and currently proves filtered_publication_required; active blocker: JaddaHelpifyr/jhf-tenter#651. The owner-side filtered bundle is built only from an exact clean main checkout into an external directory; implementation is tracked in jhf-tenter#662.