Skip to content

Release/v3.3.0 - #47

Merged
zuudevs merged 10 commits into
mainfrom
release/v3.3.0
Apr 15, 2026
Merged

Release/v3.3.0#47
zuudevs merged 10 commits into
mainfrom
release/v3.3.0

Conversation

@zuudevs

@zuudevs zuudevs commented Apr 15, 2026

Copy link
Copy Markdown
Owner

No description provided.

zuudevs added 9 commits March 6, 2026 21:12
…blish initial backend structure with API routes, models, schemas, and anomaly detection, alongside comprehensive project documentation.

Refs #31
Closes #33
Backend:
- Added data export API endpoints to download readings, alerts, and anomalies in CSV format.
- Expanded the pytest test suite to 41 passing tests.

Frontend:
- Integrated fleet management API (registration modal, status indicators, and deletion).
- Added CSV export functionality across the dashboard, alerts, and anomalies pages.

Firmware (C/C++):
- Implemented EvidenceStore utilizing a circular buffer to preserve up to 32 EvidenceSnapshot records.
- Added FNV-1a hash chain verification to ensure data integrity and enable tamper detection.
- Introduced 8 new unit tests for the evidence preservation logic.

CI & Documentation:
- Added 'backend-test' job (Python 3.11, pytest) to the CI pipeline, bringing the total to 7 jobs.
- Updated ROADMAP.md and CHANGELOG.md to reflect v3.2.0 completion.

Closes #33
Refs #44
…implement backend notification engine, and introduce new frontend entry point with updated documentation.
…ure across the firmware, backend, and frontend.
…re test suite, FastAPI backend schemas, and dashboard components

@zuudevs zuudevs left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good

@zuu-inner zuu-inner left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1de6ba10b2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread backend/app/models.py
Comment on lines +23 to +26
power_mw = Column(Integer, default=0)
power_factor = Column(Integer, default=0)
phase = Column(Integer, default=0)
temperature_c = Column(Float, nullable=True)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add migration for new meter_readings columns

Adding new meter_readings fields here breaks upgrades that keep an existing gridshield.db: SQLAlchemy create_all does not ALTER existing tables, so older databases will still lack these columns and ORM reads/writes can fail at runtime with no such column errors. This impacts core paths like /api/meter-data and /api/readings after deployment unless a schema migration (or explicit compatibility handling) is added.

Useful? React with 👍 / 👎.

Comment thread frontend/src/api.js

/** Reset all data (readings, alerts, anomalies, notifications) */
export function resetAllData() {
return fetch(`${BASE}/reset`, { method: 'DELETE' }).then(r => r.json());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Throw on failed reset responses in API client

This bypasses the shared request() error handling and always parses JSON, so 4xx/5xx responses from /api/reset are treated as success by callers. In the dashboard reset flow, that means users can see a successful reset message and forced reload even when the backend reset failed. Use request('/reset', { method: 'DELETE' }) or explicitly reject when r.ok is false.

Useful? React with 👍 / 👎.

@ichwanfauzi ichwanfauzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACC

@zuudevs

zuudevs commented Apr 15, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts in this pull request

Copilot AI commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Resolved all merge conflicts with origin/main in commit 07a928d. The following files were conflicted and have been resolved by keeping the release/v3.3.0 versions:

  • backend/app/anomaly_engine.py
  • backend/app/main.py
  • backend/app/models.py
  • backend/app/schemas.py
  • docs/CHANGELOG.md
  • docs/ROADMAP.md
  • firmware/test_app/main/test_main.cpp
  • frontend/src/api.js
  • frontend/src/components/navbar.js
  • frontend/src/pages/dashboard.js
  • frontend/src/style.css

@zuudevs
zuudevs merged commit 5f1ad16 into main Apr 15, 2026
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.

4 participants