Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
95fad9c
security: remove admin token query parameter flow
AFR0011 Aug 8, 2026
26ed575
ci: make browser smoke a required publication gate
AFR0011 Aug 8, 2026
19982d9
docs: add security policy for publication
AFR0011 Aug 8, 2026
712cb06
docs: document publication and evaluation provenance
AFR0011 Aug 8, 2026
1f79145
docs: add MIT license
AFR0011 Aug 8, 2026
5468c00
docs: record publishing rights and verified gold status
AFR0011 Aug 8, 2026
f099d6a
feat: add safe browser admin token controls
AFR0011 Aug 8, 2026
4a1baad
feat: wire safe admin token session flow
AFR0011 Aug 8, 2026
d2f5bd2
chore: add one-time publication finalizer
AFR0011 Aug 8, 2026
ee7e037
chore: finalize verified evaluation metadata and dependency lock
github-actions[bot] Aug 8, 2026
2fd151e
test: add publication readiness guard
AFR0011 Aug 8, 2026
cc212d3
ci: enforce pinned dependencies and publication checks
AFR0011 Aug 8, 2026
502077a
fix: separate verified gold from auxiliary review status
AFR0011 Aug 8, 2026
dd7d7d6
docs: correct verified gold evaluation status
AFR0011 Aug 8, 2026
291fad5
docs: refresh board readiness evaluation status
AFR0011 Aug 8, 2026
baca5ac
docs: rewrite README for public portfolio release
AFR0011 Aug 8, 2026
2090135
docs: update publication checklist for verified gold release
AFR0011 Aug 8, 2026
8109a34
docs: remove URL token guidance from landing page
AFR0011 Aug 8, 2026
815ff3c
chore: add one-time legacy token test cleanup
AFR0011 Aug 8, 2026
e35b046
test: verify URL query tokens do not authenticate admin APIs
github-actions[bot] Aug 8, 2026
e780287
docs: finalize publication security policy
AFR0011 Aug 8, 2026
f5557a5
chore: add one-time publication CI fixes
AFR0011 Aug 8, 2026
a52d423
fix: align publication tests and admin authentication
github-actions[bot] Aug 8, 2026
afb68e7
docs: record completed publication safeguards
AFR0011 Aug 8, 2026
be1a5fc
chore: add one-time admin auth boundary fix
AFR0011 Aug 8, 2026
b3fb3cf
fix: keep admin shell reachable for header authentication
github-actions[bot] Aug 8, 2026
7efcbe8
docs: document protected admin API boundary
AFR0011 Aug 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 21 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,18 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
cache: pip
cache-dependency-path: requirements-lock.txt
- name: Install pinned dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt
python -m pip install -r requirements-lock.txt
- name: Publication guard
run: python tools/publication_guard.py
- name: Dependency audit
run: |
python -m pip install pip-audit
pip-audit -r requirements-lock.txt
- name: Syntax scan
run: |
python - <<'PY'
Expand Down Expand Up @@ -43,21 +51,24 @@ jobs:
python -m emu_advisor.evaluation eval_sets/v1_gold.jsonl
python -m emu_advisor.evaluation eval_sets/v1_hard.jsonl
python -m emu_advisor.evaluation eval_sets/emu_gold_seed.jsonl
- name: Review status check
run: python -m emu_advisor.eval_review status eval_sets/v1_gold.jsonl eval_sets/v1_hard.jsonl eval_sets/emu_gold_seed.jsonl
- name: Verified gold review status
run: python -m emu_advisor.eval_review status eval_sets/v1_gold.jsonl
- name: Auxiliary evaluation status
run: python -m emu_advisor.eval_review status eval_sets/v1_hard.jsonl eval_sets/emu_gold_seed.jsonl

browser-smoke:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
cache: pip
cache-dependency-path: requirements-lock.txt
- name: Install pinned dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt
python -m playwright install chromium
- name: Optional browser smoke
run: python tools/browser_smoke.py --start-server --skip-if-unavailable
python -m pip install -r requirements-lock.txt
python -m playwright install --with-deps chromium
- name: Browser smoke
run: python tools/browser_smoke.py --start-server
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Ali Farrokhnejad

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
28 changes: 28 additions & 0 deletions PUBLICATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Publication Readiness

EMUAdvisor may be published by the repository owner. The source code is released under the MIT License. The project remains independent research/software work and is not an official Eastern Mediterranean University administrative service.

## Release checklist

- [x] Publishing rights confirmed by the repository owner.
- [x] MIT license added.
- [x] `eval_sets/v1_gold.jsonl` has been reviewed and verified by the project author and university staff.
- [x] Browser/admin authentication no longer accepts credentials from URL query parameters; protected requests use headers and the browser UI stores credentials only in tab-scoped session storage.
- [x] `eval_sets/emu_gold_seed.jsonl` remains explicitly described as provisional unless it completes the same review process.
- [x] Generated crawl, index, audit, review, and conversation artifacts remain outside the committed public-release workflow.
- [x] Pinned Python dependencies and a dependency audit are part of CI.
- [ ] Confirm no secrets or non-public university material exist in Git history before changing repository visibility.
- [ ] Run the required GitHub Actions core and browser-smoke jobs successfully on the final publication branch.
- [x] Keep the README disclaimer that this is independent research software, not an official EMU administrative service.

## Evaluation terminology

`eval_sets/v1_gold.jsonl` is the verified human-reviewed gold evaluation set. Its cases were reviewed by the project author and university staff. Public metrics reported for `v1_gold` should still be described as local evaluation results for this fixed corpus and implementation, not production-service guarantees or evidence of universal model quality.

`eval_sets/v1_hard.jsonl` is a hard regression suite focused on difficult table, grouped-query, and refusal behavior. It is not presented as a second gold benchmark unless separately reviewed and documented as such.

`eval_sets/emu_gold_seed.jsonl` remains a provisional seed set until its source bindings and labels complete the same review process. The historical filename is retained for compatibility; public documentation should call it a provisional evaluation seed rather than a verified gold benchmark.

## Public-release principle

The public repository should demonstrate retrieval, citation, refusal, evaluation, local-generation, and operational safeguards without implying institutional endorsement or production deployment. Claims should distinguish verified benchmark results from regression results, provisional evaluation material, and runtime/deployment limitations.
Loading
Loading