Skip to content

Commit 55573ed

Browse files
committed
docs: update SESSION_RESUME.md — 1298 passing, 7 pending-impl remaining
1 parent d5bd71e commit 55573ed

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

SESSION_RESUME.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
## Current State — ALL NON-PENDING BDD TESTS PASS
1010

11-
**1283 passing BDD scenarios** (0 failures) across 67+ feature files.
12-
- **1283 passing** (memory backend, in-process)
13-
- **23 tagged `@pending-impl`** (tests for unimplemented features, excluded from CI)
11+
**1298 passing BDD scenarios** (0 failures) across 67+ feature files.
12+
- **1298 passing** (memory backend, in-process)
13+
- **7 tagged `@pending-impl`** (Protobuf import resolution, excluded from CI)
1414

1515
### Phase Progress
1616

@@ -21,29 +21,32 @@
2121
| Phase 3: Protobuf Diff Tests | COMPLETE | 43 | Section 31 data-driven |
2222
| Phase 4-5: JSON Schema Diff | COMPLETE | 251 | Sections 27-29 data-driven |
2323
| Phase 6: JSON Schema Validation | COMPLETE | 40 | Section 30 reader/writer pairs |
24-
| Phase 7: Feature Implementation | IN PROGRESS || JSON Schema + Protobuf checkers enhanced |
24+
| Phase 7: Feature Implementation | COMPLETE || All checkers enhanced, aliases, fingerprint fix |
2525
| Phase 8: Feature BDD Tests | NOT STARTED || Tests for Phase 7 features |
2626

27-
### Key Fixes This Session
27+
### Key Fixes (All Sessions)
2828

2929
1. **API error codes**: 40408 (subject config not found), 40409 (subject mode not found)
3030
2. **Deletion behaviors**: `deleted=true` for GetVersion, config/mode cleanup on delete
3131
3. **Pagination**: offset/limit for versions, schema IDs, subject IDs
3232
4. **FORWARD_TRANSITIVE**: Fixed test data (verified against Confluent v8.1.1)
3333
5. **Protobuf checker**: Required field removal, oneof moves (existing vs new), optional→repeated for length-delimited types, synthetic oneof handling
34-
6. **All @pending-impl tags removed** from tests that now pass
34+
6. **Avro fingerprint**: Include `default` in field fingerprint so schemas differing only in defaults are treated as distinct (fixes BACKWARD_TRANSITIVE/FULL_TRANSITIVE dedup bypass)
35+
7. **Avro aliases**: Field and record alias matching for backward-compatible renaming
36+
8. **JSON Schema test corrections**: Verified against Confluent — adding property to open content model IS incompatible (PROPERTY_ADDED_TO_OPEN_CONTENT_MODEL); closed model allows new properties
3537

36-
### Remaining 23 `@pending-impl` Scenarios
38+
### Remaining 7 `@pending-impl` Scenarios
3739

3840
| Category | Count | Details |
3941
|----------|-------|---------|
40-
| Protobuf imports | 13 | Proto import resolution (google.proto, custom imports) |
41-
| JSON Schema validation | 5 | Record evolution, union compat, transitive chains |
42-
| Avro gaps | 4 | Aliases (field/record), transitive mode dedup issue |
43-
| Schema parsing | 1 | Avro alias compatibility in parsing |
42+
| Protobuf imports | 7 | Proto import resolution (`import "google.proto"`, custom imports) — fails at parse: `file not found: google.proto` |
4443

4544
### Checker Enhancements
4645

46+
**Avro** (`internal/compatibility/avro/checker.go`):
47+
- Field alias matching: reader field aliases checked against writer fields
48+
- Record alias matching: reader/writer aliases compared for name compatibility
49+
4750
**JSON Schema** (`internal/compatibility/jsonschema/checker.go`, ~1430 lines):
4851
- 13 new check categories matching Confluent's JsonSchemaDiff
4952
- $ref resolution, composition, dependencies, constraints, open/closed model
@@ -54,6 +57,9 @@
5457
- Real vs synthetic oneof distinction (proto3 optional)
5558
- Optional→repeated: only compatible for string/bytes/message
5659

60+
**Avro Parser** (`internal/schema/avro/parser.go`):
61+
- Field fingerprint now includes `default` values to prevent dedup bypass
62+
5763
### Test Data Files
5864

5965
| File | Cases | Source |

0 commit comments

Comments
 (0)