Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c0d482ace7 | |||
| 5a12718566 | |||
|
|
4a0c7957ec | ||
| 12a76b4dd8 |
20
CHANGELOG.md
20
CHANGELOG.md
@ -2,21 +2,21 @@
|
||||
|
||||
All notable changes to TFTSR are documented here.
|
||||
Commit types shown: feat, fix, perf, docs, refactor.
|
||||
CI, chore, and build changes are excluded unless they affect developer workflow.
|
||||
CI, chore, and build changes are excluded.
|
||||
|
||||
## [0.2.66] — 2026-04-20
|
||||
|
||||
### Features
|
||||
- Integrate incident response methodology into all 17 domain prompts
|
||||
- Add timeline_events table for UTC timestamp tracking during triage
|
||||
- Populate RCA and postmortem documents with real timeline data
|
||||
## [Unreleased]
|
||||
|
||||
### Bug Fixes
|
||||
- **ci**: Switch PR review from Ollama to liteLLM (qwen2.5-72b)
|
||||
|
||||
### Security
|
||||
- Harden timeline event input validation and atomic writes
|
||||
|
||||
### Documentation
|
||||
- Update wiki for timeline events and incident response methodology
|
||||
|
||||
### Features
|
||||
- Add timeline_events table, model, and CRUD commands
|
||||
- Populate RCA and postmortem docs with real timeline data
|
||||
- Wire incident response methodology into AI and record triage events
|
||||
|
||||
## [0.2.65] — 2026-04-15
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@ -42,11 +42,8 @@ describe("Audit Log", () => {
|
||||
it("displays audit entries", async () => {
|
||||
render(<Security />);
|
||||
|
||||
// Wait for audit log to load
|
||||
await screen.findByText("Audit Log");
|
||||
|
||||
// Check that the table has rows (header + data rows)
|
||||
const table = screen.getByRole("table");
|
||||
// Wait for table to appear after async audit data loads
|
||||
const table = await screen.findByRole("table");
|
||||
expect(table).toBeInTheDocument();
|
||||
|
||||
const rows = screen.getAllByRole("row");
|
||||
@ -56,9 +53,7 @@ describe("Audit Log", () => {
|
||||
it("provides way to view transmitted data details", async () => {
|
||||
render(<Security />);
|
||||
|
||||
await screen.findByText("Audit Log");
|
||||
|
||||
// Should have View/Hide buttons for expanding details
|
||||
// Wait for async data to load and render the table
|
||||
const viewButtons = await screen.findAllByRole("button", { name: /View/i });
|
||||
expect(viewButtons.length).toBeGreaterThan(0);
|
||||
});
|
||||
@ -66,14 +61,13 @@ describe("Audit Log", () => {
|
||||
it("details column or button exists for viewing data", async () => {
|
||||
render(<Security />);
|
||||
|
||||
await screen.findByText("Audit Log");
|
||||
// Wait for async data to load and render the table
|
||||
await screen.findByRole("table");
|
||||
|
||||
// The audit log should have a Details column header
|
||||
const detailsHeader = screen.getByText("Details");
|
||||
expect(detailsHeader).toBeInTheDocument();
|
||||
|
||||
// Should have view buttons
|
||||
const viewButtons = await screen.findAllByRole("button", { name: /View/i });
|
||||
const viewButtons = screen.getAllByRole("button", { name: /View/i });
|
||||
expect(viewButtons.length).toBe(2); // One for each mock entry
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user