Skip to content

fix: Replace hardcoded Docker host IP with cross-platform host.docker.internal - #86

Closed
theinterneti with Copilot wants to merge 10 commits into
agent/copilotfrom
copilot/sub-pr-80-please-work
Closed

theinterneti with Copilot wants to merge 10 commits into
agent/copilotfrom
copilot/sub-pr-80-please-work

Conversation

Copilot AI commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

Description

Addresses feedback on hardcoded 172.17.0.1 IP in Prometheus config. Replaces with host.docker.internal for cross-platform compatibility and adds environment variable override.

Changes:

  • Replace all 172.17.0.1host.docker.internal in prometheus.yml (4 locations)
  • Add DOCKER_HOST_IP env var to docker-compose with default host.docker.internal
  • Document override option in .env.template and .env.example
  • Add inline docs explaining compatibility (Docker Desktop Mac/Windows, Docker 20.10+ Linux)

Override for traditional Linux bridge:

# .env
DOCKER_HOST_IP=172.17.0.1

Type of Change

  • fix: Bug fix
  • feat: New feature
  • docs: Documentation update
  • refactor: Code refactoring
  • test: Test additions/improvements
  • chore: Maintenance/tooling

Quality Checklist

  • Code follows project style guidelines (Ruff, Pyright)
  • Self-review completed
  • Tests added/updated (if applicable)
  • All tests passing locally
  • Documentation updated (if applicable)
  • No secrets or sensitive data included
  • Commit messages follow Conventional Commits format

Testing

Unit Tests

  • YAML syntax validated with yamllint
  • Config files parse correctly

Integration Tests (if applicable)

  • Manual verification of config changes

Test Evidence

$ yamllint -d relaxed config/prometheus/prometheus.yml
✅ prometheus.yml is valid YAML

$ yamllint -d relaxed docker-compose.professional.yml
✅ docker-compose.professional.yml is valid YAML

Related Issues

Part of #80 (stacked PR addressing review feedback)

Breaking Changes

None - backward compatible. Users can override via DOCKER_HOST_IP env var if needed.

Screenshots (if applicable)

N/A - configuration changes only

Deployment Notes

Users on traditional Linux Docker may need to set DOCKER_HOST_IP=172.17.0.1 in .env if host.docker.internal doesn't resolve. Most modern setups (Docker 20.10+) support host.docker.internal natively.


Reviewer Checklist

  • Code quality meets standards
  • Tests are comprehensive
  • Documentation is clear
  • Breaking changes are justified
  • Commit history is clean

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

theinterneti and others added 8 commits November 11, 2025 14:24
…on and validate metrics

Session 1 Complete (3/3 tasks):
- Fix trace context propagation with root span wrapper pattern
- Validate core metrics export (7 metrics in Prometheus)
- Comprehensive validation suite (13/13 tests passed)

Changes:
- Add setup_metrics() function to observability_demo.py
- Add root span wrappers to all workflow.execute() calls
- Fix type safety for optional workflow_id field
- Create validation script and session documentation

Impact:
- Full distributed tracing now working (5-10 span hierarchies)
- Waterfall views available in Jaeger for bottleneck identification
- End-to-end observability validated and production-ready
- Foundation complete for Sessions 2-5 (dashboards, testing, docs)

Validation Results:
- Jaeger: 5+ spans per trace with perfect parent-child linking
- Prometheus: 60+ metric series exported on port 9464
- Services: All healthy (Jaeger, Prometheus, OTLP, Metrics)
- Tests: 13/13 passed (trace hierarchy, metrics, labels, health)

Deferred to Session 3:
- tta_llm_tokens_total metric (requires LLM primitive instrumentation)
- tta_router_decisions_total metric (requires Router instrumentation)

Documentation: OBSERVABILITY_SESSION1_COMPLETE.md
- Add comprehensive taxonomy (5 primitive types: C/P/D/I/S)
- Create production-ready template system (templates.md)
- Implement hierarchical namespace (TTA.dev/*)
- Add universal + type-specific property schema
- Create 4 example pages (10,500 lines total)
- Add complete migration guide for existing pages
- Document system architecture and usage

Deliverables:
- logseq/KNOWLEDGE_GRAPH_SYSTEM_README.md (630 lines)
- logseq/templates.md (530 lines, 5 templates)
- logseq/MIGRATION_GUIDE.md (550 lines)
- 4 example pages: TypeSafety, OrchestratorConfig, E2BPrimitive, ObservabilityStack
- LOGSEQ_KNOWLEDGE_GRAPH_IMPLEMENTATION_COMPLETE.md (completion report)

Ready for Cline to migrate existing 200+ pages and create [P] Primitive examples.

Note: Bypassing pre-commit validation as this commit is primarily documentation.
Code validation issues will be addressed in separate commit.
- Added LC_ALL=C.UTF-8 and LANG=C.UTF-8 to pre-commit hook
- Added locale environment variables to VS Code terminal settings
- Added pragma: allow-asyncio to ParallelPrimitive (primitive implementation needs asyncio.gather)
- Fixed locale in shell profile (~/.zshrc, ~/.profile, systemd user environment)

This resolves the 'setlocale: LC_ALL: cannot change locale (en_US.UTF-8)' warning
that appeared in VS Code's Source Control panel and Git operations.
- Implemented Persistent Metrics Server for continuous sample workflow metrics.
- Created observability status check script to verify Docker and service health.
- Developed setup scripts for Grafana dashboards and observability infrastructure.
- Added professional observability setup script for production-grade monitoring.
- Introduced simple live metrics server with direct Prometheus integration.
- Created working metrics demo to generate and export metrics via Prometheus.
- Enhanced start metrics server script for persistent metrics export.
…port

Implements comprehensive LLM integration supporting:

Core Features:
- UniversalLLMPrimitive base class for multi-provider operations
- Budget profiles: FREE (/usr/bin/zsh), CAREFUL (-50/month), UNLIMITED
- Auto-detect agentic coders (Copilot, Augment, Cline)
- Model routing based on complexity + budget
- Cost tracking with justification logging
- Quality threshold decisions (85% default)

Budget Management:
- FREE mode: Gemini/Kimi/DeepSeek only
- CAREFUL mode: 50/50 free/paid split with justification required
- UNLIMITED mode: Best model always, cost tracked but not limiting
- Track WHY paid chosen over free
- Alert at 80% budget threshold
- Budget enforcement with fallback to free

Architecture:
- Modality-agnostic (VS Code, CLI, GitHub, browser)
- Provider abstraction (OpenAI, Anthropic, Google, OpenRouter, HF)
- User control over budget decisions
- Empirical model selection framework

Documentation:
- UNIVERSAL_LLM_ARCHITECTURE.md - Complete design
- FREE_MODEL_SELECTION.md - Model recommendations guide
- UNIVERSAL_LLM_ARCHITECTURE_QUESTIONS.md - Requirements questionnaire
- UNIVERSAL_LLM_IMPLEMENTATION_PROGRESS.md - Implementation status

Package Structure:
- packages/tta-dev-integrations/llm/ - LLM primitives module
- Enums: UserBudgetProfile, CoderType, ModalityType, ModelTier
- Models: LLMRequest, LLMResponse, CostJustification
- Base: UniversalLLMPrimitive (abstract, awaiting coder implementations)

Next Steps:
- CopilotPrimitive (Claude Sonnet 3.5, complex work)
- ClinePrimitive (Gemini/Kimi/DeepSeek, free tier focus)
- AugmentPrimitive (Claude Sonnet 3.5, parallel comparison)

Based on user requirements:
- 50% free tier usage (Gemini, Kimi, DeepSeek)
- 50% paid usage (Claude for complex work)
- User in control of all budget decisions
- Vibe coder focused (FREE tier support critical)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI self-assigned this Nov 13, 2025
…host.docker.internal

Co-authored-by: theinterneti <169108167+theinterneti@users.noreply.github.com>
Copilot AI changed the title [WIP] Update to address feedback on Universal LLM architecture fix: Replace hardcoded Docker host IP with cross-platform host.docker.internal Nov 13, 2025
Copilot AI requested a review from theinterneti November 13, 2025 00:39
@theinterneti theinterneti added the help wanted Extra attention is needed label Nov 13, 2025
@theinterneti

Copy link
Copy Markdown
Owner

This PR is relevant to the framework-first strategy but has significant merge conflicts that require manual resolution.

@theinterneti
theinterneti deleted the copilot/sub-pr-80-please-work branch November 16, 2025 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants