Skip to content

Commit 0e7a572

Browse files
committed
chore: resolve dashboard add/add merge conflict by keeping local changes
2 parents 26ae34d + 28195be commit 0e7a572

13 files changed

Lines changed: 224 additions & 22 deletions

.github/workflows/ci.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
run:
1818
working-directory: universal-refiner
1919
steps:
20-
- uses: actions/checkout@v5
20+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
2121

2222
- name: Setup Node 22
23-
uses: actions/setup-node@v5
23+
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
2424
with:
2525
node-version: '22'
2626

@@ -49,8 +49,8 @@ jobs:
4949
- primary
5050
- reversed
5151
steps:
52-
- uses: actions/checkout@v5
53-
- uses: actions/setup-node@v5
52+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
53+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
5454
with:
5555
node-version: '22'
5656
cache: npm
@@ -77,8 +77,8 @@ jobs:
7777
run:
7878
working-directory: universal-refiner
7979
steps:
80-
- uses: actions/checkout@v5
81-
- uses: actions/setup-node@v5
80+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
81+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
8282
with:
8383
node-version: '22'
8484
cache: npm
@@ -97,8 +97,8 @@ jobs:
9797
run:
9898
working-directory: universal-refiner
9999
steps:
100-
- uses: actions/checkout@v5
101-
- uses: actions/setup-node@v5
100+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
101+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
102102
with:
103103
node-version: '22'
104104
cache: npm
@@ -125,8 +125,8 @@ jobs:
125125
run:
126126
working-directory: universal-refiner
127127
steps:
128-
- uses: actions/checkout@v5
129-
- uses: actions/setup-node@v5
128+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
129+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
130130
with:
131131
node-version: '22'
132132
cache: npm
@@ -152,8 +152,8 @@ jobs:
152152
run:
153153
working-directory: universal-refiner
154154
steps:
155-
- uses: actions/checkout@v5
156-
- uses: actions/setup-node@v5
155+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
156+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
157157
with:
158158
node-version: '22'
159159
cache: npm

.github/workflows/codeql.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ jobs:
2222
language: [ 'typescript' ]
2323
steps:
2424
- name: Checkout repository
25-
uses: actions/checkout@v4
25+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
2626
- name: Initialize CodeQL
27-
uses: github/codeql-action/init@v3
27+
uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
2828
with:
2929
languages: ${{ matrix.language }}
3030
- name: Autobuild
31-
uses: github/codeql-action/autobuild@v3
31+
uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
3232
- name: Perform CodeQL Analysis
33-
uses: github/codeql-action/analyze@v3
33+
uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4

.github/workflows/pages.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ jobs:
1616
runs-on: ubuntu-latest
1717
timeout-minutes: 10
1818
steps:
19-
- uses: actions/checkout@v4
20-
- uses: actions/setup-python@v5
19+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
20+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
2121
with:
2222
python-version: 3.x
2323
- run: pip install mkdocs-material
2424
- run: mkdocs build
25-
- uses: actions/upload-pages-artifact@v3
25+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
2626
with:
2727
path: ./site
2828
deploy:
@@ -35,4 +35,4 @@ jobs:
3535
steps:
3636
- name: Deploy to GitHub Pages
3737
id: deployment
38-
uses: actions/deploy-pages@v4
38+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5

.github/workflows/pr-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ jobs:
1515
runs-on: ubuntu-latest
1616
timeout-minutes: 10
1717
steps:
18-
- uses: amannn/action-semantic-pull-request@v5
18+
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6
1919
env:
2020
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches: [master]
6+
7+
jobs:
8+
release-please:
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
issues: write
13+
uses: Coding-Autopilot-System/.github/.github/workflows/release-please-reusable.yml@f288e5e3b67b29a2c08880b76da7b852f4a132d0

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
timeout-minutes: 10
1515
steps:
16-
- uses: actions/stale@v8
16+
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10
1717
with:
1818
days-before-stale: 60
1919
days-before-close: 7

.release-please-manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{".": "0.0.0"}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,5 @@ Non-loopback model endpoints are rejected unless `allowNonLoopback` is explicitl
111111
## License
112112

113113
MIT - see [LICENSE](LICENSE)
114+
115+
<!-- docs-verified: 101f63d702e5c0ab8052c8e0c67a104d8edfbddb 2026-07-08 -->

docs/wiki/Architecture.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Architecture
2+
3+
## Governance / blackboard flow
4+
5+
`universal-refiner` (the active MCP server) intercepts a raw prompt from an AI CLI, runs it
6+
through context and refinement, and — via `AgenticBlackboard` (`src/core/blackboard.ts`) —
7+
publishes and reads shared state so concurrent agent sessions can coordinate rather than act
8+
on disjoint local knowledge.
9+
10+
```mermaid
11+
flowchart LR
12+
CLI["AI CLI\n(Claude / Cursor / Gemini)"] -->|"stdio"| PI["PromptImprover\n(universal-refiner)"]
13+
subgraph Engine["Governance & Refinement Engine"]
14+
Scout["Context Scout\nlanguage/framework detectors"]
15+
RAG["RAG Snippets\nFlexSearch retrieval"]
16+
Memory[("SQLite Memory\nLocalBrain")]
17+
Semantic["Local Semantic Model\ngemma3:12b / 1b"]
18+
end
19+
subgraph BB["AgenticBlackboard (blackboard.json)"]
20+
Intents["Active agent intents\n(agentName, toolType, expiresAt)"]
21+
Logs["System logs\n(per-project)"]
22+
LastRefine["Last refinement record\n(gain metric)"]
23+
end
24+
PI --> Scout --> RAG --> Memory --> Semantic --> PI
25+
PI -->|"publish intent"| BB
26+
BB -->|"read concurrent intents"| PI
27+
PI --> Out["Augmented Prompt"]
28+
Out -.->|"event store"| Memory
29+
```
30+
31+
<!-- codex:generate-image prompt="A shared glowing chalkboard in the center of a room, with several small agent robots (labeled Claude, Cursor, Gemini) posting colored intent cards onto it and reading each other's cards before acting; one robot writes a refined prompt scroll that flows out to a waiting execution robot; isometric, enterprise blue/graphite palette" style="isometric, enterprise, clean" replaces="mermaid-above" -->
32+
33+
## Component breakdown
34+
35+
- **Context Scout** — startup detectors identify language, framework, and architectural
36+
signals so refinement is tailored to the current codebase (`src/detectors/project-scout.ts`).
37+
- **RAG Snippets** — FlexSearch-based retrieval over the local codebase injects relevant
38+
examples into the refined prompt.
39+
- **AgenticBlackboard** — a JSON-file-backed shared store (`.refiner/blackboard.json`,
40+
project-scoped, with a global fallback under `~/.refiner`) recording active agent intents
41+
(`agentName`, `toolType`, `intent`, `expiresAt`), system logs, and the last refinement's
42+
gain metric. A serialized write queue (`writeQueue`) and listener registry prevent
43+
concurrent-write corruption when multiple CLI sessions touch the same project.
44+
- **LocalBrain (SQLite)** — persistent storage for reusable refinement rules, learned
45+
patterns, and prompt history.
46+
- **Local Semantic Model** — an optional OpenAI-compatible local endpoint (`gemma3:12b`,
47+
falling back to `gemma3:1b`) that produces the final refined prompt; rule-based refinement
48+
continues if neither the local model nor MCP sampling is available.
49+
- **Governance gate** — generated lessons and templates remain pending until reviewed through
50+
the MCP learning-review tools (see the root README's Local Semantic Model section) — the
51+
blackboard records the intent and history that gate reviews against.
52+
53+
<!-- docs-verified: 101f63d702e5c0ab8052c8e0c67a104d8edfbddb 2026-07-08 -->

docs/wiki/Decisions.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Decisions
2+
3+
## ADR convention
4+
5+
`docs/adr/README.md` establishes the convention (sequential numbering, Context/Decision/
6+
Consequences) but **no numbered ADR files exist in the repo yet**. Decisions to date live in
7+
`.planning/phases/` and the `docs/` architecture specs instead.
8+
9+
## Phase history (`.planning/phases/`, this repo's own GSD project)
10+
11+
| Phase | Topic |
12+
|---|---|
13+
| 01 | FS watcher |
14+
15+
See [`docs/promptimprover-autogen-architecture-spec.md`](../promptimprover-autogen-architecture-spec.md),
16+
[`docs/enterprise-release-gates.md`](../enterprise-release-gates.md), and
17+
[`docs/operator-testing.md`](../operator-testing.md) for the broader design record beyond the
18+
single formal phase.
19+
20+
## Open decisions tracked in this Phase 36 refresh
21+
22+
- **PR #27** (`fix/dashboard-loopback-xss`) — bind dashboard to loopback and escape HTML in
23+
trace rendering; open, not yet merged.
24+
- **PR #28** (`ci/sha-pin-and-least-privilege`) — pins third-party GitHub Actions to commit
25+
SHAs and least-privilege permissions; open, not yet merged.
26+
27+
<!-- docs-verified: 101f63d702e5c0ab8052c8e0c67a104d8edfbddb 2026-07-08 -->

0 commit comments

Comments
 (0)