Skip to content

Commit cc09fc1

Browse files
committed
Merge branch 'main' into visionv2
2 parents 5ed3e8d + fa81a68 commit cc09fc1

File tree

11 files changed

+61
-27
lines changed

11 files changed

+61
-27
lines changed

.github/chatmodes/fixer.chatmode.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: 'Fix and verify issues in app'
33
model: GPT-5 (Preview)
4-
tools: ['extensions', 'codebase', 'usages', 'vscodeAPI', 'problems', 'changes', 'testFailure', 'fetch', 'findTestFiles', 'searchResults', 'githubRepo', 'runTests', 'runCommands', 'runTasks', 'editFiles', 'runNotebooks', 'search', 'new', 'get_issue', 'get_issue_comments', 'get-library-docs', 'playwright', 'pylance mcp server']
4+
tools: ['extensions', 'codebase', 'usages', 'vscodeAPI', 'problems', 'changes', 'testFailure', 'fetch', 'findTestFiles', 'searchResults', 'githubRepo', 'runTests', 'runCommands', 'runTasks', 'editFiles', 'runNotebooks', 'search', 'new', 'create_pull_request', 'get_issue', 'get_issue_comments', 'get-library-docs', 'playwright', 'pylance mcp server']
55
---
66

77
# Fixer Mode Instructions
@@ -25,3 +25,8 @@ You MUST check task output readiness before debugging, testing, or declaring wor
2525
- Backend: Quart was started with --reload; Python changes trigger an automatic restart.
2626
- If watchers seem stuck or output stops updating, stop the tasks and run the "Development" task again.
2727
- To interact with a running application, use the Playwright MCP server
28+
29+
## Committing the change
30+
31+
When change is complete, offer to make a new branch, git commit, and pull request.
32+
Make sure the PR follows the PULL_REQUEST_TEMPLATE.md format, with all sections filled out and appropriate checkboxes checked.

.github/workflows/python-test.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ jobs:
3030
steps:
3131
- uses: actions/checkout@v5
3232
with:
33-
fetch-depth: 0 # Fetch all history for diff-cover
33+
# Fetch full history so diff-cover can compute a merge base with origin/main
34+
fetch-depth: 0
3435
- name: Install uv
3536
uses: astral-sh/setup-uv@v6
3637
with:
@@ -67,8 +68,10 @@ jobs:
6768
- name: Check diff coverage
6869
if: runner.os != 'Windows'
6970
run: |
70-
git fetch origin main:refs/remotes/origin/main
71-
diff-cover coverage.xml --compare-branch=origin/main --fail-under=90
71+
BASE_REF="${{ github.base_ref }}"
72+
if [ -z "$BASE_REF" ]; then BASE_REF="main"; fi
73+
git fetch origin "$BASE_REF:refs/remotes/origin/$BASE_REF"
74+
diff-cover coverage.xml --compare-branch="origin/$BASE_REF" --fail-under=90
7275
- name: Run E2E tests with Playwright
7376
id: e2e
7477
if: runner.os != 'Windows'

.vscode/extensions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
"ms-azuretools.vscode-bicep",
55
"ms-python.python",
66
"esbenp.prettier-vscode",
7-
"DavidAnson.vscode-markdownlint",
7+
"DavidAnson.vscode-markdownlint"
88
]
99
}

app/backend/app.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,13 @@ def create_app():
738738

739739
if os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"):
740740
app.logger.info("APPLICATIONINSIGHTS_CONNECTION_STRING is set, enabling Azure Monitor")
741-
configure_azure_monitor()
741+
configure_azure_monitor(
742+
instrumentation_options={
743+
"django": {"enabled": False},
744+
"psycopg2": {"enabled": False},
745+
"fastapi": {"enabled": False},
746+
}
747+
)
742748
# This tracks HTTP requests made by aiohttp:
743749
AioHttpClientInstrumentor().instrument()
744750
# This tracks HTTP requests made by httpx:

app/backend/requirements.txt

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ azure-identity==1.17.1
5151
# via
5252
# -r requirements.in
5353
# msgraph-sdk
54-
azure-monitor-opentelemetry==1.6.1
54+
azure-monitor-opentelemetry==1.6.13
5555
# via -r requirements.in
56-
azure-monitor-opentelemetry-exporter==1.0.0b32
56+
azure-monitor-opentelemetry-exporter==1.0.0b40
5757
# via azure-monitor-opentelemetry
5858
azure-search-documents==11.6.0b12
5959
# via -r requirements.in
@@ -214,7 +214,7 @@ oauthlib==3.2.2
214214
# via requests-oauthlib
215215
openai==1.99.8
216216
# via -r requirements.in
217-
opentelemetry-api==1.31.1
217+
opentelemetry-api==1.36.0
218218
# via
219219
# azure-core-tracing-opentelemetry
220220
# azure-monitor-opentelemetry-exporter
@@ -237,7 +237,7 @@ opentelemetry-api==1.31.1
237237
# opentelemetry-instrumentation-wsgi
238238
# opentelemetry-sdk
239239
# opentelemetry-semantic-conventions
240-
opentelemetry-instrumentation==0.52b1
240+
opentelemetry-instrumentation==0.57b0
241241
# via
242242
# opentelemetry-instrumentation-aiohttp-client
243243
# opentelemetry-instrumentation-asgi
@@ -252,47 +252,47 @@ opentelemetry-instrumentation==0.52b1
252252
# opentelemetry-instrumentation-urllib
253253
# opentelemetry-instrumentation-urllib3
254254
# opentelemetry-instrumentation-wsgi
255-
opentelemetry-instrumentation-aiohttp-client==0.52b1
255+
opentelemetry-instrumentation-aiohttp-client==0.57b0
256256
# via -r requirements.in
257-
opentelemetry-instrumentation-asgi==0.52b1
257+
opentelemetry-instrumentation-asgi==0.57b0
258258
# via
259259
# -r requirements.in
260260
# opentelemetry-instrumentation-fastapi
261-
opentelemetry-instrumentation-dbapi==0.52b1
261+
opentelemetry-instrumentation-dbapi==0.57b0
262262
# via opentelemetry-instrumentation-psycopg2
263-
opentelemetry-instrumentation-django==0.52b1
263+
opentelemetry-instrumentation-django==0.57b0
264264
# via azure-monitor-opentelemetry
265-
opentelemetry-instrumentation-fastapi==0.52b1
265+
opentelemetry-instrumentation-fastapi==0.57b0
266266
# via azure-monitor-opentelemetry
267-
opentelemetry-instrumentation-flask==0.52b1
267+
opentelemetry-instrumentation-flask==0.57b0
268268
# via azure-monitor-opentelemetry
269-
opentelemetry-instrumentation-httpx==0.52b1
269+
opentelemetry-instrumentation-httpx==0.57b0
270270
# via -r requirements.in
271271
opentelemetry-instrumentation-openai==0.39.0
272272
# via -r requirements.in
273-
opentelemetry-instrumentation-psycopg2==0.52b1
273+
opentelemetry-instrumentation-psycopg2==0.57b0
274274
# via azure-monitor-opentelemetry
275-
opentelemetry-instrumentation-requests==0.52b1
275+
opentelemetry-instrumentation-requests==0.57b0
276276
# via azure-monitor-opentelemetry
277-
opentelemetry-instrumentation-urllib==0.52b1
277+
opentelemetry-instrumentation-urllib==0.57b0
278278
# via azure-monitor-opentelemetry
279-
opentelemetry-instrumentation-urllib3==0.52b1
279+
opentelemetry-instrumentation-urllib3==0.57b0
280280
# via azure-monitor-opentelemetry
281-
opentelemetry-instrumentation-wsgi==0.52b1
281+
opentelemetry-instrumentation-wsgi==0.57b0
282282
# via
283283
# opentelemetry-instrumentation-django
284284
# opentelemetry-instrumentation-flask
285285
opentelemetry-resource-detector-azure==0.1.5
286286
# via azure-monitor-opentelemetry
287-
opentelemetry-sdk==1.31.1
287+
opentelemetry-sdk==1.36.0
288288
# via
289289
# azure-monitor-opentelemetry
290290
# azure-monitor-opentelemetry-exporter
291291
# microsoft-kiota-abstractions
292292
# microsoft-kiota-authentication-azure
293293
# microsoft-kiota-http
294294
# opentelemetry-resource-detector-azure
295-
opentelemetry-semantic-conventions==0.52b1
295+
opentelemetry-semantic-conventions==0.57b0
296296
# via
297297
# opentelemetry-instrumentation
298298
# opentelemetry-instrumentation-aiohttp-client
@@ -310,7 +310,7 @@ opentelemetry-semantic-conventions==0.52b1
310310
# opentelemetry-sdk
311311
opentelemetry-semantic-conventions-ai==0.4.3
312312
# via opentelemetry-instrumentation-openai
313-
opentelemetry-util-http==0.52b1
313+
opentelemetry-util-http==0.57b0
314314
# via
315315
# opentelemetry-instrumentation-aiohttp-client
316316
# opentelemetry-instrumentation-asgi

app/frontend/src/pages/layout/Layout.module.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
height: 100%;
55
}
66

7+
.main {
8+
display: flex;
9+
flex: 1;
10+
min-height: 0; /* allow inner scroll areas to work inside flex container */
11+
}
12+
713
.header {
814
background-color: #222222;
915
color: #f2f2f2;

app/frontend/src/pages/layout/Layout.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ const Layout = () => {
7575
</div>
7676
</header>
7777

78-
<Outlet />
78+
<main className={styles.main} id="main-content">
79+
<Outlet />
80+
</main>
7981
</div>
8082
);
8183
};

docs/http_protocol.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ Example of the overrides object:
8484

8585
## HTTP responses from RAG chat app endpoints
8686

87-
The HTTP response is JSON for a non-streaming response, or [newline-delimited JSON](https://ndjson.org/home/) ("NDJSON"/"jsonlines") for a streaming response.
87+
The HTTP response is JSON for a non-streaming response, or [newline-delimited JSON](https://jsonlines.org/) ("NDJSON"/"jsonlines") for a streaming response.
8888

8989
### Non-streaming response
9090

requirements-dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ pre-commit
1313
pip-tools
1414
mypy==1.14.1
1515
diff_cover
16+
axe-playwright-python

tests/e2e.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import pytest
1111
import requests
1212
import uvicorn
13+
from axe_playwright_python.sync_playwright import Axe
1314
from playwright.sync_api import Page, Route, expect
1415

1516
import app
@@ -116,6 +117,10 @@ def handle(route: Route):
116117
expect(page.get_by_role("button", name="Clear chat")).to_be_disabled()
117118
expect(page.get_by_role("button", name="Developer settings")).to_be_enabled()
118119

120+
# Check accessibility of page in initial state
121+
results = Axe().run(page)
122+
assert results.violations_count == 0, results.generate_report()
123+
119124
# Ask a question and wait for the message to appear
120125
page.get_by_placeholder("Type a new question (e.g. does my plan cover annual eye exams?)").click()
121126
page.get_by_placeholder("Type a new question (e.g. does my plan cover annual eye exams?)").fill(

0 commit comments

Comments
 (0)