Skip to content

[WIP] Fix failing GitHub Actions job Deploy to Hostinger - #2

Closed
vjvarada with Copilot wants to merge 1 commit into
mainfrom
copilot/fix-deploy-to-hostinger
Closed

[WIP] Fix failing GitHub Actions job Deploy to Hostinger#2
vjvarada with Copilot wants to merge 1 commit into
mainfrom
copilot/fix-deploy-to-hostinger

Conversation

Copilot AI commented Jun 13, 2026

Copy link
Copy Markdown

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.

Fix the failing GitHub Actions job "Deploy to Hostinger"
Analyze the Actions logs, identify the root cause of the failure, and implement a fix.
Check run ID: 81214707391
Job URL: https://github.com/FracktalWorks/CommandCenter/actions/runs/27475770251/job/81214707391

Copilot stopped work on behalf of vjvarada due to an error June 13, 2026 18:50
Copilot AI requested a review from vjvarada June 13, 2026 18:50
vjvarada added a commit that referenced this pull request Jul 2, 2026
Ships the prompt-caching core (module map review #2, ADR-008 implemented,
specs/llm_caching_memory.md Phases 1-6). C4 grade D -> A-.

Key architecture correction: the platform is litellm-SDK-direct (NO proxy),
so the plan's "LiteLLM proxy pre-call hook" doesn't apply. Replaced by ONE
transform, acb_llm/prompt_cache.py::apply_prompt_caching, called by both
completion choke points:
  - acb_llm.complete / complete_with_tools (orchestrator-internal calls)
  - gateway v1_compat._handle_chat_completions (ALL agent traffic: native-MAF
    OpenAIChatCompletionClient + Copilot SDK)

The transform (litellm 1.86.0 carries cache_control on OpenAI-format blocks +
tool defs through to Anthropic, verified):
  - Anthropic: split system msg at the <!-- CACHE BREAK --> sentinel -> stable
    block cache_control:ephemeral, dynamic memory uncached; mark last tool
    schema (tools-first caching for function-tool agents).
  - OpenAI: add prompt_cache_key routing; no manual blocks (auto-caches).
  - DeepSeek/others: strip the sentinel so it never reaches the model.

Sentinel injected by executor.py (MAF instructions + Copilot system_message)
and agents.py::enrich_instructions_with_memory at the stable/dynamic seam.

Also:
  - Session-scoped memory cache (acb_memory/session_cache.py, injected-redis
    for layering) makes the memory block byte-stable across a thread's turns;
    wired into agent.py + enrich_instructions_with_memory (thread_id, 10m TTL).
  - LiteLLM Redis exact-match cache (client._init_litellm_cache, opt-in
    LITELLM_REDIS_CACHE + per-call enable_litellm_cache).
  - Graphiti episode worthiness gate (GRAPHITI_EPISODE_FILTER, conservative).
  - Anthropic startup prewarm (main._prewarm_prompt_cache, PROMPT_CACHE_PREWARM).

Phase 1 observability was already done (HH-3). Phase 7 (email tool-surface
reduction) is app-scoped + pending.

Tests: tests/unit/test_prompt_cache.py (11), test_session_memory_cache.py (7),
evals/trajectories/test_prompt_cache_trajectory.py (5, CI-blocking). Full
suite 566 unit + all trajectory evals green, zero regressions.

Note: explicit-cache win is dormant on the default DeepSeek tier (self-caches);
activates when a tier resolves to Anthropic/OpenAI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
vjvarada added a commit that referenced this pull request Jul 18, 2026
Antidote to time-blindness (UX review #2). Adds a persistent, ticking
"Now / Next" strip that always reflects the real current time (today),
independent of the day being browsed:

- Now: the block you should be in, with an elapsed progress bar, a
  "Xm left" countdown, and a one-tap done circle.
- Next: the upcoming block with its start time and a "starts in Xm"
  timer (or "starting now").
- Hides itself when there's nothing live to say (empty/finished day).

On the grid, the current block now gets a ring + a pulsing "now" chip,
and the now-line pulses and shows a live time pill (day view). One
useNow() clock (30s tick) drives the now-line, the ring and the
countdowns so the whole surface ages in real time instead of freezing
at mount. Also visible on mobile, where the scheduling rail is hidden.

Verified: tsc + eslint clean, production next build compiles.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vjvarada

Copy link
Copy Markdown
Contributor

Closing as stale — this WIP bot PR has sat since 2026-06-13. The deploy workflow has since been reworked (outcome-verified deploy on gateway /health, 682d344). Reopen if still relevant.

@vjvarada vjvarada closed this Jul 19, 2026
@vjvarada
vjvarada deleted the copilot/fix-deploy-to-hostinger branch July 19, 2026 16:34
vjvarada pushed a commit that referenced this pull request Jul 22, 2026
… context colours in the filter

Two follow-ups from the status-pill work:

#2 — On the desktop columnar list, grouping by a lens (Priority/Energy/
Context/Suggestion) meant the section headers carried the lens, not the
stage, so status was invisible there. The status pill now rides as a
leading chip on the Name cell whenever the grouping isn't status — right
next to the title, where the eye associates it with the task, and without
eating a fixed column that would crush the name. Extracted the pill into a
shared StatusPill component (used by the card and the row). Also gave the
Name grid track a 140px floor so titles never collapse to nothing when
every column is shown on a narrow window.

#3 — The Filter popover and its active chips now speak the same visual
language as the cards: priority facets use the lucide priority icons and
@context facets show their per-context colour dot (menu options and the
removable chips both), replacing the emoji.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wr1QWV3yuk5fesuBgnMWy1
vjvarada added a commit that referenced this pull request Jul 22, 2026
…ority/suggestion icons in Next Actions (#142)

* feat(tasks): status pill on cards only where the surface doesn't group by stage; per-context colours; lucide priority/suggestion icons

The Next-Actions card's status control is now a single, unified status
indicator — no more "Done button". The last stage is just Done like any
other stage; the pill is coloured by the same stageAccent the board
columns and list headers use, so status reads the same everywhere, and
clicking it is the only way to change status.

Placement now follows the surface:
  • Kanban board — the column IS the stage, so the per-card pill was
    redundant; it's off there.
  • Status-grouped list — the section header IS the stage; pill off.
  • Everywhere the stage isn't shown structurally (Engage, Priority, a
    lens-grouped list, the flat Waiting/Someday/… lists) — the pill
    stays on the card so the status lives on the card itself.

Also:
  • Each @context carries its own stable colour (contextColors.ts) on
    the card chip and the list Context column, instead of every context
    sharing the one primary tint.
  • Priority levels and action-mode suggestions now use lucide icons
    (priorityIcons.ts) on the card badges, the list Priority/Suggestion
    columns, and the grouped section headers — replacing the emoji.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wr1QWV3yuk5fesuBgnMWy1

* feat(tasks): show status on lens-grouped desktop rows; lucide icons + context colours in the filter

Two follow-ups from the status-pill work:

#2 — On the desktop columnar list, grouping by a lens (Priority/Energy/
Context/Suggestion) meant the section headers carried the lens, not the
stage, so status was invisible there. The status pill now rides as a
leading chip on the Name cell whenever the grouping isn't status — right
next to the title, where the eye associates it with the task, and without
eating a fixed column that would crush the name. Extracted the pill into a
shared StatusPill component (used by the card and the row). Also gave the
Name grid track a 140px floor so titles never collapse to nothing when
every column is shown on a narrow window.

#3 — The Filter popover and its active chips now speak the same visual
language as the cards: priority facets use the lucide priority icons and
@context facets show their per-context colour dot (menu options and the
removable chips both), replacing the emoji.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wr1QWV3yuk5fesuBgnMWy1

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants