# Nushell core team meeting 2025-06-18
## Attendees
- Piet
- Michael
- Stefan
- Rose
- Antoine
- Bahex
- Jan9103
- Douglas
- Jack
## Agenda
- [x] {%preview https://github.com/nushell/nushell/pull/15682 %}
> 1. We need to reach consensus about whether this behavior is acceptable/desirable.
> > ```nushell
> > let val = [{foo: A}, {baz: B}]
> > $val
> > # => ╭───┬─────┬─────╮
> > # => │ # │ foo │ baz │
> > # => ├───┼─────┼─────┤
> > # => │ 0 │ A │ ❎ │
> > # => │ 1 │ ❎ │ B │
> > # => ╰───┴─────┴─────╯
> >
> > $val.foo
> > # throws an error as expected
> >
> > $val.foo.0
> > # before this PR, this also throws an error
> > # but due to reordering the access to `$val.0.foo`
> > # this works without issue and returns `A`
> > ```
> > Whether this is a good thing or bad isn't really clear :shrug:
> 2. Additional tests to catch any possible regressions (I would like some help with coming up with or generating test cases)
> 3. Benchmarks
> ---
- [x] Consistent Flag Names
- `get` needs a `--ignore-case`/`--insensitive` flag for convenience, which should not conflict with other flags.
- `-i` shorthand is used both for `--ignore-case` and `--ignore-errors` flags, which was fine because no command needed both before.
- the semantics of `--ignore-case` for `get` (affecting cell-paths) would be kind of inconsistent with every other command that has a `--ignore-case` flag (affecting values)
- > @fdncred
> i wonder if, in another pr, we should make all the `-i`'s `ignore-case` and change `ingore-errors` to `-e` to be consistent. I also bet there are several `-<letter>` that need to be made consistent within nushell commands.
- `http` commands use `--allow-errors`/`-e`
- `get`/`select`/`reject` could use `--optional`/`-o` rather than `--ignore-errors`
- [ ] Backtick code formatting italic or no italic
## Discussed Topics
### cell-path reordering
- intended for better perf on table access (with the colum name coming before the index)
- Sidebar: perf
- Stefan: tango bench seems to be broken to me on `interleave` benches
- Let's get that fix to check for regressions
- Generally we can show initial improvements with manual `bench`/`timeit`/`hyperfine` runs
- different error semantics
- could be more permissive in some circumstance with sparse table (disjoint records)
- Question: is the behavior sane for non table nested structures of records and list
- Piep: Feature flag / unstable features / experimental mode
- how easy to toggle in this case:
- bahex in this case seems to be pretty isolatable
- where to configure the flag
- Rose how much exposure would the different branches get
- Piep also a way to recover behavior without patch release should it be an issue
- Jan9103: nightly users may be more experimetn happy (enable the unstable for them)
- Let's not block a decision on the PR on having the system
- but Piep is exited for trying to build a feature flag system (so maybe see within the coming week how that is coming along)
### consistent flag name
- primary clash: `--ignore-errors`/`--ignore-case` e.g. found on `get` (unclear role who gets the `-i` shortflag)
- Rose: `--optional` (for the ones that "error" on cell path access)
- Deprecation system currently can't represent change to just the short flag while the long flag stays the same
- Suggestion `?`/`!` as used in cell paths as shortflag
- pro mnenomic of the cell path
- con: we don't use sigil or even digits in flags, could make it more confusing what is a regular flag or special syntax
- migration challenge for short flag: each long flag in the parser can only have one short flag (no option to have a transition period)
- Bahex, suggests: have `optional` as a transition and then move the short flag only after.
### nu-highlight in help